Круглов В.В., Борисов В.В. - Искусственные нейронные сети (ИНС) Теория и практика (778918), страница 8
Текст из файла (страница 8)
ШАГ 3. Обучение сети по заданной выборке. ШАГ 4 Завершение в случае успешного обучения. Если сеть обучить не удалось, то число нейронов увеличивается и повторяются шаги со второго по четвертый. В конструктивных алгоритмах число нейронов в скрытых слоях также изначально мало и постепенно увеличивается В отличие от этой методики, в конструктивных алгоритмах сохраняются навыки, приобретенные сетью до увеличения числа нейронов. Конструктивные алгоритмы различаются правилами задания значений параметров в новых, добавленных в сеть, нейронах: ° значения параметров являются случайными числами из заданного диапазона; ° значения синаптических весов нового нейрона определяются путем расщепления (врк1бпд) одного из старых нейронов Первое правило не требует значительных вычислений, однако его использование приводит к некоторому увеличению значения функции ошибки после каждого добавления нового нейрона. В результате случайного задания значений параметров новых нейронов может появиться избыточность в числе нейронов скрытого слоя Расщепление нейронов лишено двух указанных недостатков Суть алгоритма расщепления проиллюстрирована на рис 1? На этом рисунке показан вектор весов нейрона скрытого слоя на некотором шаге обучения и векторы изменения весов, соответствующие отдельным обучающим примерам.
Векторы изменений имеют два преимущественных направления и образуют в пространстве область, существенно отличающуюся от сферической. Суть алгоритма заключается в выявлении и расщеплении таких нейронов В результате расщепления вместо одного исходного в сети оказывается два нейрона. Первый из этих нейронов имеет вектор весов, представляющий из себя сумму вектора весов исходного нейрона и векторов изменений весов одного из преиму- 39 Новый нейрон нк з Вектор вес исходнога нейрона ый рон Рис. 1.7. Вектор весов нейрона скрытого слоя и изменения, соответствующие отдельным обучающим примерам 40 щественных направлений. В результате суммирования векторов изменений весов другого преимущественного направления и вектора весов исходного нейрона получают синаптические веса второго нового нейрона.
Расщеплять нейроны, векторы изменений которых имеют два преимущественных направления, необходимо потому, что наличие таких нейронов приводит к осцилляциям при обучении методом обратного распространения. При обучении методом с интегральной функцией ошибки наличие таких нейронов приводит к попаданию в локальный минимум с большим значением ошибки. Алгоритм расщепления включает в себя: ° построение ковариационной матрицы векторов изменений синаптических весов; ° вычисление собственных векторов и собственных значений полученной матрицы с помощью итерационного алгоритма Ойа (О~а), в соответствии с которым выполняется стохастический градиентный подъем и ортогонализация Грамма — Шмидта.
Недостатком алгоритма является экспоненциальный рост времени вычислений при увеличении размерности сети. Для преодоления указанного недостатка предложен упрощенный алгоритм расщепления, который не требует значительных вычислений Общее число нейронов в сети, построенной с помощью этого алгоритма по заданной обучающей выборке, может быть несколько больше, чем у сети, построенной с помощью исходного алгоритма. В упрощенном алгоритме для расщепления выбирается нейрон с наибольшим значением функционала: и (1 34) ~ди'," кы где Ак — вектор изменений синаптических весов нейрона; ~' — номер нейрона; ) = 1...
1., ) — число нейронов; и — номер обучающего примера; И вЂ” число примеров в обучающей выборке. Таким образом, в качестве критерия выбора нейрона для расщепления используется отношение суммы длин векторов изменений синаптических весов нейрона, соответствующих различным обучающим примерам, к длине суммы этих векторов. В результате расщепления вместо исходного нейрона в сеть вводятся два новых нейрона. Значение каждого синаптического веса нового нейрона есть значение соответствующего веса старого нейрона плюс некоторый небольшой шум.
Величины весов связей выходов новых нейронов и нейронов следующего слоя равны половине величин весов связей исходного нейрона с соответствующими весами следующего слоя. Упрощенный алгоритм, как и исходный, гарантирует, что функция ошибки после расщепления увеличиваться не будет. Кроме описанных способов выбора нейронов для расщепления, может быть использован анализ чувствительности, в процессе которого строятся матрицы Гессе для вторых производных функции ошибки по параметрам сети. По величине модуля второй производной судят о важности значения данного параметра для решения задачи Параметры с малыми значениями вторых производных обнуляют.
Анализ чувствительности требует больших вычислительных ресурсов. Дополнительная информация об алгоритмах обучения приведена в приложении. 1.6. Краткое обобщение материалов главы 1.6.1. Как построить нейронную сеть Практически любую задачу можно свести к задаче, решаемой нейронной сетью.
В табл. 1.2 показано, каким образом следует сформулировать в терминах нейронной сети задачу распознавания рукописных букв. 41 Таблица 1 2 Задача аспознавания «опасных б кв в те минах ней риной сети Задача аспознавания кописных б кв Дано растровое черно-белое изобра- Необкодимо распознать предъявлен- жение буквы размером 30х30 пиксе- ную букву Гв апфавите ЗЗ буквы) пов Фо м пи овка задачи дня неи онной сети Необходимо построить нейронную сеть с 900 входами и 33 выходами которые помечены буквами Номер неирона с максимальным значением выходного сигнала допжен соответствовать п едъявпенном изоб ажению б квы Дано входной вектор из 900 двоич- ных символов (900 = 30х30) 42 Интерес представляет не аналоговое значение выхода, а номер класса (номер буквы в алфавите) Поэтому каждому классу сопоставляется свой выходной нейрон, а ответом сети считается номер класса соответствующий нейрону, на чьем выходе уровень сигнала максимален Значение же уровня сигнала на выходе ха- рактеризует достоверность того что на вход была подана соответствующая рукописная буква Нейронная сеть строится в два этапа 1) Выбор типа (архитектуры) сети 2) Подбор весов (обучение) сети На первом этапе необходимо определить следующее ° какие нейроны испольэовать (число входов, функции ак- тивации), ° каким образом следует соединить нейроны между собой, ° что взять в качестве входов и выходов сети Нет необходимости придумывать нейронную сеть «с нуля» так как существуют несколько десятков различных нейросетевых архитектур, причем эффективность многих из них доказана мате- матически Наиболее популярные и изученные из них — это много- слойный персептрон, нейронная сеть с общей регрессией, сети Кохонена и другие, которые будут рассмотрены ниже На втором этапе производится обучение выбранной сети по- средством настройки ее весов Количество весов может быть ве- лико, поэтому обучение представляет собой сложный и длитель- ный процесс Для многих архитектур разработаны специальные алгоритмы обучения, наиболее популярный иэ которых алгоритм обратного распространения ошибки 1.6.2.
Обучение нейронной сети Обучить нейронную сеть это значит, сообщить ей чего от нее добиваются Этот процесс похож на обучение ребенка алфавиту Показав ребенку изображение буквы и получив неверный ответ ему сообщается тот ответ, который хотят получить Ребенок запоминает этот пример вместе с верным ответом и в его памяти происходят некоторые изменения в нужном направлении Процесс обучения заключается в последовательном предьявлении букв (рис 1 8) При предъявлении изображения каждой буквы на входе сеть выдает некоторый ответ, не обязательно верный Известен и верный (желаемый) ответ В данном случае желательно, чтобы на выходе соответствующего нейрона уровень сигнала был максимален Обычно в качестве желаемого в задаче классификации берут набор, где «1» стоит на выходе этого нейрона, а «0» — на выходах всех остальных нейронов Одну и ту же букву (а также различные изображения одной и той же буквы) можно предъявлять сети много раз После многократного предъявления примеров веса сети стабилизируются, причем сеть дает правильные ответы на все (или почти все) примеры из базы данных В таком случае говорят, что сеть обучена В программных реализациях можно видеть, что в процессе обучения величина ошибки (сумма квадратов ошибок по всем выходам) постепенно уменьшается Когда величина ошибки Рис 1 Ь Процесс обучения нейронной сети 43 достигает нуля или приемлемо малого уровня, обучение останавливают, и сеть готова к распознаванию.
Важно отметить, что вся информация, которую сеть приобретает о задаче, содержится в наборе примеров. Поэтому качество обучения сети зависит от количества примеров в обучающей выборке, а также от того, насколько полно эти примеры описывают задачу. Считается, что для полноценной тренировки требуется хотя бы несколько десятков (а лучше сотен) примеров. 1.6.3. Применение обученной нейронной сети Важнейшая особенность человеческого мозга состоит в том, что, однажды обучившись определенному процессу, он может верно действовать и в тех ситуациях, которым он не обучался.
Так же и обученная нейронная сеть может с большой вероятностью правильно реагировать на новые, не предъявленные ей ранее данные. Например, можно нарисовать букву другим почерком, а затем предложить нейронной сети классифицировать новое изображение Веса обученной сети хранят достаточно много информации о сходстве и различиях букв, поэтому можно рассчитывать на правильный ответ и для нового варианта изображения Отметим, что задачи классификации (типа распознавания букв) очень плохо алгоритмизируются.
Если в случае распознавания букв верный ответ очевиден заранее, то в более сложных практических задачах обученная нейронная сеть выступает как эксперт, обладающий большим опытом и способный дать ответ на трудный вопрос. Примером такой задачи служит медицинская диагностика, где сеть может учитывать большое количество числовых параметров (энцефалограмма, давление, вес). Конечно, «мнение» сети в этом случае нельзя считать окончательным. Классификация предприятий по степени их перспективности — это уже привычный способ использования нейронных сетей в практике западных компаний.