Описание алгоритмов обучения
Все алгоритмы обучения сетей методом обратного распространения ошибки опираются на способность сети вычислять градиент функции ошибки по обучающим параметрам. Даже правило Хебба использует вектор псевдоградиента, вычисляемый сетью при использовании зеркального порогового элемента (см. раздел «Пороговый элемент» главы «Описание нейронных сетей»). Таким образом, акт обучения состоит из вычисления градиента и собственно обучения сети (модификации параметров сети). Однако, существует множество не градиентных методов обучения, таких, как метод покоординатного спуска, метод случайного поиска и целое семейство методов Монте-Карло. Все эти методы могут использоваться при обучении нейронных сетей, хотя, как правило, они менее эффективны, чем градиентные методы. Некоторые варианты методов обучения описаны далее в этой главе.
Поскольку обучение двойственных сетей с точки зрения используемого математического аппарата эквивалентно задаче многомерной оптимизации, то в данной главе рассмотрены только несколько методов обучения, наиболее используемых при обучении сетей. Более полное представление о методах оптимизации, допускающих использование в обучении нейронных сетей, можно получить из книг по методам оптимизации (см. например [48, 104, 143]).
Краткий обзор макрокоманд учителя
При описании методов используется набор макросов, приведенный в табл. 2. В табл. 2 дано пояснение выполняемых макросами действий. Все макрокоманды могут оперировать с данными как пространства параметров, так и пространства входных сигналов сети. В первой части главы полагается, что объект обучения установлен заранее. В макросах используются понятия и аргументы, приведенные в табл. 1. Список макрокоманд приведен в табл. 2.
Таблица 1. Понятия и аргументы макрокоманд, используемых при описании учителя
Название Смысл Точка Точка в пространстве параметров или входных сигналов. Аналогична вектору. Вектор Вектор в пространстве параметров или входных сигналов. Аналогичен точке. Вектор_минимумов Вектор минимальных значений параметров или входных сигналов. Вектор_максимумов Вектор максимальных значений параметров или входных сигналов. Указатель_на_вектор Адрес вектора. Используется для передачи векторов в макрокоманды. Пустой_указатель Указатель на отсутствующий вектор.При описании методов обучения все аргументы имеют тип, определяемый типом аргумента макрокоманды. Если в описании макрокоманды в табл. 2 тип аргумента не соответствует ни одному из типов, приведенных в табл. 1, то эти аргументы имеют числовой тип.
Таблица 2. Список макрокоманд, используемых для описания учителя
Название Аргументы (типы) Выполняемые действия Модификация_вектора Указатель_на_вектор Старый_Шаг Новый_Шаг Генерирует запрос на модификацию вектора (см. раздел «Провести обучение (Modify)»). Вычислить_градиент Вычисляет градиент функции оценки. Установить_параметры Указатель_на_вектор Скопировать вектор, указанный в аргументе, в текущий вектор. Создать_вектор Указатель_на_вектор Создает экземпляр вектора с неопределенными значениями. Адрес вектора помещается в аргумент. Освободить_вектор Указатель_на_вектор Освобождает память занятую вектором, расположенным по адресу Указатель_на_вектор. Случайный_вектор Указатель_на_вектор В векторе, на который указывает Указатель_на_вектор, генерируется вектор, каждая из координат которого является случайной величиной, равномерно распределенной на интервале между значениями соответствующих координат векторов Вектор_минимумов и Вектор_максимумов. Оптимизация_шага Указатель_на_вектор Начальный_Шаг Производит подбор оптимального шага (см. рис. 3). Сохранить_вектор Указатель_на_вектор Скопировать текущий вектор в вектор, указанный в аргументе. Вычислить_оценку Оценка Вычисляет оценку текущего вектора. Вычисленную величину складывает в аргумент Оценка.
Неградиентные методы обучения
Среди неградиентных методов рассмотрим следующие методы, каждый из которых является представителем целого семейства методов оптимизации: