Добавлен: 25.05.2023
Просмотров: 225
Скачиваний: 3
Сам алгоритм выглядит следующим образом:
- На стадии инициализации всем весовым коэффициентам присваиваются небольшие случайные значения.
- На вход сети подается входной сигнал и вычисляется выход.
- На основании полученных выходных значений нейронов производится изменение весовых коэффициентов.
- Повтор с шага 2 с новым образом из входного множества до тех пор, пока выходные значения сети не стабилизируются с заданной точностью.
Правило коррекции по ошибке.
В 1957 г. Розенблатт разработал модель, которая вызвала большой интерес у исследователей. Модель использует алгоритм обучения с учителем, то есть обучающее множество состоит из множества входных векторов, для каждого из которых указан выходной вектор. Несмотря на некоторые ограничения, она стала основой для многих современных наиболее сложных алгоритмов обучения с учителем.
Суть алгоритма состоит в следующем: для каждого входного примера задается желаемый выход. Если реальный выход сети не совпадает с желаемым, то параметры сети будут скорректированы. Для вычисления величины коррекции используется разница между реальным и желаемым выходом сети, причем коррекция весов будет происходить только в случае ошибочного ответа.
Обучение методом соревнования.
В отличие от обучения Хэбба, в котором множество выходных нейронов могут возбуждаться одновременно, при соревновательном обучении выходные нейроны соревнуются между собой за активизацию. То есть из всего множества выходных нейронов используется только один нейрон с самым большим выходом. Такой алгоритм напоминает процесс обучения биологических нейронных сетей. Обучение методом соревнования позволяет классифицировать входные данные: похожие примеры группируются сетью в один класс и представляются одним образцовым элементом. При этом каждый нейрон из множества выходных нейронов «отвечает» только за один класс. Очевидно, что общее число классов, с которыми способна работать сеть равно количеству выходных нейронов [9, с. 411][16].
II. Практическая часть
Глава 6. Применение нечеткой логики на практике
Согласно заданию, на курсовое проектирование, необходимо решить следующую задачу:
Задача 9. Определение затрат на свадьбу.
В задаче требуется определить сколько денег будет потрачено на свадьбу.
Входные сигналы:
а) количество гостей (маленькое, среднее, большое);
б) наличие приглашенных артистов (много артистов, мало артистов);
в) количество блюд на праздничном столе (много блюд, среднее количество блюд, мало блюд).
Выходной сигнал: затраты на свадьбу (богатая свадьба, средняя, бедная).
Правила: 1. Если количество гостей маленькое, мало приглашенных артистов, мало блюд на столе, то свадьба бедная. 2. Если среднее количество гостей, мало артистов, среднее количество блюд, то свадьба средняя. 3. Если много приглашенных гостей, много приглашенных артистов, много блюд на столе, то свадьба богатая.
Для выполнения поставленной задачи будем использовать комплекс Fuzzy Logic Toolbox, входящий в состав программного комплекса Matlab.
Пакет Fuzzy Logic Toolbox (пакет нечеткой логики) это совокупность прикладных программ, относящихся к теории размытых или нечетких множеств и позволяющих конструировать так называемые нечеткие экспертные или управляющие системы.
Основные возможности пакета:
- построение систем нечеткого вывода (экспертных систем, регуляторов, аппроксиматоров зависимостей);
- построение адаптивных нечетки систем (гибридных нейронных сетей);
- интерактивное динамическое моделирование.
Для решения этой задачи сформулируем задачу нечеткого вывода с нуля.
Алгоритм решения:
- создадим входы и выходы;
- определим функции принадлежности для нечетких переменных;
- определим правила работы системы.
Решение данной задачи будем производить с помощью программного комплекса Matlab. В составе этого комплекса есть фаззи-система управления нечеткой логикой, называемая в терминах программной среды Fuzzy Inference System.
Решение задачи.
1. Открытие редактора. Создание входов и выхода сети.
Для выполнения данного этапа запустим программный пакет Matlab и для вызова фаззи-системы Fuzzy Inference System наберем в строке функций команду fuzzy и нажмем клавишу Enter (рис. 8) [4, с. 67][17].
Рис. 8. Вызов фаззи-системы Fuzzy Inference System
Открывшийся редактор позволит создать входы, выходы, функции принадлежности, создавать, редактировать и смотреть работу правил.
В нашей системе будет три входа:
- количество гостей – переменная «гости».
- наличие приглашенных артистов – переменная «артисты».
- количество блюд на праздничном столе – переменная «еда».
Добавим входы в редакторе. Для этого выберем в меню редактора команду: Edit -> Add Variable… -> Input (рис. 9).
Рис. 9. Ввод входов в систему
Выходной блок назовем «свадьба» (рис. 10).
Далее переименуем разрабатываемую сеть в «WeddingExpert». Для этого выберем пункт меню: File -> Export -> To Workspace… (рис. 11).
Рис. 10. Переименование выхода
Рис. 11. Создание имени сети
Зададим функции принадлежности для входа «гости».
Поскольку у нас количество гостей может быть маленькое, среднее, большое, поэтому зададим диапазон изменения [0 10] (рис. 12).
Рис. 12. Функции принадлежности для входа «гости»
Зададим функции принадлежности для входа «артисты».
Артистов у нас может быть мало или много (рис. 13).
Рис. 13. Функции принадлежности для входа «артисты»
Зададим функции принадлежности для входа «еда».
Еды у нас может быть мало, средне, много (рис. 14).
Рис. 14. Функции принадлежности для входа «еда»
Далее отредактируем выходной параметр «свадьба». Свадьба может быть богатая, средняя, бедная (рис. 15).
Рис. 15. Функции принадлежности для выхода «свадьба»
Далее создадим правила.
Для этого перейдем в пункт меню Edit -> Rules…
Откроется окно редактора правил (рис. 16).
Рис. 16. Окно редактора правил
Наши правила:
1. Если количество гостей маленькое, мало приглашенных артистов, мало блюд на столе, то свадьба бедная.
2. Если среднее количество гостей, мало артистов, среднее количество блюд, то свадьба средняя.
3. Если много приглашенных гостей, много приглашенных артистов, много блюд на столе, то свадьба богатая.
Внесем правила в редактор правил (рис. 17).
Рис. 17. Внесенные правила
После создания системы проверим ее работоспособность.
Для этого выберем пункт меню View -> View Ruses… и введем следующие параметры:
Гости = 3; (маленькое)
Артисты = 6 (среднее);
Еда = 8 (много).
Полученный результат = 15 (свадьба средняя) (рис. 18).
Рис. 18. Тестирование системы
Таким образом, созданная нами экспертная система определения уровня затрат на свадьбу работает правильно.
Заключение
В ходе выполнения курсовой работы выполнены следующие задачи:
- Рассмотрена история развития нейронных сетей.
- Изучена аналогия нейронных сетей с мозгом и биологическим нейроном.
- Введено понятие искусственного нейрона и рассмотрена его структура.
- Рассмотрены виды искусственных нейронных сетей и их модели.
- Изучено обучение нейронных сетей.
- Выполнено практическое задание по созданию экспертной системы определения затрат на свадьбу при помощи программного пакета Matlab.
Созданная экспертная система протестирована и показала хорошие результаты.
Библиография
- Васильев, А. Н. Принципы и техника нейросетевого моделирования / А.Н. Васильев, Д.А. Тархов. - Москва: Высшая школа, 2014. - 218 c.
- Галушкин А. И. Нейронные сети. Основы теории / А. И. Галушкин. - М: Горячая линия - Телеком, 2010. - 496 с.
- Гелиг, А. Х. Введение в математическую теорию обучаемых распознающих систем и нейронных сетей. Учебное пособие: моногр. / А.Х. Гелиг, А.С. Матвеев. - М.: Издательство СПбГУ, 2014. - 224 c.
- Леоненков А. Нечеткое моделирование в среде MATLAB и fuzzyTECH. СПб: БХВ-Санкт-Петербург, 2003. - 719 с
- Мазуров Вл. Д. Математические методы распознавания образов: учеб. пособие / Вл. Д. Мазуров. - 2-е изд., доп. и перераб. - Екатеринбург: Изд-во Урал. ун-та, 2010. - 101 с.
- Мазуров Вл. Д. Нейронные сети в прикладной экономике: учеб. пособие / Вл. Д. Мазуров. - Екатеринбург: Изд-во Урал. ун-та, 2017. - 96 с.
- Олескин, А. В. Сетевые структуры в биосистемах и человеческом обществе / А.В. Олескин. - М.: Едиториал УРСС, Либроком, 2015. - 304 c.
- Рутковская Д. Нейронные сети, генетические алгоритмы и нечеткие системы / Д. Рутковская, М. Пилиньский, Л. Рутковский. - М: Горячая линия - Телеком, 2013. - 384 с.
- Тархов, Д.А. Нейросетевые модели и алгоритмы. Справочник / Д.А. Тархов. - М.: Радиотехника, 2014. - 643 c.
- Murphy K. P. Machine Learning: A Probabilistic Perspective / K. P. Murphy. - Massachusetts Institute of Technology, 2012. - 1067 p.
- Murray A. Applications of Neural Networks / A. Murray. - Springer, 2014. - 340 p.
Приложения
Приложение А. Исходный код экспертной системы
[System]
Name='WeddingExpert'
Type='mamdani'
Version=2.0
NumInputs=3
NumOutputs=1
NumRules=3
AndMethod='min'
OrMethod='max'
ImpMethod='min'
AggMethod='max'
DefuzzMethod='centroid'
[Input1]
Name='гости'
Range=[0 10]
NumMFs=3
MF1='маленькое':'gaussmf',[1.699 0]
MF2='среднее':'gaussmf',[1.699 5]
MF3='большое':'gaussmf',[1.699 10]
[Input2]
Name='артисты'
Range=[0 10]
NumMFs=2
MF1='мало':'trimf',[-4 0 4]
MF2='много':'trimf',[6 10 14]
[Input3]
Name='еда'
Range=[0 10]
NumMFs=3
MF1='мало':'gaussmf',[1.699 0]
MF2='средне':'gaussmf',[1.699 5]
MF3='много':'gaussmf',[1.699 10]
[Output1]
Name='свадьба'
Range=[0 30]
NumMFs=3
MF1='бедная':'trimf',[0.0222 5.1984126984127 10.2]
MF2='средняя':'trimf',[9.96 15 20.1984126984127]
MF3='богатая':'trimf',[20.1190476190476 24.7 30]
[Rules]
1 1 1, 1 (1) : 1
2 1 2, 2 (1) : 1
3 2 3, 3 (1) : 1
-
Мазуров Вл. Д. Нейронные сети в прикладной экономике: учеб. пособие / Вл. Д. Мазуров. - Екатеринбург: Изд-во Урал. ун-та, 2017. – С. 24 ↑
-
Галушкин А. И. Нейронные сети. Основы теории / А. И. Галушкин. - М: Горячая линия - Телеком, 2010. – С. 123 ↑
-
Мазуров Вл. Д. Математические методы распознавания образов: учеб. пособие / Вл. Д. Мазуров. - 2-е изд., доп. и перераб. - Екатеринбург: Изд-во Урал. ун-та, 2010. – С. 84 ↑
-
Галушкин А. И. Нейронные сети. Основы теории / А. И. Галушкин. - М: Горячая линия - Телеком, 2010. – С. 243 ↑
-
Олескин, А. В. Сетевые структуры в биосистемах и человеческом обществе / А.В. Олескин. - М.: Едиториал УРСС, Либроком, 2015. – С. 56 ↑
-
Васильев, А. Н. Принципы и техника нейросетевого моделирования / А.Н. Васильев, Д.А. Тархов. - Москва: Высшая школа, 2014. – С. 109 ↑
-
Murray A. Applications of Neural Networks / A. Murray. - Springer, 2014. – P. 213 ↑
-
Васильев, А. Н. Принципы и техника нейросетевого моделирования / А.Н. Васильев, Д.А. Тархов. - Москва: Высшая школа, 2014. – С. 20 ↑
-
Рутковская Д. Нейронные сети, генетические алгоритмы и нечеткие системы / Д. Рутковская, М. Пилиньский, Л. Рутковский. - М: Горячая линия - Телеком, 2013. – С. 97 ↑
-
Рутковская Д. Нейронные сети, генетические алгоритмы и нечеткие системы / Д. Рутковская, М. Пилиньский, Л. Рутковский. - М: Горячая линия - Телеком, 2013. – С. 99 ↑
-
Рутковская Д. Нейронные сети, генетические алгоритмы и нечеткие системы / Д. Рутковская, М. Пилиньский, Л. Рутковский. - М: Горячая линия - Телеком, 2013. – С. 97 ↑
-
Murphy K. P. Machine Learning: A Probabilistic Perspective / K. P. Murphy. - Massachusetts Institute of Technology, 2012. – P. 545 ↑
-
Гелиг, А. Х. Введение в математическую теорию обучаемых распознающих систем и нейронных сетей. Учебное пособие: моногр. / А.Х. Гелиг, А.С. Матвеев. - М.: Издательство СПбГУ, 2014. – С. 187 ↑
-
Мазуров Вл. Д. Нейронные сети в прикладной экономике: учеб. пособие / Вл. Д. Мазуров. - Екатеринбург: Изд-во Урал. ун-та, 2017. – С. 39 ↑
-
Мазуров Вл. Д. Математические методы распознавания образов: учеб. пособие / Вл. Д. Мазуров. - 2-е изд., доп. и перераб. - Екатеринбург: Изд-во Урал. ун-та, 2010. – С. 43 ↑
-
Тархов, Д.А. Нейросетевые модели и алгоритмы. Справочник / Д.А. Тархов. - М.: Радиотехника, 2014. – С.411 ↑
-
Леоненков А. Нечеткое моделирование в среде MATLAB и fuzzyTECH. СПб: БХВ-Санкт-Петербург, 2003 – С. 67 ↑