3.11.6. Применение нечетких нейронных сетей для аппроксимации функций.
Нечеткие системы являются универсальными аппроксиматорами функций.
Нечеткие нейронные системы можно рассматривать как трехслойную нейронную НС прямого действия. Первый слой здесь представляет входные переменные, средний (скрытый) слой – нечеткие правила и третий – выходные переменные. (Иногда используется 5-слойная архитектура, где нечеткие множества представлены в нейронах 2 – 4 уровней).
Нечеткие нейронные системы аппроксимируют n-мерные неизвестные функции, которые частично определены обучающими данными.
Аппроксимация функций, основанная на локальных обучающих стратегиях, является одной из областей применения НС и в частности нечетких НС. Однако нечеткие НС имеют преимущества перед обычными НС, т.к. могут использовать предыдущие знания в форме нечетких правил, в то время как последние обучаются с нуля.
Ниже будет рассмотрена модель, названная NEFPROX (Neuro-Fuzzy function approximator), основанная на нечетком перцептроне.
Определение. Трехслойным нечетким перцептроном называется прямая нейронная сеть (U,w,Net,A,O,ex), где:
где - удобная функция дефаззификации
,
где Т-функция t-нормы (пересечение)
,
,
где t - функция t-нормы (например max)
Нечеткий перцептрон можно рассматривать как трехслойную нейронную сеть
со специальными функциями активации и распространения и нечеткими множествами в качестве весов. С другой стороны перцептрон можно рассматривать как нечеткую систему, представленную в виде архитектуры НС.
Система NEFPROX - это специальный трехслойный нечеткий перцептрон со следующей спецификацией:
Для всех нейронов , таких, что
Это определение дает возможность интерпретировать NEFPROX как простую нечеткую систему. Каждый скрытый нейрон реализует нечеткое правило вида: ЕСЛИ-ТО. Если бы это следствие не выполнялось, то существовала бы возможность нечетким правилам, представляющим одинаковые лингвистические термы развиваться по-разному в процессе обучения.
Если бы это следствие отсутствовало, то каждое правило могло бы иметь индивидуальную ФП, что приведет к неверной интерпретации базы правил и является крайне нежелательным.
На рис. 4 представлена архитектура NEFPROX.
Рис.4. Архитектура NEFPROX.
Алгоритм обучения системы NEFPROX.
Для задачи аппроксимации функций мы можем использовать алгоритм обучения с учителем, т. к. правильные значения на выходе известны для обучающей выборки данных. Если мы используем систему, состоящую из нечетких правил для аппроксимации функций, то сможем использовать предыдущие знания, это означает, что мы уже знаем удобные правила для определенных областей и, следовательно, можем включить их в нейронную сеть. Остальные правила должны быть найдены при помощи процедуры обучения.
Если же у нас нет априорных знаний, то начинаем с системы NEFPROX без скрытого слоя и обучаем все без исключения правила.
Для обучения будем использовать ФП, описываемую тремя параметрами.
Для обучения можно использовать также и любую другую форму ФП. Чтобы начать процедуру обучения мы должны точно определить начальное нечеткое деление каждой входной переменной. Это не требуется для выходных величин, для которых нечеткие множества будут созданы в процессе обучения. Если нечеткие множества не заданы, то тогда нужно четко определить начальный диапазон для функций принадлежности (т.е.).
Рассмотрим структуру алгоритма.
Имеем систему NEFPROX с n входными нейронами , k нейронами скрытого слоя и m нейронами выходного слоя . Задана также цель обучения , состоящая из r образцов, каждый из которых состоит из входного образца и образца (цель обучения), и множества ограничений Ф. Алгоритм обучения, цель которого создать k нейронов правил NEFPROX, состоит из следующих шагов:
Алгоритм обучения с учителем для нечетких множеств системы NEFPROX происходит циклически путем обучения множества L, продолжая следующие шаги, пока не выполнится критерий останова алгоритма обучения.
Если , то
.
Применяем изменения к , если это не нарушает заданное множество ограничений Ф (вес применяется и к другим связям и значит, он должен быть изменен более 1 раза).
Применяем изменения к весам , если это не нарушает заданное множество ограничений Ф (вес применяется и к другим связям и значит, он должен быть изменен более 1 раза).
Алгоритм обучения правил выбирает нечеткие правила, основанные на определенном ранее разбиении входного пространства. Это разбиение задается начальными нечеткими множествами. Если алгоритм создает очень много правил, можно обрабатывать их, определяя индивидуальные ошибки, чтобы в дальнейшем применять только лучшие правила.
Каждое правило описывает определенное количество образцов неизвестной функции.
Если правило удалятся, то это означает, что мы его больше не принимаем во внимание.
Для улучшения интерпретируемости, количество правил в процессе обучения должно сокращаться. Результат достигается путем сдвига ФП, что может привести к увеличению или уменьшению области её определения. Для того, чтобы этого не произошло, нужно перед началом процедуры обучения задать конечное множество ограничений. В качестве критерия останова можно взять критерий, применяемый в алгоритме обучения обычных НС: обучение длится до тех пор, пока ошибка не прекращает уменьшаться на протяжении определенного числа итераций.
Ограничения, накладываемые на нечеткие множества:
Предсказание временных рядов
В качестве примера, показывающего возможности системы NEFPROX, мы рассмотрим хаотические временные ряды, заданные дифференциальным уравнением Макки-Гласса (Mackey-Glass).
Мы будем использовать значения x(t-18), x(t-12), x(t-6) и x(t), чтобы предсказать значения x(t+6). Обучение данных производилось с использованием процедуры Рунге-Кутта с шагом =0.1. В качестве начального состояния временного ряда было взято х(0)=1.2 и . Было создано 1000 значений между t =118 и 1117, где первые 500 использовались уже в обученном виде, а остальные 500 будут настроены в процессе обучения.
Система NEFPROX, которая должна была аппроксимировать временной ряд, имела 4 входных и 1 выходную переменную. Каждая переменная была изначально разделена на 7 одинаковых треугольных нечетких множеств, где соседние функции принадлежности пересекались на уровне 0.5. Мы использовали процесс дефаззификации МОМ (mean-of-maximum) так как система NEFPROX представляет обычную систему Мамдани.
Рис.1. Аппроксимация временных рядов Макки-Гласса с системы NEFPROX.
Эта система имела 105 регулируемых параметров. Также вводилось понятие скорости обучения , начальное значение которой =0.01, которое затем умножалось на 1.1, если ошибка уменьшалась на протяжении 4 последовательных шагов. Если ошибка не изменялась или возрастала, то скорость обучения умножалась на 0.9. Обучение прекращалось, если ошибка правила не уменьшалась на протяжении 100 итераций. Система NEFPROX с наименьшей ошибкой сохранялась во время процесса обучения и восстанавливалась после обучения.
Рис.1. представляет аппроксимацию данной системы после 216 итераций. Значения 1 – 500 представляют собой оттренированные данные до процесса обучения (данные, полученные ранее), а значения 500 – 1000 представляют собой множества, полученные в результате обучения. Процедура процесса обучения создала 129 правил (в данной конфигурации максимально возможное количество правил ). Значение ошибки в ранее полученных данных = 0.0315, и соответственно 0.0332 в данных, полученных во время обучения. Время обучения при использовании пакета SUN UltraSparc составило 75 секунд.