Файл: Нейронные сети и нечеткая логика.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 14.06.2023

Просмотров: 368

Скачиваний: 4

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Обучение методом конкуренции (соревнования). В отличие от правила Хебба, где множество выходных нейронов может возбуждаться одновре­менно, в данном случае выходные нейроны конкурируют между собой за активизацию. В процессе соревновательного обучения осуществляется модификация весов связей выигравшего нейрона и нейронов, расположенных в его окрестности («победитель забирает все»).

Метод обратного распространения ошибки. Является обобщением процедуры обучения простого персептрона с использованием дельта-правила на многослойные сети. В данном методе необходимо располагать обучающей выборкой, содержащей «правильные ответы», т.е. выборка должна включать множество пар образцов входных и выходных данных, между которыми нужно установить соответствие. Перед началом обучения меж­нейронным связям присваиваются небольшие случайные значения. Сначала входные элементы сети устанавливаются в заданное состояние. Входные сигналы распространяются по сети, порождая некоторый выходной вектор. Для работы алгоритма требуется, чтобы характеристика вход-выход элементов сети была неубывающей и имела ограниченную производную. Обычно для этого используют сигмоидальные функции. Полученный выходной вектор сравнивается с требуемым (правильным). Если они совпадают, то весовые коэффициенты связей не изменяются. В противном случае вычисляется разница между фактическими и требуемыми выходными значениями, которая передается последовательно от выходного слоя к входному. На основе этой информации проводится модификация связей в соответствии с обобщенным дельта-правилом.

В настоящее время предложены алгоритмы обучения, более привлекательные в смысле биологической аналогии. Примером является алгоритм рециркуляции для сетей, в которых скрытые блоки соединены с входными. При обучении веса связей перестраиваются таким образом, чтобы минимизировать частоту смены активности каждого блока. Таким образом, обученная сеть имеет стабильные состояния и может функционировать в режиме ассо­циативной памяти[27].

6. Применение нечеткой логики на практике

Сейчас основным способом моделирования нейронных сетей является компьютерное моделирование. Создано уже множество программных пакетов, занимающихся подбором типа сети и оптимального алгоритма для ее обучения.


Решение подобных задач стало возможным с быстрым развитием компьютерных технологий в конце 20 века, поскольку требуются достаточно серьезные мощности для одновременного выполнения большого количества операций.

Наиболее популярный комплекс для решения задач нечеткой логики является Fuzzy Logic Toolbox[28] из пакета MATLAB. C помощью этой программы[29] в данной курсовой работе реализуется задача на определение затрат на свадьбу.

В задаче требуется определить, сколько денег будет потрачено на свадьбу.

Входные сигналы:

  1. количество гостей (малое, среднее, большое)
  2. наличие приглашенных артистов (мало артистов, много артистов)
  3. количество блюд на праздничном столе (мало блюд, среднее количество блюд, много блюд)

Выходной сигнал: затраты на свадьбу (бедная свадьба, средняя, богатая).

Правила вывода:

  1. Если количество гостей маленькое, мало приглашенных артистов, мало блюд на столе, то свадьба бедная.
  2. Если среднее количество гостей, мало артистов, среднее количество блюд, то свадьба средняя.
  3. Если много приглашенных гостей, много приглашенных артистов, много блюд на столе, то свадьба богатая.

Определим диапазоны значений:

Входные:

  • кол-во гостей: 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. Решение задачи

  1. Открываем редактор fuzzy-системы. Будем использовать предлагаемый по умолчанию алгоритм логического вывода Мамдани («mamdani»):
  1. В нашей системе три входных сигнала (количество гостей, наличие артистов и количество блюд). Добавим входы в нашем редакторе: Edit → Add variable… → Input. При этом в редакторе появляются два новых блока с именем input2 и input3. По щелчку на каждом из блоков изменим их имена в графе Name на «Гостей», «Артистов», «Блюд». Выходной блок назовем «Затраты». Присвоим имя всей сети «WeddExpert» через меню File → Export → To Workspace.

Выходную переменную с именем output1 переименуем на «Затраты».


Результат переименования на рисунке:

  1. Зададим и отредактируем функции принадлежности для входов и выходов. Двойным нажатием левой кнопкой мыши по соответствующему входу открываем окно редактирования функций и выбираем первый вход «Гостей». В поле 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].

  1. Далее для входа «Артистов» создадим 2 функции принадлежности трапецеидальной формы «tramf». В поле Range, Display Range установим диапазон изменения количества артистов [0 8]. Функции назовем «мало» и «много». Для функции «мало» установим значения параметров – Params [0 0 2 3] и для функции «много» – Params [5 6 8 8].
  1. Далее для входа «Блюд» создадим 2 функции принадлежности трапецеидальной формы «tramf» и одну треугольной «trimf». Установим диапазон изменения количества блюд – [0 30]. Одну трапецеидальную функцию назовем «мало» и зададим такие параметры – Params [0 0 5 10]. Вторую трапецеидальную функцию назовем «много» и зададим следующие параметры – Params [20 25 30 30]. Функцию треугольной формы назовем «среднее» и зададим следующие параметры – Params [10 15 20].
  1. И теперь отредактируем выходную переменную «Затраты».

Для неё создадим 2 функции принадлежности трапецеидальной формы «tramf» и одну треугольной «trimf». Установим в поле Range, Display Range диапазон затрат – [0 600]. Одну трапецеидальную функцию назовем «бедная» и зададим параметры – Params [0 0 100 200]. Вторую трапецеидальную функцию назовем «богатая» и зададим такие параметры – Params [400 500 600 600]. Функцию треугольной формы назовем «средняя» и зададим следующие параметры – Params [200 300 400].

  1. Зададим правила вывода. Для этого, выбираем соответствующий пункт меню Edit → Rules. При создании правил можно указать «вес», т.е. значимость для каждого из них. В нашей задаче вес всех правил будет одинаковым.

На этом создание экспертной системы завершено.

6.2. Проверка работы системы

Откроем через пункт меню View/ Rules окно просмотра правил и установим значения переменных: количество гостей = 20 (т.е. мало), наличие артистов = 2 (т.е. мало), количество блюд = 9 (т.е. мало). Увидим ответ: Затраты = 93.7 (т.е. свадьба бедная).

Проверим другие варианты.

Количество гостей = 37 (т.е. среднее), наличие артистов = 3 (т.е. мало), количество блюд = 17 (т.е. среднее). Ответ: Затраты = 300 (т.е. свадьба средняя).

Количество гостей = 62 (т.е. большое), наличие артистов = 7 (т.е. много), количество блюд = 25 (т.е. много). Ответ: Затраты = 524 (т.е. свадьба богатая).

Подтверждением отмеченной зависимости выходной переменной от входных может служить вид поверхности отклика, который представляется при выборе пункта меню View / Surface.

ЗАКЛЮЧЕНИЕ

Стремление человека к искусственному воссозданию такой сложной природной сущности, как мышление и способ восприятия информации, привело к созданию отдельного научного направления, настолько глубокого, что оно включает и объединяет под своим началом сразу несколько дисциплин - философия, математика и теория вычислений, экономика, неврология, вычислительная техника, теория управления, лингвистика и прочих. Это направление изучает искусственный интеллект. Частью этой области знаний является изучение нейронных сетей и нечеткой логики, поскольку с их помощью воссоздается математическая и логическая модель работы человеческого мозга.

Изучение нейронных сетей и создание искусственных нейронных сетей ведется не так давно, в сравнении с другими науками. Первое упоминание нейронов датируется 1943 годом, тогда нейрофизиологи впервые описали работу человеческих нейронов и положили основу для зарождения учения об искусственных нейронах. Развитие ИНС шло не быстро и скачкообразно по ряду причин. И только во времена активного технического прогресса, быстрого развития компьютерных технологий, нейронные сети стали активно развиваться и заинтересовывать все большее количество людей и компаний.

Проводя аналогию биологического нейрона с искусственным, можно увидеть их тесную взаимосвязь и взаимозависимость. Для воссоздания искусственного интеллекта за основу взята работа человеческого мозга - нейрон, с его дендритами, аксонами и синапсами. Полученная модель искусственного нейрона - работающая система с сумматорами, умножителями и нелинейными преобразователями. Без изучения работы мозга не случилось бы появления теории нейронных сетей, повторяющих импульсы живых клеток на машинном уровне.


Как естественные нейроны непрерывно и многопоточно принимают импульсы и передают их дальше, так и искусственные нейроны представляют собой непрерывный дискретный преобразователь информации, определяющийся уже не биологической способностью передачи, количеством и качеством связей, а описанный в математических формулах и коэффициентах.

Способы взаимодействия искусственных нейронов определили несколько типов классификаций нейронных сетей. Среди них по направленности импульсов выделяют однослойные и многослойные сети прямого распространения и рекуррентные сети.

Одной из самых важных функций человеческого интеллекта является постоянное обучение в течение всей жизни. Нейронные связи постоянно как появляются, так и распадаются. Если в мозге появление и исчезновение связей определяется количеством одновременно появляющихся импульсов и интенсивности их распространения по нервной системе, то в случае искусственных нейронных сетей требуется найти оптимальные значения переменных параметров сети - весов и порогов - этими вычислениями и занимаются компьютеры по заранее определенным формулам. Такой процесс просчитывания весов сигналов в нейронной сети называется обучением нейронной сети.

Не существует идеального и универсального алгоритма обучения для всех типов архитектур нейронных сетей. В зависимости от доступности информации в каждом конкретном случае можно выделить три основных способа обучения искусственных НС: обучение с учителем, обучение без учителя и смешанное. Суть обучения НС заключается в определении оптимальных синаптических весов связей между нейронами. Правильное и эффективное обучение нейронных сетей - это необходимая основа для создания в будущем идеального самообучающегося нейрокомпьютера.

Практическое применение теории нейронных сетей и нечеткой логики в том числе заключается в умении компьютерной системой принимать верное решение в зависимости от различных поступающих исходных данных. Нейронные сети удобны для задач распознавания образов, а системы нечеткой логики хороши при объяснении полученных ими выводов. В различных случаях могут применяться наиболее приемлемые для них, при имеющихся входных данных, программные решения.

В данной курсовой работе были изучены технологии, принципы, средства построения искусственных нейронных сетей, изучена подборка научной литературы и публикаций по ИНС, рассмотрены основы, структура, состав, классификация ИНС и возможности применения ИНС в жизни человека.