Статья: Сравнение результатов моделирования нейро-нечеткой сети в Matlab

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

Статья по теме:

Сравнение результатов моделирования нейро-нечеткой сети в 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