Материал: Нейро-нечеткие сети

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

·        изучена теоретическая основа гибридных нечетких нейронных сетей;

·        исследованы возможные способы интеграции нечеткой логики и нейронных сетей;

·        рассмотрена распространенная сеть ANFIS, которая имеет реализацию в среде MATLAB;

·        введено общее описание изучаемой системы NNFLC.

2. Система NNFLC

.1 Структура сети

Сеть состоит из 4 слоев (Рис. 2.1):

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

·        Второй слой - база нечетких правил, каждый узел которого представляет одно нечеткое правило.

·        Третий - функции принадлежности выходных переменных.

·        Четвертый слой формирует выход.

Связи второго слоя определяют предпосылки правил, а третьего - следствие. Стрелки на связях показывают прямое направление распространения сигнала при ее использовании после обучения. Сигналы могут распространяться и в обратном направлении на стадии обучения.

Рис 2.1. Структура NNFLC

Опишем конкретнее задачи узлов каждого слоя:

слой (входные термы):

Выполняется раздельная фаззификация каждой переменной  (i=1..n) в соответствии с функцией принадлежности. Функции принадлежности бывают разных видов, в данной работе она представлена функцией Гаусса


где f - интеграционная функция, вычисляемая нейроном, a - функция активации нейрона,  - центр функции принадлежности, а  - ширина функции принадлежности переменной  Данные параметры будут настраиваться в дальнейшем.

слой (правила):

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


3 слой (выходные термы):

В рабочем режиме выполняет нечеткую операцию ИЛИ для комбинации правил с одинаковыми следствиями. Для этого выбрана функция максимума:


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

слой (выходные лингвистические значения):

Также выполняет разные функции в режиме обучения и работы

В рабочем режиме выполняет дефаззификацию методом центра тяжести


где , а  - параметры функций принадлежности выходных переменных.

В режиме обучения принимает выходной сигнал обучающей выборки и передает в третий слой:


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

 - количество термов переменной  (количество нечетких разбиений лингвистической переменной . Структура инициализируется согласно принципу построение полной базы правил, поэтому их количество во втором слое определяется как . Входами же узлов правил является одна возможная комбинация входных термов. Изначально соединены все узлы 2 и 3 слоя, это значит, что следствия правил еще не определены. После обучения в качестве следствия правила будет выбран один узел.

2.2 Обучение

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

2.2.1 Самоорганизация

На данном этапе ставится следующая задача:

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

На этой стадии сеть работает в две стороны, то есть обучающие входные и выходные данные подаются сети с двух сторон.

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

При наличии обучающих данных и фиксированного количества нечетких множеств можно использовать метод обучения на основе самоорганизации. Процесс самоорганизации обучающих данных автоматически разделяет пространство на области, определяющие различающиеся группы данных. С помощью него определяются центры и ширина функций принадлежности. Данные, сгруппированные в кластере, представляются центральной точкой, которая определяет среднее значение всех его элементов. Согласно алгоритму, центры размещаются только в тех областях входных и выходных пространств, в которых имеются данные. Количество кластеров соответствует количеству функций принадлежности. Для достижения этих целей можно применить метод конкурентного обучения (competitive learning).

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

Для каждого набора данных подбираем ближайший центр относительно применяемой метрики и корректируем его в соответствии с алгоритмом победителя (WTA - Winner Takes All). Значение остальных центров не меняется [2].


где  - монотонно убывающий уровень обучения, k=.

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

Все обучающие данные предъявляются несколько раз в случайном порядке до стабилизации значений центров.

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


где r - параметр перекрытия.

После определения параметров функций могут быть вычислены значения первого и третьего слоя (с учетом, что в режиме обучения сигнал идет с двух сторон). Значения второго слоя вычисляются согласно связям, заданным начальной архитектурой. Они определяют степени активности правил. Выходы третьего слоя определяют степени принадлежности эталонного сигнала к нечетким выходным множествам (Рис. 2.2).

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

Рис. 2.2 Подбор подходящего следствия

Алгоритм победителя ищет матрицу весов, которая оценивает связь левой и правой частей правил Обозначим за  вес связи между i-ым элементом второго слоя и j-ым элементом третьего.

,

где .

Среди всех связей, соединяющих узел правила (2 слой) с узлами термов выходных лингвистических переменных (3 слой), выбирается одна с максимальным весом, а остальные исключаются. Таким образом, конкретным условиям правил ставится в соответствие единственное заключение. Если веса всех связей очень малы, то удаляются все связи, это означает, что влияние данного правила на выходную переменную пренебрежимо мало и в результате исключается и узел правила.

Далее необходимо скомбинировать правила, если это возможно, чтобы уменьшить их количество [1,5]. Для объединения элементов второго слоя применяются следующие критерии:

1)      заключение правил одинаково;

)        есть одинаковые условия;

)        некоторые условия правил образуют полное множество названий значения какой-либо лингвистической переменной.

Если существует множество элементов слоя 2, удовлетворяющее всем этим правилам, то оно заменяется единственным элементом (Рис. 2.3).

Рис. 2.3 Объединение правил

После установления всех правил структура сети окончательно определена.

Задача данной фазы формулируется так:

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

Для обучения с учителем используется метод обратного распространения ошибки. Цель - уменьшить функцию ошибки


где  - желаемый выход,  - текущий выход.

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


где  - настраиваемый параметр,  - скорость обучения

В результате дифференцирования получим

слой: параметры - центры и ширины функций принадлежности выходного значения


Далее до 1 слоя распространяется ошибка . Здесь параметры - центры и ширины функций принадлежности входных данных.

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

2.3 Работа с сетью

После обучения сеть готова к поиску решений в рабочем режиме (Рис. 2). На вход подаются данные, по которым должно быть определено искомое значение. В каждом слое определено его поведение в рабочем режиме, а именно: фаззификация входных данных, агрегирование предпосылок, активизация заключений и приведение к четкости.

Рис 2. Алгоритм поиска решения проблемы

2.4 Преимущества системы

1.      Комбинирование и удаление слабо влияющих правил уменьшает базу правил, тем самым позволяя системе работать быстрее, а также лишние правила не влияют на выходное значение.

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

Во второй главе на основании изученных статей и работ:

·        изучено строение и структура сети, количество слоев и нейронов в них, функции слоев;

·        выявлены особенности обучения гибридной сети и отличие этого процесса от нейронных сетей, а также предоставлено полное описание процесса;

·        изложено описание работы сети после обучения.

3.Программная реализация

3.1 Выбор среды программирования

интеллектуальный логический программирование

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

FuzzyTECH предназначена для решения различных задач нечеткого моделирования. Это специализированное средство, которое позволяет исследовать и разрабатывать разнообразные нечеткие модели в графическом режиме, также есть возможность преобразовывать программный код на некоторые другие языки программирования с возможностью последующей реализации в программируемых микроконтроллерах [4].

Для разработки нейронных сетей применяют такие программы как NeuroPro, NeuralBase, STATISTICA Automated Neural Networks и другие.

Количество сред для работы с обеими парадигмами значительно меньше. Приведем описание самых распространенных.

Программное обеспечение Wolfram Mathematica Neural Networks предоставляет надежную среду для моделирования нейронных сетей. Пакет Neural Networks включает в себя исчерпывающий набор структур нейронных сетей и необходимых алгоритмов, средств визуализации и отслеживания распределения ошибок. Включает специальные функции для решения типовых задач анализа данных, таких как классификация, кластеризация, аппроксимация. Wolfram Mathematica Fuzzy Logic является инструментом для создания нечетких множеств и нечетких логических систем, их модификации и визуализации. Имеет встроенные функции для всех стадий моделирования процесса нечеткой логики.

MATLAB - это высокоуровневый язык и интерактивная среда для программирования, расчетов и визуализации результатов. В нем предоставлены возможности для анализа данных, разработки алгоритмов, создания приложений и моделей. Является главным инструментом для решения широкого спектра прикладных и научных задач в таких областях, как финансовый инжиниринг, вычислительная биология, моделирование объектов и разработка систем управления.

В MATLAB встроены различные пакеты и наборы инструментов, расширяющие его функциональность. Они представлены коллекцией функций на языке MATLAB для решения определенного класса задач. В частности здесь присутствуют наборы инструментов для работы с нейронными сетями (Neural Network Toolbox) и нечеткой логикой (Fuzzy Logic Toolbox). Таким образом для дополнения функциональных возможностей в данную среду могут быть встроены дополнительные разработанные пакеты.