Круглов В.В., Борисов В.В. - Искусственные нейронные сети (ИНС) Теория и практика (778918), страница 5
Текст из файла (страница 5)
У = г(Х), заданная парами входных-выходных данных (Х", У'), ..., (М", У"), для которых У" = г(Х~), й = 1 . И. Š— функция ошибки (функционал качества), показывающая для каждой из функций д степень близости кг. Решить поставленную задачу с помощью нейронной сети заданной архитектуры — это значит построить (синтезировать) функцию д е б, подобрав параметры нейронов (синаптические веса и смещения) таким образом, чтобы функционал качества обращался в оптимум для всех пар (Х", У"). Таким образом, задача обучения нейронной сети определяется совокупностью пяти компонентов: <Х, У, г, О, Е>. Обучение состоит в поиске (синтезе) функции д, оптимальной по Е. Оно требует длительных вычислений и представляет собой итерационную процедуру. Число итераций может составлять от 10 до 10~.
На каждой итерации происходит уменьшение функции ошибки. Функция Е может иметь произвольный вид. Если выбраны множество обучающих примеров и способ вычисления функции ошибки, обучение нейронной сети превращается в задачу многомерной оптимизации, для решения которой могут быть использованы следующие методы: ° локальной оптимизации с вычислением частных производных первого порядка; ° локальной оптимизации с вычислением частных производных первого и второго порядка; ° стохастической оптимизации; ° глобальной оптимизации. К первой группе относятся: градиентный метод (наискорейшего спуска); методы с одномерной и двумерной оптимизацией целевой функции в направлении антиградиента; метод сопряженных градиентов; методы, учитывающие направление антиградиента на нескольких шагах алгоритма.
Ко второй группе относятся метод Ньютона, методы оптимизации с разреженными матрицами Гессе, квазиньютоновские методы, метод Гаусса-Ньютона, метод Левенберга-Маркардта. Стохастическими методами являются: поиск в случайном направлении, имитация отжига, метод Монте-Карло (численный метод статистических испытаний). Задачи глобальной оптимизации решаются с помощью перебора значений переменных, от которых зависит целевая функция.
Для сравнения методов обучения нейронных сетей необходимо использовать два критерия ° количество шагов алгоритма для получения решения, ° количество дополнительных переменных для организации вычислительного процесса. Для иллюстрации термина «дополнительные переменные» приведем следующий пример. Пусть р, и р, — некоторые параметры нейронной сети с заданными значениями. В процессе обучения сети на каждом шаге, по меньшей мере, два раза потребуется выполнить умножение р,р,. Дополнительная переменная требуется для сохранения значение произведения после первого умножения.
Предпочтение следует отдавать тем методам, которые позволяют обучить нейронную сеть за небольшое число шагов и требуют малого числа дополнительных переменных. Это связано с ограничением ресурсов вычислительных средств. Как правило, для обучения используются персональные компьютеры. Пусть нейронная сеть содержит Р изменяемых параметров (синаптических весов и смещений). Существует лишь две группы алгоритмов обучения, которые требуют менее 2Р дополнительных параметров и при этом дают возможность обучать нейронные сети за приемлемое число шагов.
Это алгоритмы с вычислением частных производных первого порядка и, возможно, одномерной оптимизации. Именно эти алгоритмы и будут рассмотрены в следующих разделах. Хотя указанные алгоритмы дают возможность находить только локальные экстремумы, они могут быть использованы на практике для обучения нейронных сетей с многоэкстремальными целевыми функциями (функциями ошибки), так как экстремумов у целевой функции, как правило, не очень много. Достаточно лишь раз или два вывести сеть из локального минимума с большим значением целевой функции для того, чтобы в результате итераций в соответствии с алгоритмом локальной оптимизации сеть оказалась в локальном минимуме со значением целевой функции, близким к нулю Если после нескольких попыток вывести сеть из локального минимума нужного эффекта добиться не удается, необходимо увеличить число нейронов во всех слоях с первого по предпослед- 25 ний и присвоить случайным образом их синаптическим весам и смещениям значения из заданного диапазона Эксперименты по обучению нейронных сетей показали, что совместное использование алгоритма локальной оптимизации процедуры вывода сети из локального минимума и процедуры увеличения числа нейронов приводит к успешному обучению нейронных сетей Кратко опишем недостатки других методов Стохастические алгоритмы требуют очень большого числа шагов обучения Это делает невозможным их практическое использование для обучения нейронных сетей больших размерностей Экспоненциальный рост сложности перебора с ростом размерности задачи в алгоритмах глобальной оптимизации при отсутствии априорной информации о характере целевой функции также делает невозможным их использование для обучения нейронных сетей больших размерностей Метод сопряженных градиентов очень чувствителен к точности вычислений, особенно при решении задач оптимизации большой размерности Для методов, учитывающих направление анти- градиента на нескольких шагах алгоритма, и методов, включающих вычисление матрицы Гессе, необходимо более чем 2Р дополнительных переменных В зависимости от способа разрежения, вычисление матрицы Гессе требует от 2Р до Р' дополнительных переменных Рассмотрим один иэ самых распространенных алгоритмов обучения — алгоритм обратного распространения ошибки 1.4.1.
Обучение с учителем. Алгоритм обратного распространения ошибки В многослойных нейронных сетях оптимальные выходные значения нейронов всех слоев, кроме последнего, как правило, неизвестны Трех- или более слойный персептрон уже невозможно обучить, руководствуясь только величинами ошибок на выходах сети Один из вариантов решения этой проблемы — разработка наборов выходных сигналов, соответствующих входным, для каждого слоя нейронной сети, что, конечно, является очень трудоемкой операцией и не всегда осуществимо Второй вариант — динамическая подстройка весовых коэффициентов синапсов, в ходе которой выбираются, как правило, наиболее слабые связи и изменяются на малую величину в ту или иную сторону, а сохраняются только те изменения, которые повлекли уменьшение ошибки на выходе всей сети Очевидно, что данный метод, несмотря на ка- 26 жущуюся простоту, требует громоздких рутинных вычислений И, наконец, третий, более приемлемый вариант — распространение сигналов ошибки от выходов нейронной сети к ее входам, в направлении, обратном прямому распространению сигналов в обычном режиме работы Этот алгоритм обучения получил название процедуры обратного распространения ошибки (еггог Ьасх ргорадавоп) Именно он рассматривается ниже Алгоритм обратного распространения ошибки — это итеративный градиентный алгоритм обучения, который используется с целью минимизации среднеквадратичного отклонения текущих от требуемых выходов многослойных нейронных сетей с последовательными связями Согласно методу наименьших квадратов, минимизируемой целевой функцией ошибки нейронной сети является величина Е(иг) = — Х(у~ к~ — г(~ к), (1 9) 2~к где У~ок' — Реальное выхоДное состоЯние нейРонау выходного слоЯ нейронной сети лри подаче на ее входы к-го образа, с~,„— требуемое выходное состояние этого нейрона Суммирование ведется по всем нейронам выходного слоя и по всем обрабатываемым сетью образам Минимизация методом градиентного спуска обеспечивает подстройку весовых коэффициентов следующим образом ~ и,(я) дЕ (1 10) аи,„' где иг„— весовой коэффициент синаптической связи, соединяющей рй нейрон слоя (г)-1) с)-м нейроном слоя г), и — коэффициент скорости обучения, 0 < и <1 В соответствии с правилом дифференцирования сложной функции гЕ <Е с(У г (1 11) ди, г'у г(8 <Зи, где з, — взвешенная сумма входных сигналов нейрона д т е аргумент активационной функции Так как производная активационной функции должна быть определена на всей оси абсцисс, то функция единичного скачка и прочие активационные функции с неоднородностями не подходят для рассматриваемых нейронных сетей В них применяются такие гладкие функции, как гиперболический тангенс или классический сигмоид с экслонентой (см табл 1 1) Например, в случае гиперболического тангенса 27 (1.13) (1 15) — =1-в ~(у 2 (1.1г) оз Третий множитель дв/дик равен выходу нейрона предыдущего слоя у," ".
Что касается первого множителя в (1.11), он легко раскладывается следующим образом: гЕ Х Е Оу/ Вг Х 6Е буl и.) ф г сф оя сф ~ сф ов Здесь суммирование по г выполняется среди нейронов слоя (о+1). Введя новую переменную: бм' = — — ', (1.14) ~ф( с)8> получим рекурсивную формулу для расчетов величин о,"' слоя о из величин у' ' более старшего слоя (О+1) 5м1 ~~фо~е и,й л ) 1 ОУ к (~~ Для выходного слоя: (1. 16) / Теперь можно записать (1.10) в раскрытом виде: ои' ' =-г~Ф" у' '. (1.17) Иногда для придания процессу коррекции весов некоторой инерционности, сглаживающей резкие скачки при перемещении по поверхности целевой функции, (1.17) дополняется значением изменения веса на предыдущей итерации.
дв(о)(() ~ (д л~(ч)(г 1) ~- (1 д) ~и) ум-л) (1 18) где л- коэффициент инерционности; ( — номер текущей итерации. Таким образом, полный алгоритм обучения нейронной сети с помощью процедуры обратного распространения строится следующим образом. ШАГ 1. Подать на входы сети один из возможных образов и в режиме обычного функционирования нейронной сети, когда сигналы распространяются от входов к выходам, рассчитать значения последних. Напомним, что: ил ~ум-еи,нл (1.19) г ~ к -о где (. — число нейронов в слое (о — 1) с учетом нейрона с постоянным выходным состоянием +1, задающего смещение; уйнли„'"— ~'-й вход нейрона у слоя д, м-г( (и) (1.20) где Г( ° ) — сигмоид, у,' '= х„ (1.21) где х, — г-я компонента вектора входного образа.
ШАГ 2. Рассчитать Ф' дпя выходного слоя по формуле (1.18) Рассчитать по формуле (1.17) или (1.18) изменения весов Ли~~'слоя ь). ШАГ 3. Рассчитать по формулам (1.15) и (1.17) (или (1.15) и (118)) соответственно Ф' и Ли~ ' для всех остальных слоев, д = (С~-1) ...1. ШАГ 4. Скорректировать все веса в нейронной сети: и(~~~(() = в~~~(à — 1) ~ Лв~м((). (1.22) ШАГ 5. Если ошибка сети существенна, перейти на шаг 1. В противном случае — конец. Сети на шаге 1 попеременно в случайном порядке предъявляются все тренировочные образы, чтобы сеть, образно говоря, не забывала одни по мере запоминания других.
Из выражения (1.17) следует, что когда выходное значение у,"" стремится к нулю, эффективность обучения заметно снижается. При двоичных входных векторах в среднем половина весовых коэффициентов не будет корректироваться, поэтому область возможных значений выходов нейронов (О, 1) желательно сдвинуть в пределы ( — 0,5, 0,5), что достигается простыми модификациями логистических функций.