Добавлен: 14.06.2023
Просмотров: 369
Скачиваний: 4
Обучение методом конкуренции (соревнования). В отличие от правила Хебба, где множество выходных нейронов может возбуждаться одновременно, в данном случае выходные нейроны конкурируют между собой за активизацию. В процессе соревновательного обучения осуществляется модификация весов связей выигравшего нейрона и нейронов, расположенных в его окрестности («победитель забирает все»).
Метод обратного распространения ошибки. Является обобщением процедуры обучения простого персептрона с использованием дельта-правила на многослойные сети. В данном методе необходимо располагать обучающей выборкой, содержащей «правильные ответы», т.е. выборка должна включать множество пар образцов входных и выходных данных, между которыми нужно установить соответствие. Перед началом обучения межнейронным связям присваиваются небольшие случайные значения. Сначала входные элементы сети устанавливаются в заданное состояние. Входные сигналы распространяются по сети, порождая некоторый выходной вектор. Для работы алгоритма требуется, чтобы характеристика вход-выход элементов сети была неубывающей и имела ограниченную производную. Обычно для этого используют сигмоидальные функции. Полученный выходной вектор сравнивается с требуемым (правильным). Если они совпадают, то весовые коэффициенты связей не изменяются. В противном случае вычисляется разница между фактическими и требуемыми выходными значениями, которая передается последовательно от выходного слоя к входному. На основе этой информации проводится модификация связей в соответствии с обобщенным дельта-правилом.
В настоящее время предложены алгоритмы обучения, более привлекательные в смысле биологической аналогии. Примером является алгоритм рециркуляции для сетей, в которых скрытые блоки соединены с входными. При обучении веса связей перестраиваются таким образом, чтобы минимизировать частоту смены активности каждого блока. Таким образом, обученная сеть имеет стабильные состояния и может функционировать в режиме ассоциативной памяти[27].
6. Применение нечеткой логики на практике
Сейчас основным способом моделирования нейронных сетей является компьютерное моделирование. Создано уже множество программных пакетов, занимающихся подбором типа сети и оптимального алгоритма для ее обучения.
Решение подобных задач стало возможным с быстрым развитием компьютерных технологий в конце 20 века, поскольку требуются достаточно серьезные мощности для одновременного выполнения большого количества операций.
Наиболее популярный комплекс для решения задач нечеткой логики является Fuzzy Logic Toolbox[28] из пакета MATLAB. C помощью этой программы[29] в данной курсовой работе реализуется задача на определение затрат на свадьбу.
В задаче требуется определить, сколько денег будет потрачено на свадьбу.
Входные сигналы:
- количество гостей (малое, среднее, большое)
- наличие приглашенных артистов (мало артистов, много артистов)
- количество блюд на праздничном столе (мало блюд, среднее количество блюд, много блюд)
Выходной сигнал: затраты на свадьбу (бедная свадьба, средняя, богатая).
Правила вывода:
- Если количество гостей маленькое, мало приглашенных артистов, мало блюд на столе, то свадьба бедная.
- Если среднее количество гостей, мало артистов, среднее количество блюд, то свадьба средняя.
- Если много приглашенных гостей, много приглашенных артистов, много блюд на столе, то свадьба богатая.
Определим диапазоны значений:
Входные:
- кол-во гостей: 0 – 80 чел. (малое – от 0 до 30, среднее – от 20 до 60, большое – от 50 до 80);
- наличие артистов: 0 – 7 чел. (мало артистов – от 1 до 3, много артистов – от 4 до 7)
- кол-во блюд: 0 – 30 шт. (мало – от 0 до 10, средне – от 10 до 20 , много – от 20 до 30);
Выходные:
- затраты: 0 – 600 т.р. (бедная – от 0 до 200, средняя – от 200 до 400, богатая – от 400 до 600);
Решение данной задачи производится с помощью комплекса Fuzzy Logic Toolbox, входящего в состав программы MATLAB и предназначенного для проектирования и исследования систем на нечеткой логике.
6.1. Решение задачи
- Открываем редактор fuzzy-системы. Будем использовать предлагаемый по умолчанию алгоритм логического вывода Мамдани («mamdani»):
- В нашей системе три входных сигнала (количество гостей, наличие артистов и количество блюд). Добавим входы в нашем редакторе: Edit → Add variable… → Input. При этом в редакторе появляются два новых блока с именем input2 и input3. По щелчку на каждом из блоков изменим их имена в графе Name на «Гостей», «Артистов», «Блюд». Выходной блок назовем «Затраты». Присвоим имя всей сети «WeddExpert» через меню File → Export → To Workspace.
Выходную переменную с именем output1 переименуем на «Затраты».
Результат переименования на рисунке:
- Зададим и отредактируем функции принадлежности для входов и выходов. Двойным нажатием левой кнопкой мыши по соответствующему входу открываем окно редактирования функций и выбираем первый вход «Гостей». В поле Range, Display Range установим диапазон изменения количества гостей [0 80]. Зададим три типа принадлежности. Через пункт меню Edit → Add MFs.. перейдем к диалоговому окну, в котором зададим функции принадлежности трапецеидальной формы «tramf» с общим числом 3 и изменим их имена на «малое_кол-во», «среднее_кол-во» и «большое_кол-во».
Для функции «малое_кол-во» зададим параметры – Params [0 0 20 30].
Для функции «среднее_кол-во» – Params [20 30 50 60].
Для функции «большое_кол-во» – Params [50 60 80 80].
- Далее для входа «Артистов» создадим 2 функции принадлежности трапецеидальной формы «tramf». В поле Range, Display Range установим диапазон изменения количества артистов [0 8]. Функции назовем «мало» и «много». Для функции «мало» установим значения параметров – Params [0 0 2 3] и для функции «много» – Params [5 6 8 8].
- Далее для входа «Блюд» создадим 2 функции принадлежности трапецеидальной формы «tramf» и одну треугольной «trimf». Установим диапазон изменения количества блюд – [0 30]. Одну трапецеидальную функцию назовем «мало» и зададим такие параметры – Params [0 0 5 10]. Вторую трапецеидальную функцию назовем «много» и зададим следующие параметры – Params [20 25 30 30]. Функцию треугольной формы назовем «среднее» и зададим следующие параметры – Params [10 15 20].
- И теперь отредактируем выходную переменную «Затраты».
Для неё создадим 2 функции принадлежности трапецеидальной формы «tramf» и одну треугольной «trimf». Установим в поле Range, Display Range диапазон затрат – [0 600]. Одну трапецеидальную функцию назовем «бедная» и зададим параметры – Params [0 0 100 200]. Вторую трапецеидальную функцию назовем «богатая» и зададим такие параметры – Params [400 500 600 600]. Функцию треугольной формы назовем «средняя» и зададим следующие параметры – Params [200 300 400].
- Зададим правила вывода. Для этого, выбираем соответствующий пункт меню Edit → Rules. При создании правил можно указать «вес», т.е. значимость для каждого из них. В нашей задаче вес всех правил будет одинаковым.
На этом создание экспертной системы завершено.
6.2. Проверка работы системы
Откроем через пункт меню View/ Rules окно просмотра правил и установим значения переменных: количество гостей = 20 (т.е. мало), наличие артистов = 2 (т.е. мало), количество блюд = 9 (т.е. мало). Увидим ответ: Затраты = 93.7 (т.е. свадьба бедная).
Проверим другие варианты.
Количество гостей = 37 (т.е. среднее), наличие артистов = 3 (т.е. мало), количество блюд = 17 (т.е. среднее). Ответ: Затраты = 300 (т.е. свадьба средняя).
Количество гостей = 62 (т.е. большое), наличие артистов = 7 (т.е. много), количество блюд = 25 (т.е. много). Ответ: Затраты = 524 (т.е. свадьба богатая).
Подтверждением отмеченной зависимости выходной переменной от входных может служить вид поверхности отклика, который представляется при выборе пункта меню View / Surface.
ЗАКЛЮЧЕНИЕ
Стремление человека к искусственному воссозданию такой сложной природной сущности, как мышление и способ восприятия информации, привело к созданию отдельного научного направления, настолько глубокого, что оно включает и объединяет под своим началом сразу несколько дисциплин - философия, математика и теория вычислений, экономика, неврология, вычислительная техника, теория управления, лингвистика и прочих. Это направление изучает искусственный интеллект. Частью этой области знаний является изучение нейронных сетей и нечеткой логики, поскольку с их помощью воссоздается математическая и логическая модель работы человеческого мозга.
Изучение нейронных сетей и создание искусственных нейронных сетей ведется не так давно, в сравнении с другими науками. Первое упоминание нейронов датируется 1943 годом, тогда нейрофизиологи впервые описали работу человеческих нейронов и положили основу для зарождения учения об искусственных нейронах. Развитие ИНС шло не быстро и скачкообразно по ряду причин. И только во времена активного технического прогресса, быстрого развития компьютерных технологий, нейронные сети стали активно развиваться и заинтересовывать все большее количество людей и компаний.
Проводя аналогию биологического нейрона с искусственным, можно увидеть их тесную взаимосвязь и взаимозависимость. Для воссоздания искусственного интеллекта за основу взята работа человеческого мозга - нейрон, с его дендритами, аксонами и синапсами. Полученная модель искусственного нейрона - работающая система с сумматорами, умножителями и нелинейными преобразователями. Без изучения работы мозга не случилось бы появления теории нейронных сетей, повторяющих импульсы живых клеток на машинном уровне.
Как естественные нейроны непрерывно и многопоточно принимают импульсы и передают их дальше, так и искусственные нейроны представляют собой непрерывный дискретный преобразователь информации, определяющийся уже не биологической способностью передачи, количеством и качеством связей, а описанный в математических формулах и коэффициентах.
Способы взаимодействия искусственных нейронов определили несколько типов классификаций нейронных сетей. Среди них по направленности импульсов выделяют однослойные и многослойные сети прямого распространения и рекуррентные сети.
Одной из самых важных функций человеческого интеллекта является постоянное обучение в течение всей жизни. Нейронные связи постоянно как появляются, так и распадаются. Если в мозге появление и исчезновение связей определяется количеством одновременно появляющихся импульсов и интенсивности их распространения по нервной системе, то в случае искусственных нейронных сетей требуется найти оптимальные значения переменных параметров сети - весов и порогов - этими вычислениями и занимаются компьютеры по заранее определенным формулам. Такой процесс просчитывания весов сигналов в нейронной сети называется обучением нейронной сети.
Не существует идеального и универсального алгоритма обучения для всех типов архитектур нейронных сетей. В зависимости от доступности информации в каждом конкретном случае можно выделить три основных способа обучения искусственных НС: обучение с учителем, обучение без учителя и смешанное. Суть обучения НС заключается в определении оптимальных синаптических весов связей между нейронами. Правильное и эффективное обучение нейронных сетей - это необходимая основа для создания в будущем идеального самообучающегося нейрокомпьютера.
Практическое применение теории нейронных сетей и нечеткой логики в том числе заключается в умении компьютерной системой принимать верное решение в зависимости от различных поступающих исходных данных. Нейронные сети удобны для задач распознавания образов, а системы нечеткой логики хороши при объяснении полученных ими выводов. В различных случаях могут применяться наиболее приемлемые для них, при имеющихся входных данных, программные решения.
В данной курсовой работе были изучены технологии, принципы, средства построения искусственных нейронных сетей, изучена подборка научной литературы и публикаций по ИНС, рассмотрены основы, структура, состав, классификация ИНС и возможности применения ИНС в жизни человека.