Различные типы интеллектуальных систем имеют свои особенности, например, по возможностям обучения, обобщения и выработки результатов, что делает их наиболее пригодными для решения одних классов задач и менее пригодными - для других.
В последние несколько лет мы наблюдаем взрыв интереса к нейронным сетям, которые успешно применяются в самых различных областях - бизнесе, медицине, технике, геологии, физике. Нейронные сети вошли в практику везде, где нужно решать задачи прогнозирования, классификации или управления. Такой впечатляющий успех определяется несколькими причинами, перечисленными ниже.
· Богатые возможности. Нейронные сети - исключительно мощный метод моделирования, позволяющий воспроизводить чрезвычайно сложные зависимости. В частности, нейронные сети нелинейны по своей природе. На протяжении многих лет линейное моделирование было основным методом моделирования в большинстве областей, поскольку для него хорошо разработаны процедуры оптимизации. В задачах, где линейная аппроксимация неудовлетворительна (а таких достаточно много), линейные модели работают плохо. Кроме того, нейронные сети справляются с «проклятием размерности», которое не позволяет моделировать линейные зависимости в случае большого числа переменных;
· Простота в использовании. Нейронные сети учатся на примерах. Пользователь нейронной сети подбирает представительные данные, а затем запускает алгоритм обучения, который автоматически воспринимает структуру данных. При этом от пользователя, конечно, требуется какой-то набор эвристических знаний о том, как следует отбирать и подготавливать данные, выбирать нужную архитектуру сети и интерпретировать результаты, однако уровень знаний, необходимый для успешного применения нейронных сетей, гораздо скромнее, чем, например, при использовании традиционных методов статистики.
Нейронные сети привлекательны с интуитивной точки зрения, ибо они основаны на примитивной биологической модели нервных систем.
Вообще можно сказать, что нейронные сети хороши для задач распознавания образов, но весьма неудобны для объяснения, как они такое распознавание осуществляют. Они могут автоматически приобретать знания, но процесс их обучения зачастую происходит достаточно медленно, а анализ обученной сети весьма сложен (обученная сеть представляет обычно черный ящик для пользователя). При этом какую-либо априорную информацию (знания эксперта) для ускорения процесса ее обучения в нейронную сеть ввести невозможно.
Системы с нечеткой логикой, напротив, хороши для объяснения получаемых с их помощью выводов, но они не могут автоматически приобретать знания для использования их в механизмах выводов. Необходимость разбиения универсальных множеств на отдельные области, как правило, ограничивает количество входных переменных в таких системах небольшим значением.
Вообще говоря, системы с нечеткой логикой целесообразно применять в следующих случаях:
· для сложных процессов, когда нет простой математической модели;
· если экспертные знания об объекте или о процессе можно сформулировать только в лингвистической форме.
Системы, базирующиеся на нечеткой логике, применять нецелесообразно:
· если требуемый результат может быть получен каким-либо другим (стандартным) путем;
· когда для объекта или процесса уже найдена адекватная и легко исследуемая математическая модель.
Отметим, что основными недостатками систем с нечеткой логикой являются следующие:
· исходный набор постулируемых нечетких правил формулируется экспертом-человеком и может оказаться неполным или противоречивым;
· вид и параметры функций принадлежности, описывающих входные и выходные переменные системы, выбираются субъективно и могут оказаться не вполне отражающими реальную действительность.
Вообще говоря, теоретически, системы с нечеткой логикой и искусственные нейронные сети подобны друг другу, однако, в соответствии с изложенным выше, на практике у них имеются свои собственные достоинства и недостатки. Данное соображение легло в основу создания аппарата нечетких нейронных сетей, в которых выводы делаются на основе аппарата нечеткой логики, но соответствующие функции принадлежности подстраиваются с использованием алгоритмов обучения нейронных сетей, например, алгоритма обратного распространения ошибки. Такие системы не только используют априорную информацию, но могут приобретать новые знания, являясь логически прозрачными.
Для пояснения сущности нечетких нейронных сетей, рассмотрим простую
нейронную сеть, состоящую из одного нейрона с двумя входами. Входные сигналы , «взаимодействуют» с синаптическими
весами
:
Эти частные произведения суммируются, образуя значение net нейрона:
Выход нейрона образуется в результате преобразования значения net некоторой активационной функцией f:
Рассмотренная однонейронная сеть, в которой используются операции умножения, суммирования и сигмоидная функция активации является стандартной нейронной сетью.
В случае применения вместо операций умножения, суммирования и активации таких операций, как t-норма или t-конорма данную нейронную сеть будем называть нечеткой.
Нечеткая нейронная сеть - это нейронная сеть с четкими сигналами,
весами и активационной функцией, но с объединением и
,
и
с использованием операций t-нормы, t-конормы или некоторых других
непрерывных операций. Входы, выходы и веса нечеткой нейронной сети -
вещественные числа, принадлежащие отрезку [0, 1].
Рассмотрим примеры элементарных нечетких нейронных сетей.
Нечеткий нейрон «И». Сигналы и веса
в данном случае объединяются с помощью t-конормы:
,
а выход образуется с применением t-нормы (рис. 3, а):
Если принять Т = min, S = max, то нечеткий нейрон «И» реализует композицию min-max:
Нечеткий нейрон «ИЛИ». Сигналы и веса
здесь объединяются с помощью t-нормы:
,
а выход образуется с применением t-конормы (рис. 3, б):
Если принять Т = min, S = max, то нечеткий нейрон «ИЛИ» реализует композицию max-min:
Опишем типовой подход к построению алгоритмов обучения и использования нечетких нейронных сетей.
Предположим, что нечеткой нейронной сетью должно быть реализовано (неизвестное) отображение:
при наличии обучающего множества .
Для моделирования неизвестного отображения используем алгоритм нечеткого вывода
применяя следующую форму записи предикатных правил:
: если
есть
и
есть
и … и
есть
, то
,
,
где - нечеткие числа треугольной формы;
- вещественные числа.
Степень истинности -го правила определяется с помощью операции
умножения (Larsen):
(можно использовать и другие представления для моделирования логического оператора «И»).
Выход нечеткой системы определяется в соответствии с центроидным методом (дискретный вариант):
Введение функции ошибки для -го предъявленного образца вида:
позволяет, далее, как в обычных нейронных
сетях использовать градиентный метод для подстройки параметров заданных предикатных
правил. Так, величины можно
корректировать по соотношению:
где - константа, характеризующая
скорость обучения.
Более детально алгоритм настройки рассмотрим на примере системы, включающей два правила:
: если
есть
, то
,
: если
есть
, то
,
при этом предполагается, что нечеткие понятия
(«малый») и
(«большой»)
имеют сигмоидные функции принадлежности:
характеризующиеся параметрами ,
,
,
.
Степени истинности правил определяются в данном случае соотношениями:
а выход системы - выражением:
Предположим, что имеется обучающее множество отображающее неизвестную функцию
.
Требуется: осуществить такую настройку параметров системы ,
,
,
,
,
, при которой обеспечивается наилучшая
аппроксимация данной функции.
Решение. Для данного случая функция ошибки может быть записана в форме:
Далее запишем:
Аналогичным образом могут быть получены выражения для коррекции
коэффициентов ,
,
,
. Исходные соотношения
таковы:
,
,
,
,
Конечные выражения являются достаточно громоздкими, но могут быть упрощены в случае, если функции принадлежности имеют вид:
Данные функции характеризуются всего двумя параметрами ( и
), в определенном смысле являются
симметричными и удовлетворяют уравнению:
Заметим, что из последнего и ранее полученных уравнений следует:
,
Последующие выкладки таковы:
,
где
и
,
где
Приведенные выкладки, как представляется, полностью иллюстрируют идеи алгоритмов обучения и использования нечеткой нейронной сети.
Нечеткая нейронная сеть, реализующая приведенный механизм вывода, представлена на рис. 4. Заметим, что сети с подобной архитектурой в англоязычной литературе получили название ANFIS (Adaptive Neuro-Fuzzy Inference System).
Данная сеть может быть описана следующим образом.
§ Слой 1. Выходы нейронов этого слоя представляют собой значения функций принадлежности при конкретных (заданных) значениях входов.
§ Слой 2. Выходами нейронов этого слоя являются степени истинности предпосылок каждого правила базы знаний системы, вычисляемые по формулам:
,
,
.
Все нейроны слоя обозначены буквой Т, что означает, что они могут реализовывать произвольную t-норму для моделирования операции «И».
§ Слой 3. Нейроны этого слоя вычисляют величины:
§ Слой 4. Нейроны данного слоя выполняют операции:
§ Слой 5. Единственный нейрон этого слоя вычисляет выход сети:
Корректировка параметров системы для функций принадлежности ,
и
производится в соответствии с ранее
рассмотренным подходом. Так, например, настройка коэффициентов для функций
принадлежности осуществляется по формулам:
где .
Соответствующие выражения могут быть получены и для остальных
коэффициентов: и
,
.
Можно выделить два подхода к модификации топологии нечеткой нейронной сети на этапах обучения и использования. Первый, традиционный подход основан на введении дополнительных продукционных правил в базу знаний системы. При этом следует учитывать непротиворечивость ее пополнения.
Другой подход предполагает генерацию новых продукционных правил, не противоречащих правилам из базы знаний системы, исходя из анализа экспериментальных данных об объекте на основе предложенной одним из авторов книги процедуры, которая рассмотрена ниже.
Предположим, что исследуемый объект имеет входов (иначе, векторный вход
) и один выход
и имеет «истинное»
(неизвестное) описание:
,
где - функция неизвестного вида,
- случайная аддитивная
помеха (отражающая действие не учитываемых факторов) с нулевым средним
значением и произвольным (неизвестным) распределением на
.
Предположим далее, что на объекте может быть реализован эксперимент,
заключающийся в регистрации пар значений
, при этом величины (векторы)
измеряются без ошибок;
значение
при
необходимости допускает модификацию.
Алгоритм построения системы может быть теперь описан следующим образом.
ШАГ 1. Из произвольных
значений
составляется
начальная база знаний модели, отображаемая матрицей
со строками вида
.
Такое представление, очевидно, эквивалентно набору продукционных правил вида:
: если
есть
и
есть
и … и
есть
, то
,
,
ШАГ 2. Для каждой новой экспериментальной точки рассчитывается прогнозируемое
значение по формуле, соответствующей рассмотренному центроидному методу:
где - функция колоколообразной или
экспоненциальной формы:
- параметр функций.
ШАГ 3. Проверяется неравенство:
где - заданная константа, определяющая
погрешность аппроксимации.
При выполнении неравенства база знаний системы пополняется путем
расширения матрицы (добавлением
строки
). В
противном случае матрица
остается без изменений.
ШАГ 4. Проверяется правило останова. В данном варианте алгоритма построение
модели считается законченным, если в соответствии с шагами 2 и 3 перебраны все экспериментальных точек
(без учета значений начальной базы знаний).
Если не все экспериментальные точки использованы, то осуществляется переход к шагу 2, в противном случае - останов.
В процессе реализации алгоритма параметры и
считают априори заданными.
При использовании системы заданными считаются матрица (на этапе использования модели
она не изменяется), отмеченные параметры
и
и расчет
производится в соответствии с шагом 2
приведенного алгоритма.
Нетрудно видеть, что описанный алгоритм, в сущности, соответствует алгоритму нечеткого логического вывода, но отличается от последнего тем, что база знаний не остается фиксированной, а модернизируется по мере поступления экспериментальных данных. Причем непротиворечивость нового продукционного правила относительно набора правил из базы знаний гарантируется предложенной процедурой ее пополнения.