Итерационные методы обучения нейронных сетей
Выбери формат для чтения
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Лекция 5
Тема: Итерационные методы обучения нейронных сетей
1. Общие положения
Для настройки весов нейронной сети при ее обучении на основе
нахождения минимума функционала ошибки E, соответствующего конкретной
задаче математического моделирования, обычно используется некоторый метод
нелинейной оптимизации. Теория таких методов достаточно развита, однако
непосредственное её применение к анализу условий сходимости процедур
обучения нейронных сетей наталкивается на определённые трудности. Дело не
столько в изобилии видов нейронных сетей, сколько в том, что алгоритм
обучения может сочетать шаги по методу второго порядка (типа метода
Ньютона) и шаги по методу первого порядка, обратный оператор в методе
ньютоновского типа может вычисляться с погрешностью, минимизируемые
функционалы могут меняться от шага к шагу и на некоторых шагах не
допускать удобной оценки второй производной, может изменяться размерность
пространства весов (к этому приводят структурные, в частности, эволюционные
алгоритмы) и т.д.
Вернёмся к задаче подбора вектора весов w нейронной сети. Будем искать
его итерационным методом
wk +1 = ϕ (w k , E) ,
причем,
выбирая отображение ϕ , получаем конкретный метод, для
которого надо обеспечить сходимость к решению
w k → w* ,
где w* – точка минимума функционала E.
Большинство описанных методов можно представить в виде
,
где вектор pk задаёт направление движения при переходе к новым
значениям весов, а η – размер шага.
Алгоритм 1. Обобщённый алгоритм нелинейной оптимизации без
ограничений.
1.
Выбираем начальные значения параметров – стартовую точку w 0 ,
начальное направление движения p0 и начальный шаг η0 .
2. На очередном шаге определяем направление движения pk ,
основываясь на требуемой для этого информации – например, векторе pk −1 ,
градиенте функционала ошибки в точке и т.д.
3.
Определяем очередной шаг ηk , обычно определяя минимум
функционала ошибки в направлении pk с той или иной точностью.
4.
Если ошибка недостаточно мала и не выполнено какое-либо иное
правило останова, то шаги 2 и 3 повторяем.
Конкретизация описанных выше правил формирования направления
движения и размера шага даёт определённый алгоритм. При этом методы
выбора делятся на методы нулевого порядка, не требующие вычисления
градиента, методы первого порядка, в которых требуется вычислить или
оценить градиент, и методы второго порядка, требующие вычисления или
оценки матрицы вторых производных и её обратной.
2. Особенности задач оптимизации при обучении многослойной НС
Алгоритм обучения многослойной НС задается набором обучающих
правил, которые определяют, каким образом изменяются межнейронные связи
в ответ на входное воздействие. На рис. 1 схематично показана процедура
обучения многослойной НС.
Рисунок 1 – Процедура обучения многослойной НС
Вначале определенным образом устанавливаются значения весовых
коэффициентов межнейронных связей. Затем из базы данных в соответствии с
некоторым правилом поочередно выбираются примеры (пары обучающей
выборки Х, Υ. Вычисляется ошибка сети Е. Если ошибка велика, то
осуществляется подстройка весовых коэффициентов для ее уменьшения. Это и
есть процедура обучения сети. В стандартной ситуации описанный процесс
повторяется до тех пор, пока ошибка не станет меньше заданной, либо
закончится время обучения.
Простейший способ обучения НС - по очереди менять каждый весовой
коэффициент сети (далее просто - вес связи) таким образом, чтобы
минимизировалась ошибка сети. Этот способ является малоэффективным,
целесообразнее вычислить совокупность производных ошибки сети по весовым
коэффициентам – градиент ошибки по весам связей и изменить все веса сразу
на величину, пропорциональную соответствующей производной. Один из
возможных методов, позволяющих вычислить градиент ошибки, – алгоритм
обратного распространения – наиболее известен в процедурах обучения НС.
Специфические ограничения при решении задачи обучения. По сравнению с традиционными задачами оптимизации при обучении НС существует
ряд специфических ограничений, обусловленных как правило большой
размерностью задачи, что предъявляет к алгоритмам оптимизации следующие
требования:
– ограничения по памяти; если производится оптимизация по n
переменным, а алгоритм требует затрат порядка 2n , то его нельзя применить
для обучения НС, желательна линейная зависимость объема памяти от числа
оптимизируемых переменных, т. е. ν = сn, где ν – объем памяти, с – некоторый
коэффициент;
– организация НС предопределяет возможность параллельного
выполнения вычислительных операций по каждой связи вход-выход, поэтому
целесообразна организация процедур обучения параллельных вычислений, что
может значительно снизить время обучения НС.
Необходимо также учитывать следующие обстоятельства. Согласно
теореме Геделя о неполноте, никакая система не может быть логически
замкнутой: всегда можно найти такую теорему, для доказательства которой
потребуется внешнее дополнение. Поэтому критерии выбора модели сложных
объектов необходимо разделять на внутренние и внешние.
Внутренние
критерии
вычисляются
на
основе
результатов
экспериментирования с моделью объекта путем подачи на вход сети
некоторого входного вектора и фиксации эталонного выходного на ее выходе.
При обучении НС на основе примеров (пар) из обучающего множества
вычисляется среднеквадратичная (или средняя квадратичная ошибка) обучения
Е, которая является внутренним критерием. В этом случае ошибка называется
ошибкой обучения.
Для оценки полученной ошибки обучения необходимо использовать
внешний критерий, которым является ошибка обобщения Еob, вычисляемая по
проверочной (тестовой) выборке.
Основная цель обучения НС – создание модели объекта, обладающей
свойством непротиворечивости, т. е. такой, в которой ошибка обобщения
сохраняется на приемлемом уровне при реализации отображения не только
для примеров исходного множества пар (Х, Y), но и для всего множества
возможных входных векторов.
Таким образом, если ставится задача синтеза НС для отображения
зависимости F: X→Y с наименьшей ошибкой обучения, то для получения
объективного результата проводится разделение исходных данных на две
части, называемые обучающей и тестовой выборкой. Критерием правильности
окончательных результатов является среднеквадратичная ошибка обобщения,
вычисленная по тестовой выборке. Так создается первое внешнее дополнение.
Если ставится задача оптимизации разделения данных на обучающую и
проверочную части, то требуется еще одно внешнее дополнение. База данных в
этом случае разбивается на три части: обучающую, тестовую,
подтверждающую выборки. В этом случае на подтверждающей выборке
проверяется адекватность получаемого отображения F объекту с задаваемой
ошибкой обобщения.
При конструировании такого отображения задача обучения НС является
многокритериальной задачей оптимизации, поскольку необходимо найти
общую точку минимума большого числа функций. Для обучения НС
необходимо принятие гипотезы о существовании общего минимума, т. е. такой
точки в поисковом пространстве, в которой значение всех оценочных функций
по каждой связи вход-выход близки к экстремуму. Опыт, накопленный при
решении практических задач на НС показывает, что такие точки существуют.
Многокритериальность и сложность зависимости функции оценки Е от
параметров НС приводит к тому, что адаптивный рельеф (график функции
оценки) может содержать много локальных минимумов. Таким образом, при
поиске минимальной ошибки Е желательно использовать глобальные методы
оптимизации.
Кроме того, к методам оптимизации, использующимся в процедуре
обучения НС, добавляют еще следующие требования. Во время процедуры
обучения необходимо, чтобы НС могла обретать новые навыки без потери
старых, т. е. ошибка обобщения должна оставаться на приемлемом уровне. Это
означает, что в достаточно большой окрестности существования точки общего
минимума значения функции оценки Еob не должны существенно отличаться
от минимума. Иными словами, точка общего минимума должна лежать в
достаточно широкой области изменения функций оценки.
Подводя итоги вышеизложенному, можно выделить следующие
особенности, отличающие обучение НС от общих задач оптимизации:
•
большое число параметров НС;
•
необходимость обеспечения параллельности вычисления;
•
многокритериальность задачи оптимизации;
•
необходимость нахождения достаточно широкой области, в которой
значения всех минимальных функций стремятся к минимуму.
3. Выбор стратегии обучения НС
Можно выделить три основных фактора, которые влияют на выбор
наилучшей стратегии обучения: формирование последовательности подачи
входных векторов из обучающей выборки; выбор шага обучения; выбор
направления обучения.
В стандартном алгоритме обратного распространения ошибки,
основанном на методе градиентного спуска, предполагается такая
последовательность действий: решение сетью очередного примера вычисление градиента ошибки - корректировка весов - переход к следующей
задаче.
Однако после завершения обучения сети последнему примеру первые уже
забыты, и процесс обучения надо начинать сначала. При этом трудно
гарантировать сходимость подобного алгоритма. Чтобы этого избежать,
применяют усреднение градиента по всем примерам обучающей выборки. При
использовании стратегии усреднения все примеры обучающей выборки
участвуют в обучении одновременно и на равных правах.
Еще одна из возможных стратегий состоит в следующем - НС обучается
при помощи стратегии усреднения лишь некоторому множеству примеров, в
которое по мере обучения сети постепенно включаются все новые и новые
примеры. Такая стратегия в среднем в 1,5-2 раза быстрее стратегии усреднения,
однако в этом случае процесс обучения зависит от взаимного расположения
задач в обучающей выборке. Максимальное ускорение обучения достигается,
если «типовые» задачи расположены ближе к началу обучающей выборки.
Выбор величины шага имеет ключевое значение для успешной работы
обучающего алгоритма, так как от значения шага h зависит скорость
сходимости алгоритма. Так как к моменту выбора шага для следующей
итерации градиент ошибки в методе ВР уже вычислен, то можно
интерпретировать функцию ошибки как функцию шага Е(h). Тогда, учитывая,
что значение Е(h) вычислено на предыдущем шаге, можно записать следующий
алгоритм:
1. Сделать пробный шаг h, полученный на предыдущем шаге обучения и
вычислить Е(h);
2. Если E(h) > E(h0), то h:=h/4 («наказание»); переход к п. 1;
3. Если E(h) < E(h), то h:=2h («поощрение»).
Приведенный алгоритм А1 является оптимальным для стратегии, при
которой НС обучается на множестве примеров поочередно. Для повышения
качества алгоритма А1 при обучении по стратегии усреднения может быть
использован алгоритм А2:
1.
См. п. 1 в А1.
2.
Если E(h) > E(h0), то:
2.1 h1:=h/2;
2.2 если E(h1) > E(h0), то h :=h1, переход к п. 2.1;
2.3 если E(h1) < E(h0), то переход к п. 4.
3.
Если E(h) < E(h0), то:
3.1 h1=h, h:=2h1;
3.2) если E(h) < E(h1), то переход к п. 3.1;
3.3) если E(h) > E(h1), то переход к п. 4.
4.
По значениям h, h1 E(h0), E(h), Ε(h1) строим параболу и находим ее
вершину hр (из-за выбора точек h1, и h парабола всегда будет выпуклой вниз).
5.
Если E(hp) < E(h1), то искомый шаг – h1 , иначе – hp .
Алгоритм А2 позволяет повысить скорость обучения примерно в 2–3
раза, однако при его использовании возникают сложности с выводом сети из
локальных минимумов.
Наиболее важным в процедуре оптимизации является выбор направления
обучения. Последовательность действий, составляющих суть градиентных
методов, используемых в стандартном ВР: вычисление градиента - шаг вдоль
антиградиента не является единственно возможным.
Все градиентные методы основаны на использовании градиента функции
как основы для вычисления направления спуска.
Метод наискорейшего спуска. Это наиболее известный из всех
градиентных методов. Идея его заключается в следующем. Поскольку вектор
градиента указывает направление наискорейшего возрастания функции, то
минимум функции ошибки сети Е следует искать в обратном направлении,
направлении антиградиента. Алгоритм метода следующий:
1.
Вычислить текущую оценку Енов.
2.
Установить Ест = Енов.
3.
Вычислить антиградиент.
4.
Произвести очередной шаг h вдоль выбранного направления.
5.
Вычислить Енов.
6.
Если |Ест-Енов| > δ, то переход к п. 2 (δ - заданная точность
приближения к экстремуму).
7.
Конец.
Этим методом определяют только локальный минимум, в область
притяжения которого попадает начальная точка спуска. Для нахождения
глобального экстремума часто используют случайное изменение параметров
алгоритма с дальнейшим повторным обучением методом наискорейшего спуска
(мультистарт). Такая процедура в некоторых случаях позволяет найти
глобальный минимум.
ParTan – методы. Эти методы относятся к антиовражным методам. Идея
ParTan-метода состоит в том, чтобы запомнить начальную точку, из которой
совершается спуск, и выполнить некоторое число шагов оптимизации по
методу наискорейшего спуска.
Алгоритм kParTan-метода состоит из следующих шагов:
1.
Вычислить текущую оценку ошибки сети Енов.
2.
Установить Eст=Eнов.
3.
Запомнить вектор весовых коэффициентов W1.
4.
Выполнить k шагов вдоль антиградиента. Вычислить W2.
5.
Выполнить очередной шаг обучения по направлению (W1-W2).
6.
Вычислить Енов.
7.
Если |Ест-Енов| > δ, то переход к шагу 2.
8.
Конец.
В многомерном случае направление kParTan не ведет прямо в точку
минимума, но спуск в этом направлении, как правило, приводит в окрестность
минимума меньшего радиуса, чем при еще одном шаге метода наискорейшего
спуска. Для выполнения третьего шага по этому методу вычислять градиент не
требуется, что приводит к экономии времени. Для реализации данной стратегии
необходим объем памяти только для хранения одного вектора весовых
коэффициентов НС.
Квазииьютоновские методы. Идея квазиньютоновских методов с
ограниченной памятью состоит в учете информации о кривизне
минимизируемой функции, содержащейся в так называемой матрице Гессе,
причем данные относительно кривизны функции накапливаются на основе
наблюдения за изменением градиента во время итераций спуска. Матрицей
Гессе называют матрицу вторых частных производных целевой функции по
управляемым параметрам. Теория квазиньютоновских методов опирается на
возможность аппроксимации кривизны нелинейной оптимизируемой функции
без явного формирования ее матрицы Гессе. Сама матрица при этом не
хранится.
Неградиентные методы обучения
Метод покоординатного спуска. Идея этого метода состоит в том, что
если в задаче сложно или долго вычислять градиент, то можно построить
вектор, обладающий приблизительно теми же свойствами, что и градиент. Для
этого дадим малое положительное приращение первой координате вектора.
Если оценка Е при этом увеличилась, то пробуем отрицательное приращение.
Далее таким же образом поступаем со всеми остальными координатами. В
результате получаем вектор, в направлении которого оценка убывает. Для
вычисления этого вектора потребуется, как минимум, столько вычислений
функции оценки, сколько координат у вектора (в худшем случае число
вычислений в 2 раза больше числа координат). Время, используемое для
вычисления градиента при использовании алгоритма ВР, обычно оценивается
как время двух - трех вычислений функции оценки. Учитывая этот факт, можно
констатировать, что метод покоординатного спуска нецелесообразно применять
в обучении НС.
Метод Нелдера-Мида. Это наиболее быстрый неградиентный метод многомерной оптимизации. Идея метода состоит в следующем. В пространстве
оптимизируемых параметров генерируется случайная точка. Затем строится nмерный симплекс с центром в этой же точке и длиной стороны l. Далее в
каждой из вершин симплекса вычисляется значение критерия оптимизации.
Выбирается вершина с наибольшим значением критерия. Вычисляется центр
тяжести остальных п вершин. Проводится оптимизация шага в направлении от
наихудшей вершины к центру тяжести остальных вершин. Такая процедура
повторяется до тех пор, пока не окажется, что положения вершин не меняются.
Затем выбирается вершина с наилучшей оценкой и вокруг нее снова строится
симплекс с меньшими размерами (например, 1/2). Процедура продолжается до
тех пор, пока размер симплекса, который необходимо построить, не окажется
меньше заданной величины.
Основным недостатком этого метода является большая размерность
пространства параметров, что приводит к значительному увеличению времени
обучения нейронной сети.
Метод случайного поиска. Идея метода сводится к генерации случайного
вектора вместо градиента. Метод использует одномерную оптимизацию для
подбора шага. Подбор оптимального шага h состоит в том, что при наличии
направления, в котором производится спуск, задача многомерной оптимизации
в пространстве параметров сводится к одномерной - подбору шага.
Выбор эффективного обучающего алгоритма всегда включает в себя
компромисс между сложностью решаемой задачи и техническими
ограничениями
(быстродействие,
время,
цена,
объем
памяти)
инструментальной ЭВМ, на которой реализуются данные алгоритмы. Поэтому
необходимо исследовать новые алгоритмы обучения НС, позволяющие
достигать лучшей эффективности.