3.11.7. Нечеткий перцептрон как общая модель для нечетких нейронных методов.
В данном разделе мы представим общую модель многослойной нечеткой нейронной сети (нечеткий перцептрон). Цель данной модели заключается в следующем: мы не заинтересованы в том, чтобы производить процесс фаззификации многослойного перцептрона полностью, а дать возможность сети использовать ранее полученные знания и интерпретировать результат обучения в форме лингвистических правил. Путем ввода дополнительного ограничения в определение нечеткого перцептрона, он может восприниматься как обычный нечеткий контроллер. Таким образом, можно создать нейронный нечеткий контроллер типа NEFCON (Neural Fuzzy CONtrol).
Обучающий алгоритм для нечеткого перцептрона не является последовательным, как это было при обучении нейронных сетей, потому что здесь в качестве функций активации чаще всего используются не дифференцированные функции t–нормы и t–конормы. Поэтому метод градиентного спуска здесь не применим.
Рассмотрим 3-слойный нечеткий перцептрон с n входными и m выходными нейронами. Пусть L – цель нашего обучения, состоящая из образцов , где . Пусть описывают желаемое входное значение нейрона u, заданного входным вектором , и пусть описывает действительное выходное значение нейрона u. Пусть переменная определяет разницу между максимальным и минимальным значением на выходе нейрона u. Нечеткая ошибка для u и данного p определяется так:
,
где - масштабный коэффициент.
Масштаб используется для регулирования чувствительности нечеткой ошибки, делая ошибку более или менее отличной от желаемого и действительного выходного значения.
Рассматривая 3-слойный нечеткий перцептрон и цельобучения L, алгоритм обратного распространения ошибки определяется следующим образом:
Повторяем эти шаги для всех , пока общая ошибка не будет достаточно мала.
Изменения в нечетком весе определяется формулой, представленной в 3-ем пункте приведенного алгоритма, и зависит от сигнала нейрона v, а также может зависеть от активации а и от входной величины сети net. Обычно нечеткие множества представляются параметрической функцией принадлежности, таким образом, что изменения специфицируются в термах этих параметров.
Минимаксный нечеткий перцептрон.
Рассмотрим 3-слойный нечеткий перцептрон, используя операторы min и max в качестве t–нормы и t–конормы. Дефаззификацию будем проводить методом центра пространства (СОА). Веса предикатов определим как , а веса следствий определим как . Каждый нечеткий вес определяется треугольной функцией , которая задается тремя элементами , такими что интервал является областью определения нечеткого множества и , и для всех функций принадлежности выполняется неравенство :
Аналогичное определение имеет место и для функции принадлежности . Мы будем использовать обучающую цель L с образцами , такими что ,
Если значение на выходе выходного нейрона должно быть увеличено для достижения желаемого значения, то область определения нечеткого множества, относящегося к следствию правила, должна быть расширена. Этого можно достичь увеличивая r или уменьшая l, дополнительный параметр с должен быть изменен так, чтобы он приближался к соответствующему входному значению. На рис.2. изображен пример, иллюстрирующий воздействие этой стратегии для следствия правила. Если выходное значение должно быть увеличено, и мы начинаем с ситуации, изображенной пунктирными линиями, то мы достигаем новых нечетких множеств. Вычисления, используемые дл распространения образца в этом примере, такие же, как и для нечеткого контроллера Мамдани.
Рис.2. Настройки функции принадлежности.
Представим необходимые вычисления нечеткой ошибки распространения, используя метод дефаззификации СОА.
Множество Е = 0 и для каждого повторяем следующие шаги:
для всех со скоростями обучения :
Критерий останова алгоритма: заканчиваем обучение, если ошибка Е достаточно мала.
Такой вид архитектуры используется для аппроксимации функции по заданному примеру данных. В результате получаем множество правил вида “если - то”.
Специальный нечеткий перцептрон для задач управления.
Модель NEFCON (Neural Fuzzy CONtrol) происходит от общей модели нечеткого перцептрона и также используется для задач управления. Обучающий алгоритм является модификацией алгоритма нечеткой ошибки, которая распространяется в обратном направлении, и обучение может происходить в интерактивном режиме.
Система NEFCON – специальный 3-слойный нечеткий перцептрон со следующими особенностями:
Рис.3. Система NEFCON с двумя входными переменными
Это определение дает возможность интерпретировать NEFCON как простую нечеткую систему. Каждый скрытый нейрон представляет нечеткое правило вида “если – то”. Если бы это следствие не выполнялось, то существует возможность нечетким правилам, представляющим одинаковые лингвистические термы, “развиваться” по разному в процессе обучения. Если бы это следствие отсутствовало, то каждое правило могло иметь индивидуальную функцию принадлежности, что приведет к неверной интерпретации базы правил, а это крайне нежелательно. На рис.3. представлена архитектура системы NEFCON. Рассмотрим процесс обучения системы NEFCON.
Обучение нечетких множеств.
Пусть нечеткая ошибка , где e описывает величину ошибки текущего состояния и определяется из множества лингвистических ошибок правил, . Е содержит в себе информацию о направлении необходимых изменений. Эта информация содержится в знаке неизвестного оптимального выходного состояния. Само значение не известно, но имеется информация о том, больше оно или меньше нуля. Теперь рассмотрим изменение величины Е. Пусть Е - нечеткая ошибка в момент времени t, а нечеткая ошибка в момент времени t+1. Тенденцию ошибки определим как:
Приведем алгоритм изменения функции принадлежности предиката и следствия.
Пусть S – динамическая система с n переменными состояния и одна выходная (регулируемая) переменная . Для каждой входной переменной определены треугольные нечеткие множества . Для каждого нечеткого множества задано ограничение , которое определяет, можно производить изменения или нет. Центр функции принадлежности обозначим как с. Для приспособления функций принадлежности системы NEFCON с k нейронами правил применяются следующие шаги (пока не сработает условие останова, например, нечеткая ошибка остается мала на протяжении значительного промежутка времени):
,
,
где определяется путем применения процедуры дефаззификации СОА
где - скорость обучения. Изменяем , если это не противоречит множеству всех ограничений.
.
Мы описали обучающий алгоритм, который оптимизирует нечеткие множества путем их сдвига. Данный алгоритм пытается модифицировать как можно меньше параметров, чтобы поддерживать процедуру обучения в устойчивом состоянии. Замена модификации длины основания нечеткого множества на его сдвиг является положительным моментом, так как могут быть обнаружены лишние НМ, которые просто совпадут потом с какими-то другими НМ.
Этот алгоритм обучения (который используется в системе NEFCON) имеет такое же широкое применение, как и алгоритм обучения с помощью контроллера Мамдани.
Обучение нечетких правил.
Модель NEFCON способна обучать нечеткие правила двумя способами:
Это происходит путем классификации входного вектора, то есть находим функцию принадлежности для каждой переменной, которая имеет наивысшее значение функции принадлежности для соответствующего входного значения. Таким образом создаются предикаты правил. Алгоритм находит выходное значение, исходя из текущей ошибки правила. Во второй части база правил оптимизируется, изменяя следствие на смежную функцию принадлежности, если это необходимо. Для начала выполнения алгоритма должно быть задано начальное нечеткое деление. Опишем более подробно второй алгоритм, проводя обучение по уже обученным нечетким множествам.
1-ая фаза (повторяем следующие шаги раз):
а) Для текущего входного вектора находим нечеткие множества , для которых выполняется следующее свойство
б) Если нет правила с предикатом “если есть и … и есть , то такое нечеткое множество , что выполняется
,
где о – значение на выходе, определяемое как:
,
где
в) Вводим правило “если есть и … и есть , то есть ” в систему NEFCON.
2-ая фаза (повторяем следующие шаги раз):
а) Распространяем текущий входной вектор через систему NEFCON и определяем для каждого нейрона правил вклад в выходное значение системы
б) Для каждого нейрона правил необходимо новое выходное значение функции принадлежности , что
,
и изменяем следствие нейрона правил .
в) Удаляем те правила, которые не использовались в более чем р% всех распространений.
Классификация объектов с помощью модели NEFCLASS.
Целью модели NEFCLASS (NEuro Fuzzy CLASSifier) является получение нечетких правил из множества данных, которые можно разделить на различные классы. Нечеткие правила описывают данные в форме:
R: если имеет функцию принадлежности , - ,…, - ,
то образец принадлежит классу i, где - нечеткие множества. Задача NEFCLASS состоит в том, чтобы определить принадлежность к классу входного образца . Подразумевается, что пересечение двух различных множеств пусто. Рассмотрим более детально архитектуру модели NEFCLASS.
Система NEFCLASS имеет 3-слойную последовательную архитектуру. Первый слой содержит входные нейроны, в которых представляются входные образцы. Активация нейрона обычно не изменяет входное значение. Скрытый слой содержит нечеткие правила, и третий слой состоит из выходных нейронов каждого класса. Активация для нейронов правил и для нейронов выходного слоя с образцом р вычисляется так:
,
,
или альтернативно
,
где W(x,R) – нечеткий вес соединения входного нейрона х с нейроном правила R, а W(R,с) – нечеткий вес соединения нейрона правила R с нейроном выходного слоя с. Вместо применения операций взятия максимума и минимума можно использовать другие функции t-нормы и t-конормы соответственно.
База правил представляет собой аппроксимацию неизвестной функции и описывает классификационную задачу, где такая, что и х принадлежит классу .
Нечеткие множества и лингвистические правила представляют аппроксимацию и определяют результат системы NEFCLASS. Они получаются из множества выборок путем обучения. Обязательно должно выполняться правило, что для каждого лингвистического значения может существовать только одно представление нечеткого множества.
Рис.4. Система NEFCLASS в виде 3-слойной нейронной сети
с двумя входными нейронами.
Обучение в системе NEFCLASS
Система NEFCLASS может быть построена по частичным знаниям об образцах. Пользователь должен определить количество начальных нечетких множеств и задать значение k – максимальное число узлов правил, которые могут быть созданы в скрытом слое. Для обучения мы будем использовать определенную ранее треугольную функцию принадлежности. Рассмотрим непосредственно алгоритм обучения.
Рассмотрим систему NEFCLASS с n входными нейронами , нейронами правил и m выходными нейронами . Также задано обучающее множество образцов , каждый из которых состоит из входного образца и желаемого образца. Обучающий алгоритм, цель которого создать k нейронов правил системы NEFCLASS, состоит из следующих этапов:
,
то создаем такой узел и соединяем его с выходным узлом , если .
а) “Простое” обучение правил: оставляем только первые k правил (останавливаем создание правил, если было создано правил).
б) “Лучшее” обучение правил: обрабатываем образцы в L и накапливаем активации каждого нейрона правил для каждого класса образцов, которые были распространены. Если нейрон правила R показывает большее накопление активации для класса , чем для класса , который был специфицирован для следствия правила, тогда изменяем следствие R на , то есть соединяем R с нейроном выхода . Продолжаем обработку образцов в L дальше и вычисляем для каждого нейрона правил:
,
Оставляем k нейронов правил с наивысшими значениями и удаляем другие нейроны правил из системы NEFCLASS
в) “Лучший для каждого класса” алгоритм обучения: действуем также как и в предыдущем случае, но оставляем для каждого класса те лучшие правил, следствия которых представляют класс (где [x] – целая часть от x).
Алгоритм обучения нечетких множеств
Алгоритм обучения с учителем системы NEFCLASS должен адаптировать его нечеткие множества пробегать циклически через все обучающее множество L, продолжая ниже перечисленные шаги, пока не выполнится один из критериев останова.
Шаги:
а) Определяем значение , равное
б) Находим такое , что
в) Для нечетких множеств определяем , используя скорость обучения :
и применяем изменения к .
г) Вычисляем ошибку правила:
В качестве критерия останова можно взять, например, такие:
Создание нечетких классификационных правил методом нечеткой кластеризации
Почти все нечеткие кластерные алгоритмы пытаются найти адекватный прототип для каждого нечеткого кластера и удобную степень принадлежности для данных каждого кластера. Обычно целью алгоритма является минимизация функции
при ограничении, что каждый кластер не может быть полностью пустым, и обычно сумма его степеней принадлежности равна 1.
- множество данных; с – число нечетких кластеров; - степень принадлежности данного кластеру i; - расстояние между прототипом и данным . Параметр называется нечетким индексом. При покрытие кластера четкое, как и при ; для мы имеем . Чаще всего выбирается m=2.
Данная функция должна быть минимизирована с помощью вычисления суммы квадратов расстояний от данного объекта до его прототипа, связанного с ним весом. Этим нечетким множествам присваиваем удобные лингвистические термы, такие как: “практически ноль” или “положительное малое”.
Предпосылка соответствующего классификационного правила – объединение лингвистических термов следствий в класс, с которым связан кластер.
Для наиболее простого нечеткого кластерного алгоритма (FCM-алгоритма) расстояние d является простым эвклидовым расстоянием. Рассмотрим основную идею метода.
Каждый нечеткий кластер должен быть связан с одним классом классификации. Величина степени принадлежности данных кластеру определяет степень, с которой они могут быть классифицированы как члены соответствующего класса. С кластером, который связан в классом i, мы ассоциируем лингвистическое классификационное правило, которое для i -го кластера вычисляется следующим образом: