Бодянский В.Е., Руденко Г.О. - ИНС архитектура обучение применение (778912), страница 15
Текст из файла (страница 15)
В первом случае эта особь имеет больше шансов на выживание и, следовательно, на закрепление полученной мутации в потомстве. Использование идей биологической эволюции в технике и породило то, что сегодня называется эволюционными алгоритмами, которые наряду с нейронными сетями и фаззи-системами сформировали новое научное направление — вычислительный интеллект (Сотршабопа1 1п1е111депсе). 4 ОБУЧЕНИЕ НЕЙРОННЫХ СЕТЕЙ и,.(1с)+х1~(1с), если Е,.Я+1) = Е,.~и,.(lс)+с,"(1с)) < ( Е,, (и, (1с)) = Е, (1с), (4.234) и,(Й) в противналт случае„ и,. (/с+1) = (4.235) Е,Ж) = ~7„Е,.(/с+1), справедливого при малых шагах и.
Это соотношение приводит к интуитивному заключению, что, сделав один удачный шаг, следует продолжать двигаться в этом же направлении с высокой вероятностью успеха. На этом заключении строятся алгоритмы случайного поиска с линейной тактикой 1105~, простейшим их которых является алгоритм случайного спуска (4.236) и,(1+1) = и,(й)+Ли,(й), т1Ь1/с), если К (Ус), и,(lс) = Ли,.(lс — 1), если К'(/с), (4,237) где символами К (Ц и К'(1с) обозначены так называемые реакции процесса обучения. Отрицательная реакция К 11с) связана с увеличением критерия качества (4.238) ЬЕ, Я) = Е,. ~и,.
(/с + 1)) — Е,. (и,, (lс)) > 0 — э К (1с), а положительная — с его уменьшением где Д1с) = (~, (А), ~, (й),..., ~„(й)) и — случайный равномерно распределенный вектор такой, что — 1< ~,.(Й) <1; и — шаг поиска. Несмотря на крайнюю простоту этих двух алгоритмов, их использование для решения реальных задач не оправдано, поскольку связано с большими временными затратами.
Как отмечал Л. А. Растригин, причины кроются в том, что подобные алгоритмы решают вопрос об отыскании решения в принципе, гарантируя при этом лишь конечность времени отыскания этого решения, которое может быть слишком велико. Ускорить процесс обучения на основе случайного поиска можно, воспользовавшись дополнительной информацией о характере целевой функции Е, (1с) или Е,', если конечно таковые сведения имеются. Так, например, сведения о гладкости гиперповерхности Е,.(1с) позволят повысить быстродействие с помощью использования приближенного соотношения (4.239) Смысл алгоритма (4.236), (4.237) состоит в том, что из состояния сети и,.(й) делаются случайные шаги в пространстве синаптических весов, пока не будет найдено направление Дй), ведущее к уменьшению целевой функции. Положительная реакция алгоритма заключается в повторении такого шага до тех пор, пока критерий качества не начнет увеличиваться, что вызовет отрицательную реакцию — случайные пробы новых направлений и т.д.
Данный алгоритм построен на принципе «наказания» случайностью, в соответствии с которым оператор случайного шага ~(Й) вводится как отрицательная реакция на неудачный шаг обучения. В случае же удачи поиск действует тем же образом, который привел к положительной реакции. Такая форма поведения целесообразна для целевых функций близких к линейным, свойства которых с переходом из одного состояния в другое изменяются незначительно.
Поэтому этот алгоритм иногда называется автоматом с линейной тактикой [2041. Процесс обучения с помощью алгоритмов с линейной тактикой четко подразделяется на два этапа, соответствующих двум разным образам поведения. Первый этап сводится к определению направления спуска ю, второй — это собственно настройка весов в выбранном направлении до тех пор, пока целевая функция не начнет увеличиваться.
Рассмотрим некоторые из возможных способов определения направления спуска. Наиболее естественной представляется чисто случайная оценка направления спуска. Смысл ее сводится к попытке спуска вдоль случайно выбранного направления (4.240) где ~ = (~,, ~,,..., ~„) — единичный случайный вектор, равномерно распределенный по всем направлениям в пространстве синаптических весов, Далее оценка направления спуска по наилучшей из нескольких случайных проб. Из исходной точки ~,.(й) на расстояние пробного шага г) делается несколько случайных проб показателя качества Е,.(и,.(/с)+г) ~') в случайных направлениях ~', ц =1„2,...,Д. За направление спуска ь., выбирается то, которое обеспечило наименьшее значение показателя качества (4.241) где ~ удовлетворяет очевидному условию 4 ОБУЧЕНИЕ НЕЙРОННЫХ СЕТЕЙ Е,.(ит(/с)+т1 ~ ) = ппп ~Ет(и,.(1с)+т)с~')~ д=!.2,....Д (4.242) Несложно видеть, что при Д =1 это оценка вырождается в предыдущую.
Используется также оценка направления спуска методом статистического градиента. В этом случае за направление движения принимается средневзвешенное из Д случайных направлений, каждое из которых берется с весом, соответствующим приращению критерия качества вдоль этого направления ,тт = — Жг~~ ~'(Е,(и'т(1с)+т1с~') — Ет(и,(1с))), (4,243) где йг — это единичный вектор, определяющий интересующее нас направление х стсг х = ()х(! (4.244) ортогональны, т.е.
(4.245) Можно видеть, что при Д= и+1, т.е. при числе ортогональных проб равном числу настраиваемых весов, этот метод вырождается в алгоритм оптимизации Гаусса-Зайделя [105, 215~. Далее можно перейти ко второму этапу обучения — собственно спуску. Сам по себе процесс спуска заключается в определении минимума целевой функции вдоль выбранного направления тт Чаще всего это шаговая процедура, причем после каждого шага принимается решение: двигаться ли дальше или прекратить спуск и обратиться к первому этапу. В качестве наиболее известных алгоритмов спуска можно выделить, например, спуск с парными пробами, когда вдоль направления спуска берутся парные пробы, дающие возможность принять решение: спускаться дальше или прекратить спуск и вернуться к первому этапу.
Алгоритм имеет вид т у.т, если Е,. (и т(Ус)+т1~л,) — Е,. (ъчтЯ) — т1~.тт) с 8, и .(~+1) = и .(Ус)+ ' ' ' ~ ' (4.246) О, если Е,.(ит(Ус)+т)с,тт) — Ет(и'т(Й) — Цсл'т) > е Наконец следует отметить ортогонализированный метод статистического градиента.
Этот метод определения направления спуска т,. отличается от предыдущего тем, что случайные направления ~', ст =1,2,...,Д, 0 < и+1 и для него характерно четкое расчленение пробных и рабочих шагов. Именно поэтому его иногда называют алгоритмом с разделенными пробными и рабочими шагами [2031. В задачах обучения ИНС, особенно в реальном времени, более предпочтительными представляются алгоритмы с совмещенными пробными и рабочими шагами такие, как совмещенный спуск г1л, если Е,.(и,.(/с)) — Е,.(и,.® — 1)) <е, и,.(й+1) = и,.(й)+ ' ' ' ' ' (4.247) О, если Е,. (и,. (й)) — Е,.
(и, (й — 1)) > е и реверсный поиск, являющийся расширением базового В.ОМ [61 худ, если Е,.(и,.®)) — Е,.(и,.® — 1))<е, и,. (/с+ 1) = и,.ф)+ ' ' ' ' ' (4.248) — харю, если Е,.(и,.(Й)) — Е,.(ы,.(И вЂ” 1)) > е. (4.249) ю,. (1+1) = с11г(л,(Ус)+ А~,(й)), где А~, Ж) = — а~®)ЛЕ, (й — 1); (4.250) а — коэффициент рыскания. Видно, что при а=Π— это обычный линейный спуск.
При а ~0 вектор ю,®+1) в процессе спуска будет разворачиваться в том направлении, где приращение ЛЕ,. (й — 1) минимально. Вторым, более радикальным способом улучшения характеристик спуска является использование так называемых локальных алгоритмов случайного поиска [1051. Локальность алгоритма поиска определяется его независимостью 100 Алгоритм (4.248) строится на интуитивных предположениях о том, что если направление ю,. ведет к возрастанию, то — ю,.
— возможно к убыванию целевой функции. Рассмотренные алгоритмы случайного поиска с линейной тактикой обладают существенным недостатком [2051: в процессе спуска выбранное направление все менее и менее соответствует антиградиентному и поэтому линейный спуск довольно быстро теряет смысл. Данное обстоятельство заставляет обратиться к коррекции направления спуска в процессе самого спуска. Это может быть осуществлено различными способами. Одним из простейших таких способов является введение незначительного «рыскания» (зондирования) в процессе обучения,при котором оценивается эффективность новых направлений с тем, чтобы принять или не принять их.
Рыскание в процессе спуска при этом может быть как регулярным, так и чисто случайным. Алгоритм такой коррекции может иметь, например, следующий вид: 4 ОБУЧЕНИЕ НЕЙРОННЫХ СЕТЕЙ от предыстории. Так алгоритмы с линейной тактикой являются нелокальными, причем эта нелокальность вызвана характером самого спуска, в котором рабочие шаги повторяются, т.е. жестко связаны. В существенно нелинейной обстановке часто нецелесообразно повторять удачные шаги, поскольку характер целевой функции существенно меняется на каждом шаге. В этом случае лучше избрать локальную нелинейную тактику, т.е. предпринимать последовательно независимые попытки по уменьшению критерия качества и исправлять ошибки, если они возникают. Если при этом воспользоваться случайными шагами-пробами, то получим алгоритмы с поощрением случайностью, в которых элемент случайности с,"(Ус) вводится как положительная реакция_#_" (Ус), а отрицательной реакцией Я (Ус) являются меры по устранению последствий неудачного случайного шага.
Этот алгоритм можно записать в виде гУЬ(Ус), если Л (Й), и У(Ус+1) = и У(Ус)+ ~'(ЬЕУ(Ус — !)), если К (Ус). (4.251) Как видно, оператор случайного шага ДУс) вводится как поощрение на удачный шагЕ'(Ус) (ЛЕ,(Ус — 1) < 0). Отрицательная реакция Я (Й) вызывает действие, например (4.252) У'(ЛЕу(й — 1)) = — Лиу(Ус — 1) = и,(Ус — 1) — и,(Ус), и У(Ус+1) = и, (Ус) — УУ~(Ус) яУУп (Е, (и, (Ус) + УУ Г (Ус)) — ЕУ(и, (й) — УУс~(Ус))). (4.253) Характерной особенностью данного алгоритма является тенденция к «блужданию» даже в том случае, если оптимум критерия качества найден. Действительно, найдя экстремум, алгоритм тут же уводит оптимальный набор 101 направленное на преодоление полученного отрицательного эффекта Л (Ус) (ЛЕ,(Ус — 1) > О), после чего снова следует случайный шаг ДУс+1).
Таким образом, алгоритм (4.251) исправляет ошибки, допущенные в процессе случайного поиска. Различные алгоритмы локального случайного поиска отличаются друг от друга различными способами определения направления, в котором делается попытка сделать рабочий шаг поиска. Здесь следует выделить алгоритм с парными пробами [203~, предполагающий четкое разделение между поисковыми (пробными) и рабочими шагами. В случайном направлении, определяемом вектором с,, по ОбЕ СтОрОны От иСхОднОгО СОСтОяния и у(й) дЕлаЮтСя прОбы. ЗначЕния цЕлЕвОй функции в точках и:У(й)+тУ с,(й) определяют направление рабочего шага, который делается в сторону наименьшего значения критерия качества настраиваемых параметров в сторону, что в общем-то в нестационарных ситуациях не так уж плохо.














