3.11.7. Нечеткий перцептрон как общая модель для нечетких нейронных методов.

В данном разделе мы представим общую модель многослойной нечеткой нейронной сети (нечеткий перцептрон). Цель данной модели заключается в следующем: мы не заинтересованы в том, чтобы производить процесс фаззификации многослойного перцептрона полностью, а дать возможность сети использовать ранее полученные знания и интерпретировать результат обучения в форме лингвистических правил. Путем ввода дополнительного ограничения в определение нечеткого перцептрона, он может восприниматься как обычный нечеткий контроллер. Таким образом, можно создать нейронный нечеткий контроллер типа NEFCON (Neural Fuzzy CONtrol).

Обучающий алгоритм для нечеткого перцептрона не является последовательным, как это было при обучении нейронных сетей, потому что здесь в качестве функций активации чаще всего используются не дифференцированные функции t–нормы и t–конормы. Поэтому метод градиентного спуска здесь не применим.

Рассмотрим 3-слойный нечеткий перцептрон с n входными и m выходными нейронами. Пусть L – цель нашего обучения, состоящая из образцов , где . Пусть описывают желаемое входное значение нейрона u, заданного входным вектором , и пусть описывает действительное выходное значение нейрона u. Пусть переменная определяет разницу между максимальным и минимальным значением на выходе нейрона u. Нечеткая ошибка для u и данного p определяется так:

,

где - масштабный коэффициент.

Масштаб используется для регулирования чувствительности нечеткой ошибки, делая ошибку более или менее отличной от желаемого и действительного выходного значения.

Рассматривая 3-слойный нечеткий перцептрон и цельобучения L, алгоритм обратного распространения ошибки определяется следующим образом:

  1. Выбираем любое и вводим входной вектор
  2. Вычисляем

  3. Определяем .

Повторяем эти шаги для всех , пока общая ошибка не будет достаточно мала.

Изменения в нечетком весе определяется формулой, представленной в 3-ем пункте приведенного алгоритма, и зависит от сигнала нейрона v, а также может зависеть от активации а и от входной величины сети net. Обычно нечеткие множества представляются параметрической функцией принадлежности, таким образом, что изменения специфицируются в термах этих параметров.

Минимаксный нечеткий перцептрон.

Рассмотрим 3-слойный нечеткий перцептрон, используя операторы min и max в качестве t–нормы и t–конормы. Дефаззификацию будем проводить методом центра пространства (СОА). Веса предикатов определим как , а веса следствий определим как . Каждый нечеткий вес определяется треугольной функцией , которая задается тремя элементами , такими что интервал является областью определения нечеткого множества и , и для всех функций принадлежности выполняется неравенство :

Аналогичное определение имеет место и для функции принадлежности . Мы будем использовать обучающую цель L с образцами , такими что ,

Если значение на выходе выходного нейрона должно быть увеличено для достижения желаемого значения, то область определения нечеткого множества, относящегося к следствию правила, должна быть расширена. Этого можно достичь увеличивая r или уменьшая l, дополнительный параметр с должен быть изменен так, чтобы он приближался к соответствующему входному значению. На рис.2. изображен пример, иллюстрирующий воздействие этой стратегии для следствия правила. Если выходное значение должно быть увеличено, и мы начинаем с ситуации, изображенной пунктирными линиями, то мы достигаем новых нечетких множеств. Вычисления, используемые дл распространения образца в этом примере, такие же, как и для нечеткого контроллера Мамдани.

Рис.2. Настройки функции принадлежности.

Представим необходимые вычисления нечеткой ошибки распространения, используя метод дефаззификации СОА.

Множество Е = 0 и для каждого повторяем следующие шаги:

  1. Выбираем любой , который еще до этого не был выбран во время процесса обучения и распространяем входной вектор .
  2. Вычисляем для всех и вычисляем общую ошибку Е.
  3. Определяем изменения параметров для нечетких весов. Для всех со скоростями обучения получим:

Критерий останова алгоритма: заканчиваем обучение, если ошибка Е достаточно мала.

Такой вид архитектуры используется для аппроксимации функции по заданному примеру данных. В результате получаем множество правил вида “если - то”.

Специальный нечеткий перцептрон для задач управления.

Модель NEFCON (Neural Fuzzy CONtrol) происходит от общей модели нечеткого перцептрона и также используется для задач управления. Обучающий алгоритм является модификацией алгоритма нечеткой ошибки, которая распространяется в обратном направлении, и обучение может происходить в интерактивном режиме.

Система NEFCON – специальный 3-слойный нечеткий перцептрон со следующими особенностями:

  1. Входные нейроны обозначены как , нейроны скрытого слоя – , нейрон выходного – .
  2. Каждое соединение между нейронами и помечается лингвистическим термом .
  3. Каждое соединение между нейронами и выходным нейроном помечается лингвистическим термом .
  4. Соединения, выходящие из одного нейрона , имеют одинаковую пометку и один и тот же вес на протяжении всего времени. Такому же условию удовлетворяют соединения, входящие в выходной нейрон .
  5. Пусть - маркированное соединение между входным нейроном х и нейроном R (называемым также нейроном правила – rule neuron). Тогда выполняется следующее следствие. Тогда выполняется следующее следствие: для всех нейронов таких, что
.

Рис.3. Система NEFCON с двумя входными переменными

Это определение дает возможность интерпретировать NEFCON как простую нечеткую систему. Каждый скрытый нейрон представляет нечеткое правило вида “если – то”. Если бы это следствие не выполнялось, то существует возможность нечетким правилам, представляющим одинаковые лингвистические термы, “развиваться” по разному в процессе обучения. Если бы это следствие отсутствовало, то каждое правило могло иметь индивидуальную функцию принадлежности, что приведет к неверной интерпретации базы правил, а это крайне нежелательно. На рис.3. представлена архитектура системы NEFCON. Рассмотрим процесс обучения системы NEFCON.

Обучение нечетких множеств.

Пусть нечеткая ошибка , где e описывает величину ошибки текущего состояния и определяется из множества лингвистических ошибок правил, . Е содержит в себе информацию о направлении необходимых изменений. Эта информация содержится в знаке неизвестного оптимального выходного состояния. Само значение не известно, но имеется информация о том, больше оно или меньше нуля. Теперь рассмотрим изменение величины Е. Пусть Е - нечеткая ошибка в момент времени t, а нечеткая ошибка в момент времени t+1. Тенденцию ошибки определим как:

Приведем алгоритм изменения функции принадлежности предиката и следствия.

Пусть S – динамическая система с n переменными состояния и одна выходная (регулируемая) переменная . Для каждой входной переменной определены треугольные нечеткие множества . Для каждого нечеткого множества задано ограничение , которое определяет, можно производить изменения или нет. Центр функции принадлежности обозначим как с. Для приспособления функций принадлежности системы NEFCON с k нейронами правил применяются следующие шаги (пока не сработает условие останова, например, нечеткая ошибка остается мала на протяжении значительного промежутка времени):

  1. Определяем Е и для текущего состояния.
  2. Определяем так называемый абсолютный вклад и относительный вклад каждого узла правил r в выходное значение ( - значение на выходе узла правил ).

    ,

    ,

    где определяется путем применения процедуры дефаззификации СОА

  3. Определяем значение на выходе и применяем его к динамической системе S для достижения нового состояния.
  4. Определяем нечеткую и тенденцию ошибки согласно новому состоянию системы S.
  5. Определяем смещение для следствия нечеткого множества

    где - скорость обучения. Изменяем , если это не противоречит множеству всех ограничений.

  6. Определяем сдвиг предиката функции принадлежности ( текущее входное значение )

    .

  7. Изменяем , если это не противоречит всему множеству ограничений .

Мы описали обучающий алгоритм, который оптимизирует нечеткие множества путем их сдвига. Данный алгоритм пытается модифицировать как можно меньше параметров, чтобы поддерживать процедуру обучения в устойчивом состоянии. Замена модификации длины основания нечеткого множества на его сдвиг является положительным моментом, так как могут быть обнаружены лишние НМ, которые просто совпадут потом с какими-то другими НМ.

Этот алгоритм обучения (который используется в системе NEFCON) имеет такое же широкое применение, как и алгоритм обучения с помощью контроллера Мамдани.

Обучение нечетких правил.

Модель NEFCON способна обучать нечеткие правила двумя способами:

  1. создает все возможные правила, а затем удаляет ошибочные и лишние правила;
  2. создает базу правил с нуля путем добавления в нее поочередно по одному правилу.

Это происходит путем классификации входного вектора, то есть находим функцию принадлежности для каждой переменной, которая имеет наивысшее значение функции принадлежности для соответствующего входного значения. Таким образом создаются предикаты правил. Алгоритм находит выходное значение, исходя из текущей ошибки правила. Во второй части база правил оптимизируется, изменяя следствие на смежную функцию принадлежности, если это необходимо. Для начала выполнения алгоритма должно быть задано начальное нечеткое деление. Опишем более подробно второй алгоритм, проводя обучение по уже обученным нечетким множествам.

1-ая фаза (повторяем следующие шаги раз):

2-ая фаза (повторяем следующие шаги раз):

Классификация объектов с помощью модели 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, состоит из следующих этапов:

  1. Выбираем следующий образец (p,t) из L.
  2. Для каждого входного нейрона находим такую функцию принадлежности , что

  3. Если по-прежнему узлов правил осталось и не существует узла правила R с

    ,

    то создаем такой узел и соединяем его с выходным узлом , если .

  4. Если еще остались необработанные образцы в L и , то едем на шаг (i), а иначе стоп.
  5. Определяем базу правил по одной из трех следующих процедур:

а) “Простое” обучение правил: оставляем только первые k правил (останавливаем создание правил, если было создано правил).

б) “Лучшее” обучение правил: обрабатываем образцы в L и накапливаем активации каждого нейрона правил для каждого класса образцов, которые были распространены. Если нейрон правила R показывает большее накопление активации для класса , чем для класса , который был специфицирован для следствия правила, тогда изменяем следствие R на , то есть соединяем R с нейроном выхода . Продолжаем обработку образцов в L дальше и вычисляем для каждого нейрона правил:

,

Оставляем k нейронов правил с наивысшими значениями и удаляем другие нейроны правил из системы NEFCLASS

в) “Лучший для каждого класса” алгоритм обучения: действуем также как и в предыдущем случае, но оставляем для каждого класса те лучшие правил, следствия которых представляют класс (где [x] – целая часть от x).

Алгоритм обучения нечетких множеств

Алгоритм обучения с учителем системы NEFCLASS должен адаптировать его нечеткие множества пробегать циклически через все обучающее множество L, продолжая ниже перечисленные шаги, пока не выполнится один из критериев останова.

Шаги:

  1. Выбираем следующий образец (p,t) из L и распространяем его через систему NEFCLASS и определяем выходной вектор с.
  2. Для каждого выходного нейрона определяем значение

  3. Для каждого нейрона правил R с :

В качестве критерия останова можно взять, например, такие:

  1. Ошибка на протяжении n итераций не уменьшается.
  2. Прекратить обучение по достижении ошибкой определенного (желательно близкого к нулю) значения.

Создание нечетких классификационных правил методом нечеткой кластеризации

Почти все нечеткие кластерные алгоритмы пытаются найти адекватный прототип для каждого нечеткого кластера и удобную степень принадлежности для данных каждого кластера. Обычно целью алгоритма является минимизация функции

при ограничении, что каждый кластер не может быть полностью пустым, и обычно сумма его степеней принадлежности равна 1.

- множество данных; с – число нечетких кластеров; - степень принадлежности данного кластеру i; - расстояние между прототипом и данным . Параметр называется нечетким индексом. При покрытие кластера четкое, как и при ; для мы имеем . Чаще всего выбирается m=2.

Данная функция должна быть минимизирована с помощью вычисления суммы квадратов расстояний от данного объекта до его прототипа, связанного с ним весом. Этим нечетким множествам присваиваем удобные лингвистические термы, такие как: “практически ноль” или “положительное малое”.

Предпосылка соответствующего классификационного правила – объединение лингвистических термов следствий в класс, с которым связан кластер.

Для наиболее простого нечеткого кластерного алгоритма (FCM-алгоритма) расстояние d является простым эвклидовым расстоянием. Рассмотрим основную идею метода.

Каждый нечеткий кластер должен быть связан с одним классом классификации. Величина степени принадлежности данных кластеру определяет степень, с которой они могут быть классифицированы как члены соответствующего класса. С кластером, который связан в классом i, мы ассоциируем лингвистическое классификационное правило, которое для i -го кластера вычисляется следующим образом:

Пример 1
Пример 2