Добавлен: 14.06.2023
Просмотров: 209
Скачиваний: 3
СОДЕРЖАНИЕ
Глава 1. История развития нейронных сетей
Глава 2. Аналогия нейронных сетей с мозгом и биологическим нейроном
Глава 3. Понятие искусственного нейрона
Глава 4. Виды искусственных нейронных сетей
Глава 5. Обучение искусственных нейронных сетей
Глава 6. Применение нечеткой логики на практике
Сети Кохонена или Самоорганизующиеся карты – это класс сетей обычно обучается без помощи учителя и часто применяется в задачах связанных с распознаванием изображений.
Такие сети способны определять новые элементы во входных данных: если пройдя обучение сеть увидит набор данных, непохожий ни на один из знакомых образцов, то она классифицирует такой набор и не выявит его новизну.
Сеть Кохонена имеет всего два слоя: выходной и входной, составленный из радиальных элементов[1],[3].
Глава 5. Обучение искусственных нейронных сетей
Обучение нейронной сети- это процесс, в котором параметры нейронной сети настраиваются посредством моделирования среды, в которую эта сеть встроена. Тип обучения определяется способом подстройки параметров. Различают алгоритмы обучения с учителем и без учителя.
Процесс обучения с учителем представляет собой предъявление сети выборки обучающих примеров. Каждый образец подается на входы сети, затем проходит обработку внутри структуры НС, вычисляется выходной сигнал сети, который сравнивается с соответствующим значением целевого вектора, представляющего собой требуемый выход сети.
Для того, чтобы нейронная сети была способна выполнить поставленную задачу, ее необходимо обучить (см. рисунок 5.1). Различают алгоритмы обучения с учителем и без учителя.
Процесс обучения с учителем представляет собой предъявление сети выборки обучающих примеров. Каждый образец подается на входы сети, затем проходит обработку внутри структуры НС, вычисляется выходной сигнал сети, который сравнивается с соответствующим значением целевого вектора, представляющего собой требуемый выход сети. Затем по определенному правилу вычисляется ошибка, и происходит изменение весовых коэффициентов связей внутри сети в зависимости от выбранного алгоритма. Векторы обучающего множества предъявляются последовательно, вычисляются ошибки и веса подстраиваются для каждого вектора до тех пор, пока ошибка по всему обучающему массиву не достигнет приемлемо низкого уровня.
Рисунок 5.1 - Иллюстрация процесса обучения НС
При обучении без учителя обучающее множество состоит лишь из входных векторов. Обучающий алгоритм подстраивает веса сети так, чтобы получались согласованные выходные векторы, т.е. чтобы предъявление достаточно близких входных векторов давало одинаковые выходы. Процесс обучения, следовательно, выделяет статистические свойства обучающего множества и группирует сходные векторы в классы. Предъявление на вход вектора из данного класса даст определенный выходной вектор, но до обучения невозможно предсказать, какой выход будет производиться данным классом входных векторов. Следовательно, выходы подобной сети должны трансформироваться в некоторую понятную форму, обусловленную процессом обучения. Это не является серьезной проблемой. Обычно не сложно идентифицировать связь между входом и выходом, установленную сетью.
Для обучения нейронных сетей без учителя применяются сигнальные метод обучения Хебба и Ойа.
Математически процесс обучения можно описать следующим образом. В процессе функционирования нейронная сеть формирует выходной сигнал Y, реализуя некоторую функцию Y = G(X). Если архитектура сети задана, то вид функции G определяется значениями синоптических весов и смещенной сети.
Пусть решением некоторой задачи является функция Y = F(X), заданная параметрами входных-выходных данных (X1, Y1), (X2, Y2), …, (XN, YN), для которых Yk = F(Xk) (k = 1, 2, …, N).
Обучение состоит в поиске (синтезе) функции G, близкой к F в смысле некоторой функции ошибки E. (см. рис. 1.8).
Если выбрано множество обучающих примеров – пар (XN, YN) (где k = 1, 2, …, N) и способ вычисления функции ошибки E, то обучение нейронной сети превращается в задачу многомерной оптимизации, имеющую очень большую размерность, при этом, поскольку функция E может иметь произвольный вид обучение в общем случае – многоэкстремальная невыпуклая задача оптимизации.
Для решения этой задачи могут использоваться следующие (итерационные) алгоритмы[1]:
- алгоритмы локальной оптимизации с вычислением частных производных первого порядка:
- градиентный алгоритм (метод наискорейшего спуска),
- методы с одномерной и двумерной оптимизацией целевой функции в направлении антиградиента,
- метод сопряженных градиентов,
- методы, учитывающие направление антиградиента на нескольких шагах алгоритма;
- алгоритмы локальной оптимизации с вычислением частных производных первого и второго порядка:
- метод Ньютона,
- методы оптимизации с разреженными матрицами Гессе,
- квазиньютоновские методы,
- метод Гаусса-Ньютона,
- метод Левенберга-Марквардта и др.;
- стохастические алгоритмы оптимизации:
- поиск в случайном направлении,
- имитация отжига,
- метод Монте-Карло (численный метод статистических испытаний);
- алгоритмы глобальной оптимизации (задачи глобальной оптимизации решаются с помощью перебора значений переменных, от которых зависит целевая функция).
Глава 6. Применение нечеткой логики на практике
Задача на определение расхода воды на полив
В задаче требуется определить расход воды при поливе с/х угодий. Входные сигналы: а) количество с/ч культур (много культур, мало культур), б) температура воздуха летом (засушливое лето, нормальное лето, холодное лето). Выходной сигнал: расход воды на полив (большой расход, средний расход, маленький расход). Правила: 1. Если с/х культур много, лето засушливое, то расход воды большой. 2. Если с/х культур много, лето нормальное, то расход воды средний. 3. Если с/х культур мало, лето холодное, то расход воды маленький.
Диапазон изменения параметров и их обозначения приведены в таблице 6.1
Таблица 6.1
|
название параметра |
диапазон |
обозначение |
обозначение значений |
|
количество с/х культур |
от 10 до 100 га |
number |
little, many |
|
температура воздуха летом |
от 10 до 40 0С |
temp |
low, norm, high |
|
расход воды на полив |
от 0 до 1000 м3 |
water |
little, norm, many |
Одна из целей пакета Fuzzy Logic Toolbox состоит в облегчении понимания и создания фаззи-систем управления. Фаззи-систему можно создавать, используя командную строку главного окна MATLAB. Однако намного проще сделать это графически с помощью инструментов графического интерфейса пользователя (GUI или ГИП), имеющихся в Fuzzy Logic Toolbox. Имеются пять инструментов GUI для создания, редактирования и наблюдения фаззи-систем в среде Fuzzy Logic Toolbox (приложение А). Это Fuzzy Inference System Editor или FIS Editor – Редактор фаззи-инференционной системы, Membership Function Editor - Редактор функций принадлежности, Rule Editor - Редактор правил, Rule Viewer - Просмотр правил и Surface Viewer - Просмотр поверхности (пространства управления). Эти инструменты GUI динамически связаны между собой: используя один из них в FIS и производя изменения, можно затем увидеть их действия в других инструментах GUI. В дополнение к этим пяти инструментам Fuzzy Logic Toolbox включает в себя графический редактор GUI ANFIS, который используется для создания и анализа Sugeno-типа адаптивных нейросистем с нечеткой логикой – adaptive neuro-FIS (ANFIS).
FIS редактор решает проблемы верхнего уровня системы: сколько входных и выходных переменных и каковы их имена?
Fuzzy Logic Toolbox не имеет ограничений по числу входов фаззи-системы – все зависит от доступной памяти компьютера.
Membership Function Editor используется для того, чтобы определить виды всех функций принадлежности, связанных с каждой переменной.
Rule Editor используется для редактирования списка правил, который определяет функционирование фаззи-системы.
Rule Viewer и Surface Viewer используются только для просмотра результатов, но не редактирования фаззи-системы. Rule Viewer показывает диаграмму функционирования. Используя его в качестве диагностического средства, можно увидеть, например, какие правила активны, или как индивидуальные функции принадлежности влияют на результаты. Surface Viewer используется для показа зависимости выхода от одного или двух из входов системы, то есть показывается диаграмма поверхности пространства управления системы. Все пять инструментов GUI могут взаимодействовать и обмениваться информацией между собой. Любой из них может считывать и сохранять данные в рабочем пространстве MATLAB и на жестком диске компьютера[6].
Построение системы начнем с определения количества входов и выходов в редакторе свойств фаззи-системы – FIS Editor. Для его вызова необходимо в рабочем окне MATLAB ввести команду fuzzy[5].
Окно редактора FIS Editor показано на рисунке 6.1. На этой диаграмме указываются названия всех входов (input) и выходов (output). Для данной системы это – количество с/х культур (number), температура воздуха летом (temp), расход воды на полив (water). Ниже диаграммы - название системы ( field) и типа используемого вывода (mamdani). Еще ниже указаны методы фаззи-процедур:
- операции “И” (AND) – произведения (product –prod);
- операции “ИЛИ”(OR) – вероятностного ИЛИ (probabilistic or – probor);
- импликации (prod);
- аггрегации (max);
- дефаззификации (centroid)[7].
Fuzzy Logic Toolbox поддерживает два встроенных метода AND – min (minimum) и prod (product); два встроенных метода OR – max (maximum) и probor – probabilistic or, определяемого формулой алгебраического суммирования вероятностей probor(a,b) = a + b – ab).
Для объединения или агрегации всех правил Fuzzy Logic Toolbox использует три встроенных метода: max (maximum), probor (probabilistic or) и sum (просто сумма всех выходов установленных правил).
Для дефаззификации Fuzzy Logic Toolbox использует пять встроенных методов: centroid (координата – абсцисса – центра тяжести фигуры под кривой), bisector (координата – абсцисса – делящая площадь фигуры под кривой пополам), mom (mean of the maximum – середина интервала максимальных значений ), lom (largest of maximum – верхняя граница интервала максимальных значений) и som (smallest of maximum – нижняя граница интервала максимальных значений). Наиболее часто используемым методом дефаззификации является метод centroid, который определяет абсциссу центра тяжести плоской фигуры под кривой.
При необходимости можно применять и другие методы, заданные самим пользователем.
Рисунок 6.1 - Окно редактора свойств фаззи-системы регулирования расхода воды
Для задания функций принадлежности переменных FIS используется редактор Membership Function Editor, который вызывается пунктом Edit membership functions меню View или двойным щелчком по одному из входов или выходов диаграммы FIS. В этом редакторе щелчком мыши по блоку в левой части выбирается переменная и ее функции принадлежности (рисунки 6.2-6.4) появляются на графике в правой верхней части окна редактора. При этом в левой нижней части отражаются имя (Name) namber тип (Type) Input, границы изменения (Range) [10 100] и отображения (Display Range) [10 100] активизированной переменной. Функций принадлежности возьмем gaussmf.
Рисунок 6.2 - Окно редактора Membership Function Editor для входа number
Рисунок 6.3 - Окно редактора Membership Function Editor для входа temp
Рисунок 6.4 - Окно редактора Membership Function Editor для выхода water
После определения всех переменных и задания типа и вида функций принадлежности перейдем к созданию правил в редакторе Rule Editor (рисунок 6.5). Для этого в меню View нужно выбрать пункт Edit Rules[7].
Редактор Rule Editor использует графический интерфейс, основанный на описаниях переменных входов и выхода. Rule Editor позволяет строить правила без особых усилий, просто и быстро, выбирая по одному
Рисунок 6.5 - Редактор Rule Editor
По окончанию создания правил фаззи-управления просмотрим зависимость выходной величины от значений входных параметров системы. Для этого в меню View выбрем пункт View rules. В просмотрщике Rule Viewer (рисунки 6.6-6.8) под каждой входной и выходной переменной показаны в виде графиков её параметры и результат вычислений. Удобство Rule Viewer заключается в том, что как при грубом, так и при точном изменении параметров входов можно сразу увидеть изменение выходной величины.
Рисунок 6.6 - Просмотрщик Rule Viewer для входных параметров
55га и 250С
Рисунок 6.7 - Просмотрщик Rule Viewer для входных параметров
78,9га и 14,90С
Рисунок 6.8 - Просмотрщик Rule Viewer для входных параметров
10га и 35,80С
Выбрав пункт View Surface в меню View, можно посмотреть трехмерную зависимость выхода от входа – пространство управления фаззи-системы (рисунок 6.9).
Рисунок 6.9 - Просмотрщик Surface Viewer
На этой диаграмме можно увидеть зависимость выхода и от четырёх входов или зависимость различного выхода от разных входов.
На графике, изменив числа в строках X grid и Y grid, можно менять количество по-перечных и продольных линий. В пункте Plot меню Options можно изменить сам график для лучшего его восприятия. В этом же меню Options в пункте Color Map можно так же поменять цвета поверхности управления[8].
Заключение
В первой части курсовой работы были изложены основные теоретические аспекты нечетко логики и нейронных сетей: история развития нейронных сетей, аналогия нейронных сетей с мозгом и биологическим нейроном, понятие искусственного нейрона, виды искусственных нейронных сетей, обучение нейронных сетей.