Статья по теме:
Сравнение результатов моделирования нейро-нечеткой сети в Matlab
Ханевский Алексей Александрович - магистр, Специальность: системный анализ, обработка и управления информации, Белорусско-Российский университет, г. Могилев, Республика Беларусь
Аннотация
Исследуя проблему моделирования объектов при помощи нейронных сетей, сталкиваешься с основной проблемой - проверкой результатов полученной модели. Предложена одна задача, которая будет решена разными путями, чтобы узнать есть ли связь результатов, полученных при помощи обучения нейро-нечеткой сети ANFIS и выбора различных функций принадлежности.
Ключевые слова: нейро-нечеткие сети, matlab, анализ данных, машинное обучение, нейроны, ANFIS.
Попытка использовать неточную информацию в математических моделях привела к разработке методов нечеткого моделирования. Напомним, что математические модели манипулируют переменными. В традиционных моделях значения рассматриваемой переменной берутся из некоторого набора чисел, называемого универсумом. Традиционные математические модели манипулируют непосредственно своими элементами. Однако в нечеткой модели переменные могут представлять собой нечеткие подмножества универсума. Следовательно, нечеткие модели требуют разбиения универсума на части, для которых специфично, что они не должны быть точно сформированы и могут пересекаться.
Нечеткое моделирование представляет собой группу специальных математических методов, которые позволяют включать в модель неточную или неопределенно сформулированную экспертную информацию, которая часто характеризуется естественным языком. Развитые модели (мы называем их нечеткими моделями) очень успешны, потому что они обеспечивают решение в различных ситуациях, когда традиционные математические модели терпят неудачу - либо из-за их неадекватности, либо из-за их неспособности использовать полную доступную информацию.
Обратите внимание, что идея включения неточной информации в наши модели противоречит тому, что всегда требуется: насколько возможно высокая точность. Однако есть веская причина для этого, а именно, мы сталкиваемся с расхождением между актуальностью и точностью. Так называемый принцип несовместимости, сформулированный Л.А. Заде, гласит следующее:
По мере усложнения системы наша способность делать абсолютные, точные и значимые утверждения о поведении системы уменьшается. В какой-то момент будет возможен обмен между точностью и релевантностью. Повышение точности может быть достигнуто только за счет уменьшения значимости; повышение значимости может быть достигнуто только за счет снижения точности.
С другой стороны, правила IF-THEN, используемые людьми почти всегда расплывчаты. Причина в том, что они содержат неопределенные выражения естественного языка, которые являются центральными для человеческого мышления.
ANFIS- это аббревиатура Adaptive-Network-BasedFuzzyInferenceSystem - адаптивная сеть нечеткого вывода. Она была предложена Янгом (Jang) в начале девяностых [1]. ANFIS является одним из первых вариантов гибридных нейро-нечетких сетей - нейронной сети прямого распространения сигнала особого типа. Архитектура нейро-нечеткой сети изоморфна нечеткой базе знаний. В нейро-нечетких сетях используются дифференцируемые реализации треугольных норм (умножение и вероятностное ИЛИ), а также гладкие функции принадлежности. Это позволяет применять для настройки нейро-нечетких сетей быстрые алгоритмы обучения нейронных сетей, основанные на методе обратного распространения ошибки. Ниже описываются архитектура и правила функционирования каждого слоя ANFIS-сети.
ANFIS реализует систему нечеткого вывода Сугено в виде пятислойной нейронной сети прямого распространения сигнала. Назначение слоев следующее:
первый слой - термы входных переменных;
второй слой - антецеденты (посылки) нечетких правил;
третий слой - нормализация степеней выполнения правил;
четвертый слой - заключения правил;
пятый слой - агрегирование результата, полученного по различным правилам.
Входы сети в отдельный слой не выделяются. На рисунке 1 изображена ANFIS- сеть с двумя входными переменными (xjи x2) и четырьмя нечеткими правилами. Для лингвистической оценки входной переменной xj используется 3 терма, для переменной x2- 2 терма.
Для анализа базового алгоритма используем среду MATLAB с пакетом FuzzyLogicToolbox также гибридные сети реализованы в форме так называемой адаптивной системы нейро-нечеткого вывода или ANFIS.
Основным этапом создания такой сети является база правил IF-THEN, коротая создается внутри нейронной сети, что делает её приближенной к человеку. Инструментом в нечетком моделировании являются нечеткие правила IF-THEN. Это специальные выражения, которые характеризуют отношения между частями двух или более универсумов. Например, рассмотрим электрический котел и два универсума: значения электрического TOra(A) и температуры). Тогда следующее типичное нечеткое правило IF-THEN: R: если электрический ток очень сильный тогда температура высокая.
Для написания алгоритма нейро-нечеткой сети понадобится математическая модель нейрона человеческого мозга. С использованием данной модели можем описать, как взаимодействуют входные данные и что получаем на выходе.
Начало происходит с входных данных, это параметры в зависимости от самой задачи, потом данные параметры зависят от весов, которое зависят от конкретной задачи, после чего они проходят скрытые слои или hidden-layer, где суммируются как, а после проходят через функцию принадлежности и благодаря данной функции получаем нужный нам результат.
Функций принадлежности существует достаточно много для получения различных результатов, они выбираются в зависимости от задачи. Функции принадлежности бывают линейные и нелинейные.
Классификация данных функций: линейная или нелинейная.
К линейным относятся: кусочно-линейные, треугольные, трапецеидальные.
К нелинейным относятся: полиномиальные, сигмоидальные, гауссовские.
Для работы используем нечеткую сеть TSK. Эта сеть состоит из M правил и N переменных для xi, представляются в виде.
Правило Мамдани:
ЕСЛИ (х1 есть A1) И … И (хnесть An) ТО (y = c0) Правило Такаго-Сугено:
ЕСЛИ (х1 есть A1) И … И (хnестьAn) ТО (y = a0 + a1x1 +… + anxn).
ИЛИ THEN y = a0 + ? aixi.
Условия IF (xiIS Ai) реализуется функцией фаззификации, которая представлена Гауссовской обобщенной функцией для каждой переменной xi:
где µ(x) это оператор Ai. В нечетких сетях уcловия задаются в алгебраическом произведении, из этого появляются правила k-ого вывода.
Которую можно представить в виде:
При М правилах вывода выходного результата сети происходит по формуле:
Которую можно представить в виде
Как видим в формуле (4;3) присутствуют веса тек которые определяются по формуле (1) можно увидеть как идут слоя в нечеткой модели нейронной сети (Рисунок 2)
Рис. 2 - Нейронная сеть для представления нечеткой модели
Условия IF (xiISAi) реализуется функцией фаззификации, которая представлена Сигмоидной функцией для каждой переменной xi:
нейро нечеткий сеть сигнал
Гибридная сеть представляет собой многослойную сеть без обратной связи, в которой используется обычные сигналы, веса, функции принадлежности, а суммирование проходит на основе Т-нормы, значения весов данной сеи представляют вещественные числа из отрезка от [0,1].
Идея на которой построены гибридные сети, заключается в использовании имеющуюся входные данные для определение параметров функции принадлежности, которые соответствуют системе нечеткого вывода. Для нахождения параметров функций принадлежности используют обучение нейронных сетей.
В стандартном пакете MATLAB имеется пакет FuzzyLogicToolbox- это нечеткие сети реализованные в форме системы нейро - нечеткого выводы.
Редактор ANFIS облегчает работу создания и реализацию конкретной модели системы нейро - нечеткого вывода, производить обучение в котором сами можем корректировать число эпох, визуализировать ее структуру, дополнять параметры и использовать определенные правила.
Для реализации описанной модели используется среда MATLAB 2014b. Программные возможности среды MATLAB достаточно обширны и позволяют без труда реализовывать задачи любой сложности, а также создавать дополнительные условия и улучшать программу благодаря большой библиотеки и дополнительных средств, которые позволяют облегчить задачи построения.
Входными данными являются входная матрица данных со значениями в таблице 2. В качестве входных данных была решена задача на лобовое сопротивление. Лобовое сопротивление - это сила, которая направлена против движения объекта в различных средах (например газ, жидкость). Сила сопротивление всегда направлена против вектора скорости объекта в конкретной среде. Лобовое сопротивление является одной из причин обледенения летательных аппаратов (из-за низких температур в слоях атмосферы), а также вызвать нагрев лобной части объекта. Сила лобового сопротивления направлена против вектора скорости движения, её величина пропорциональна характерной площади S, плотности среды р и квадрату скорости V:
где - сила сопротивления,
Схо - безразмерный коэффициент сопротивления формы (КСФ),
F- сила Ньютона полученная экспериментально,
р - плотность среды,
V - скорость потока,
S- характерная площадь перпендикулярно потоку.
При помощи КСФ можно точно вычислить силу сопротивления динамическому напору среду тел любой формы, геометрии, для любой скорости.
Таблица 1 - Формы при определенных значениях КСФ
|
Форма |
Схо |
|
|
Сфера |
0,47 |
|
|
Куб |
1,05 |
|
|
Цилиндр |
0,8 |
|
|
Каплевидная тело |
0,05 |
Определение площади зависит от формы тела.
Так же для преодоления силы лобового сопротивления требуется определенная мощность:
Выходными данными являются промежуточные значения алгоритма и полученные при обучении сети, составленной различными правилами IFTHEN. Полученные значения выводятся на график.
Логический вывод можно понимать как процесс, в ходе которого мы получаем некоторые факты из других известных фактов, используя специальные правила, которые подражают правилам человеческого мышления (рассуждения). Они называются правилами вычета. Факты - это некоторые утверждения о реальности, сформулированные на определенном формальном языке. Эти утверждения называются формулами или предложениями.
Для запуска ANFIS редактора используется команда anfisedit. В результате появится на экране графическое окно (Рисунок 3), так же здесь находятся различные другие области LoadData позволяет загрузить данные в виде файла .dat. Далее используем область генерирования исходной FIS там выбираем функцию Гаусса (Рисунок 4). После генерирования выбираем метод обучения нашей нейронной сети, так как у нас используется гибридная сеть, то выбираем в поле метод свойство hybrid. В области графика выводится два типа графиков: экспериментальные данные, результаты моделирования. Они представляют собой результат скопления множества точек. Данная программа использует свои обозначения в поле визуализации:
Голубая точка - тестируемая выборка.
Голубая окружность - обучающая выборка.
Голубой плюс - контрольная выборка.
Красная звездочка - результаты моделирования.
Рис. 3 - Окно редктора ANFIS
Таблица 2 - Матрица входных данных для обучения нейро-нечеткой сети
|
Сила |
Скорость |
КСФ |
Лобовое сопротивление |
Мощность |
|
|
1000 |
11 |
0,526132 |
11000 |
121000 |
|
|
1000 |
12 |
0,442097 |
12000 |
144000 |
|
|
1000 |
13 |
0,376698 |
13000 |
169000 |
|
|
1000 |
14 |
0,324806 |
14000 |
196000 |
|
|
1000 |
15 |
0,282942 |
15000 |
225000 |
|
|
1000 |
16 |
0,24868 |
16000 |
256000 |
|
|
1000 |
17 |
0,220284 |
17000 |
289000 |
|
|
1000 |
18 |
0,196488 |
18000 |
324000 |
|
|
1000 |
19 |
0,176349 |
19000 |
361000 |
|
|
1000 |
20 |
0,159155 |
20000 |
400000 |
|
|
1000 |
21 |
0,144358 |
21000 |
441000 |
|
|
1000 |
22 |
0,131533 |
22000 |
484000 |
|
|
1000 |
23 |
0,120344 |
23000 |
529000 |
|
|
1000 |
24 |
0,110524 |
24000 |
576000 |
|
|
1000 |
25 |
0,101859 |
25000 |
625000 |
|
|
1000 |
26 |
0,094175 |
26000 |
676000 |
|
|
1000 |
27 |
0,087328 |
27000 |
729000 |
|
|
1000 |
28 |
0,081202 |
28000 |
784000 |
|
|
1000 |
29 |
0,075698 |
29000 |
841000 |
|
|
1000 |
30 |
0,070736 |
30000 |
900000 |
|
|
1099 |
99 |
0,007139 |
108801 |
10771299 |