Оригинал материала находится здесь: http://cache.rcom.ru/~dap/nneng/nnlinks/nbdoc/training.htm

Постановка и возможные пути решения задачи обучения нейронных сетей

В процессе функционирования нейронная сеть формирует выходной сигнал Y в соответствии с входным сигналом X, реализуя некоторую функцию g: Y=g(X). Если архитектура сети задана, то вид функции g определяется значениями синаптических весов и смещений сети. Обозначим буквой G множество всех возможных функций g, соответствующих заданной архитектуре сети.

Пусть решение некоторой задачи - функция r: Y=r(X), заданная парами входных-выходных данных (X1,Y1), (X2,Y2),... (XM,YM), для которых Ym=r(Xm) (m=1,2,...,M). D - функция ошибки, показывающая для каждой из функций g степень близости к r. Решить поставленную задачу с помощью нейронной сети заданной архитектуры - это значит построить (синтезировать) функцию , подобрав параметры нейронов (синаптические веса и смещения) таким образом, чтобы функционал качества обращался в оптимум для всех пар (Xm,Ym).

Задача обучения определяется совокупностью пяти элементов:

<X,Y,r,G,D>,

где

X и Y - вход и выход соответственно;

r - функция - определяет желаемый результат обучения; в задаче обучения по примерам функция r задается парами входных-выходных данных:(X1,Y1), (X2,Y2),...(XM,YM), для которых Ym=r(Xm) (m=1,2,...,M);

G - множество функций для всех ; архитектура связей нейронной сети считается заданной до начала обучения, она определяет множество функций G;

D - функция ошибки, показывающая для каждой функции степень близости к r; обучение состоит в поиске (синтезе) функции g, оптимальной по D.

Обучение - это итерационная процедура. На каждой итерации происходит уменьшение функции ошибки. Обучение требует длительных вычислений.

Если выбраны множество обучающих примеров - пар (Xm,Ym) (m=1,2,...,M) - и способ вычисления функции ошибки D, обучение нейронной сети превращается в задачу многомерной оптимизации. Размерность задачи - от нескольких тысяч до 108.

Функция D может иметь произвольный вид. Поэтому обучение в общем случае - многоэкстремальная невыпуклая задача оптимизации.

Для решения этой задачи могут быть использованы следующие алгоритмы:

  1. Алгоритмы локальной оптимизации с вычислением частных производных первого порядка.
  2. Алгоритмы локальной оптимизации с вычислением частных производных первого и второго порядка.
  3. Стохастические алгоритмы оптимизации.
  4. Алгоритмы глобальной оптимизации.

К первой группе относятся:

Ко второй группе относятся метод Ньютона, методы оптимизации с разреженными матрицами Гессе, квазиньютоновские методы, метод Гаусса-Ньютона, метод Левенберга-Маркардта.

Стохастическими алгоритмами являются поиск в случайном направлении, имитация отжига, метод Монте-Карло (численный метод статистических испытаний).

Задачи глобальной оптимизации решаются с помощью перебора значений переменных, от которых зависит целевая функция.

Для сравнения методов обучения нейронных сетей необходимо использовать два критерия:

  1. Количество шагов алгоритма, которые необходимо выполнить для получения решения.
  2. Количество дополнительных переменных, которые потребуются для организации вычислительного процесса.

Для иллюстрации термина "дополнительные переменные" приведем следующий пример. Пусть p1 и p2 - некоторые параметры нейронной сети с заданными значениями. В процессе обучения сети по некоторому алгоритму на каждом шаге по меньшей мере два раза потребуется выполнить умножение p1*p2. Для того, чтобы выполнять указанное умножение только один раз и не тратить время на повторное умножение, используется дополнительная переменная, в которой сохраняется значение произведения после первого умножения.

Предпочтение следует отдавать тем алгоритмам, которые позволяют обучить нейронную сеть за небольшое число шагов и требуют мало дополнительных переменных. Это связано с тем, что обучение сетей производится на компьютерах с ограниченным объемом оперативной памяти и небольшой производительностью. Как правило, для обучения используются персональные компьютеры.

Пусть нейронная сеть содержит P изменяемых параметров (синаптических весов и смещений). Существует лишь две группы алгоритмов обучения, которые требуют менее 2*P дополнительных параметров и при этом дают возможность обучать нейронные сети за приемлемое число шагов. Это алгоритмы с вычислением частных производных первого порядка и (возможно) одномерной оптимизацией.

Хотя указанные алгоритмы дают возможность находить только локальные экстремумы, они могут быть использованы на практике для обучения нейронных сетей с многоэкстремальными целевыми функциями (функциями ошибки). Дело в том, что экстремумов у целевой функции, как правило не очень много. Достаточно лишь раз или два "выбить" сеть из локального минимума с большим значением целевой функции для того, чтобы в результате итераций в соответствии с алгоритмом локальной оптимизации сеть оказалась в локальном минимуме со значением целевой функции, близким к нулю. Если после нескольких попыток "выбить" сеть из локального минимума желаемого результата добиться не удается, необходимо увеличить число нейронов во всех слоях с первого по предпоследний. (Для того, чтобы "выбить" сеть из локального минимума, синаптическим весам и смещениям случайным образом присваиваются значения из заданного диапазона.)

Многочисленные эксперименты по обучению нейронных сетей показали, что совокупное использование алгоритма локальной оптимизации, процедуры "выбивания" сети из локального минимума и процедуры увеличения числа нейронов приводит к успешному обучению нейронных сетей.

Кратко опишем недостатки других алгоритмов. Стохастические алгоритмы требуют очень большого числа шагов обучения. Это делает невозможным их практическое использование для обучения нейронных сетей больших размерностей. Экспоненциальный рост сложности перебора с ростом размерности задачи в алгоритмах глобальной оптимизации при отсутствии априорной информации о характере целевой функции (функции ошибки) также делает невозможным их использование для обучения нейронных сетей больших размерностей. Метод сопряженных градиентов очень чувствителен к точности вычислений, особенно при решении задач оптимизации большой размерности. Методы, учитывающие направление антиградиента на нескольких шагах алгоритма, и методы, включающие в себя вычисление матрицы Гессе, требуют дополнительных переменных более, чем 2*P. В зависимости от способа разрежения, вычисление матрицы Гессе требует от 2*P до P2 дополнительных переменных.