КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Пример 4.32
Обучить с помощью программы BrainMaker нейронную сеть, реализующую логическую систему XOR (рис. 4.2) с начальными значениями весов, рассчитанными в примере 4.27 генетическим алгоритмом программы Evolver и представленными на рис. 4.99. Это еще один пример гибридного подхода к обучению весов нейронной сети, реализующей логическую систему XOR. Он очень похож на предыдущий пример, однако отличается набором начальных значений весов, полученных за меньшее время выполнения генетического алгоритма и, следовательно, более далеких от оптимальных. Толерантность погрешности принята равной 0,025, что означает 2,5 % допустимой погрешности, т.е. разницы между фактическим выходным значением и заданным значением - эталоном. Поэтому для эталона, равного 0, корректным будет признаваться выходное значение от 0 до 0,025, а для эталона, равного 0 - значение от 0,975 до 1. Начальный набор весов для программы BrainMaker представлен на рис. 4.156, а на рис. 4.157-4.160 показаны результаты тестирования сети. Видно, что выходные значения у для конкретных пар входов весьма близки к приведенным на рис. 4.99. Сеть не может считаться обученной. На 22 тестирующих выборках только 5 раз реакция на выходе была корректной, а в 17 случаях - ошибочной. Набор весов с рис. 4.156 был получен после всего лишь 96 «тактов» функционирования программы Evolver (что соответствует менее чем 2 итерациям классического генетического алгоритма). Результаты обучения нейронной сети с этими весами программой BrainMaker с толерантностью погрешности, равной 0,025, представлены на рис. 4.161. Значение погрешности RMS с графика этого рисунка легко сравнить со значением погрешности Q на рис. 4.99, 4.100 и 4.101. Заметно, что выходные значения у для каждой пары входов системы XOR укладываются в границы 2,5 % толератности. Сеть обучилась достаточно быстро - за 104 прогона (runs). На рис. 4.165 представлены веса обученной сети, а на рис. 4.161 -4.164- результаты ее тестирования. Представляет интерес сопоставление рис. 4.165 и 4.143, поскольку они отражают обучение с одной и той же толерантностью, равной 0,025. Если продолжить обучение сети при меньшем значении толерантности, то (по аналогии с примером 4.31) можно найти значения весов, еще более близкие к оптимальным и практически совпадающие с показанными на рис. 4.155. Рассмотрим теперь эффект обучения нейронной сети, реализующей логическую систему XOR, с помощью только программы BrainMaker без применения генетического алгоритма. а 4. Генетические алгоритмы 4.73. Эволюционные алгоритмы для обучения нейронных сетей
Пример 4.33 Обучить с помощью программы BrainMaker нейронную сеть, реализующую логическую систему XOR (рис. 4.2) с начальными значениями весов, представленными на рис. 4.96. Показанные на рис. 4.96 значения весов сгенерированы случайным образом. На рис. 4.166 эти веса представлены в формате программы BrainMaker. Нейронная сеть с этими весами не может считаться обученной. Результаты ее тестирования приведены на рис. 4.167 - 4.170. Заметно, что выходные значения у совершенно не соответствуют эталону 1, а для эталона 0 выходные значения также не попадают в границы 10% толерантности. Для всех 22 тестирующих выборок получены ошибочные выходные сигналы. Вначале обучение сети проводилось с толерантностью погрешности, равной 0,1. Процесс обучения иллюстрируют графики на рис. 4.171. На рис. 4.172 показаны значения весов, полученные после 191 прогона (runs) алгоритма. Продолжение графика с рис. 4.171 демонстрируется на рис. 4.173, а его завершение - на рис. 4.174. Полученные значения весов нейронной сети с толерантностью погрешности, равной 0,1, представлены на рис. 4.175. Заметим, что значение погрешности RMS для этого случая (см. рис. 4.174) достаточно близко к значению погрешности Q, рассчитанному программой Evolver в примерах 4.23 - 4.27 для значений весов с рис. 4.175 (среднеквадратичная погрешность Q = 0,009887). Нейронная сеть с весами, показанными на рис. 4.166, была обучена с толерантностью погрешности 0,1 за 399 прогонов алгоритма программы BrainMaker. Результаты тестирования сформированной сети представлены на рис. 4.176-4.178. Для входов и, = 1 и и2=0 решение приведено на рис. 4.174. Сеть может считаться обученной, поскольку в ходе тестирования не зарегистрированы ошибочные отклики. Далее обучение сети продолжилось с толерантностью погрешности, равной 0,025. После 510 прогонов получены графики, изображенные на рис. 4.179, и значения весов, приведенные на рис. 4.180. Значение погрешности RMS для этой комбинации весов можно получить с графика на рис. 4.179. При толерантности погрешности 0,025 сеть плохо поддавалась обучению, поэтому после 4000 прогонов уровень толерантности был увеличен до 0,03. Графики и значения весов на момент изменения уровня показаны на рис. 4.181 и 4.182 соответственно. После увеличения значения толерантности выполнение программы очень быстро - после 402 прогонов - завершилось. Достигнутый эффект можно наблюдать на рис. 4.183, а полученные значения весов - на рис. 4.184. В результате обучения нейронной сети, реализующей логическую систему XOR с начальными значениями весов, представленными на рис. 4. 166 и 4.96, была найдена еще одна комбинация весов, подобная полученным при минимизации погрешности Q с помощью программы Evolver. В принципе, сформированный в текущем примере и представленный на рис. 4.184 набор весов сети, обученной с помощью программы BrainMaker, отличается от двух аналогичных ком-
бинаций «наилучших» весов из примера 4.27 только знаками. Например, если сравнить веса с рис. 4.184 с весами, показанными на рис 4.101, то можно зафиксировать, что веса wu, w12, w2b w22 изменили знаки на противоположные, а веса w3i. щ2, w10, w20> w30 имеют в обоих случаях одни и те же знаки, т.е. w31 и w20 остались отрицательными, a w32, w10, w30 - положительными. Результаты тестирования сформированной сети (с весами на рис. 4.184) для входов щ = 1 и и2 = 0 приведены на рис. 4.183. Для пары входов иЛ =0 и и2= 1 значение у осталось неизменным, т.е. равным 0,9700. Для иЛ = 0 и и2 = 0, а также для иЛ - 1 и и2 = 1 выходное значение у равно 0,0301 Рассмотренные примеры иллюстрируют гибридный подход, основанный на объединении двух различных методов - генетического алгоритма и градиентного метода обучения весов нейронной сети, известного под названием обратного распространения ошибки. В примере 4.27 для обучения нейронной сети применялся генетический алгоритм программы Evolver. После 40 000 «тактов» функционирования этого алгоритма (что соответствует 800 поколениям классического генетического алгоритма) получено близкое к оптимальному решение. Однако, как показывают примеры 4.30 и 4.31, этот результат можно еще улучшить за счет «дообучения» с помощью градиентного алгоритма. Примеры 4.31 и 4.32 представляют типичный способ такого гибридного подхода, когда генетический алгоритм применяется только для выбора начальной точки (в данном случае - исходного множества весов) для градиентного метода. В примере 4.31 генетический алгоритм функционировал дольше, чем в примере 4.32, поэтому начальная точка для метода обратного распространения ошибки в примере 4.32 находится на большем расстоянии от точки оптимального решения, чем в примере 4.31. Следует обратить внимание на факт, что длительность «дообучения» не имеет большого значения. Градиентный алгоритм выполняется быстрее генетического, так как в последнем предполагается просмотр всей популяции возможных решений. В примере 4.33 продемонстрирован способ обучения нейронной сети методом обратного распространения ошибки (программа BrainMaker). Полученный результат оказался еще более близким к оптимальному, чем при использовании только генетического алгоритма (при мер 4.30). Однако необходимо подчеркнуть, что градиентный метод не всегда приводит к достижению ожидаемого результата, который зависит от начальной точки. При другом, сгенерированном случайным образом исходном множестве весов сеть может оказаться «необучаемой», что встречается довольно часто. Кроме того, принципиальным недостатком градиентных методов оказывается их «застревание» в локальных оптимумах. Это можно предотвратить применением генетического алгоритма - только для того, чтобы найти какую-либо точку, настолько близкую к глобальному оптимуму, что градиентный алгоритм при старте из этой точки не «застрянет» ни в каком локальном оптимуме и быстро найдет глобальное решение. Глава 4. Генетические алгоритмы 4.73. Эволюционные алгоритмы для обучения нейронных сетей
В рассмотренных примерах использовался генетический (эволюционный) алгоритм программы Evolver. Конечно, для достижения тех же целей можно было применять и программу FlexTool (п. 4.9), которая допускает такой же интервал изменения значений весов от -7 до 8, как и программа BrainMaker. Для выбора исходного множества весов нейронной сети также пригодны и другие реализации генетического (эволюционного) алгоритма.
Дата добавления: 2015-06-04; Просмотров: 378; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |