Нейрокомпьютерные системы

          

Кубические модели нейронов


Вектор

Нейрокомпьютерные системы
входных двоичных сигналов рассматривается как адрес ячейки памяти, содержимое которой равно 0 или 1. Для размерности
Нейрокомпьютерные системы

вектора

Нейрокомпьютерные системы

существует

Нейрокомпьютерные системы
возможных адресов.

Можно рассматривать ячейки памяти, как вершины

Нейрокомпьютерные системы
-мерного гиперкуба. Ячейки памяти получают значения независимо друг от друга. Полезно рассматривать ячейки памяти как содержащие поляризованные двоичные значения
Нейрокомпьютерные системы
. Тогда работа кубического модуля описывается следующим образом.

Двоичный вход

Нейрокомпьютерные системы
используется как адрес памяти, поляризованная двоичная величина считывается и конвертируется в неполяризованную форму функцией
Нейрокомпьютерные системы
(см. формулу 1). Обозначим значения по адресу
Нейрокомпьютерные системы

через

Нейрокомпьютерные системы
, так что
Нейрокомпьютерные системы
. Такие модули мы будем называть кубическими, чтобы подчеркнуть геометрическое представление множества адресов значений активации как множество вершин гиперкуба.



Модель нейрона Хебба


Структурная схема нейрона Хебба соответствует стандартной форме модели нейрона (рис.1). Д.Хебб предложил формальное правило, в котором вес

Нейрокомпьютерные системы
нейрона изменяется пропорционально произведению его входного и выходного сигналов

Нейрокомпьютерные системы

где

Нейрокомпьютерные системы
- коэффициент обучения.

При обучении с учителем вместо выходного сигнала

Нейрокомпьютерные системы
используется ожидаемая от этого нейрона реакция
Нейрокомпьютерные системы
. В этом случае правило Хебба записывается в виде

Нейрокомпьютерные системы

В каждом цикле обучения происходит суммирование текущего значения веса и его приращения

Нейрокомпьютерные системы
:

Нейрокомпьютерные системы

В результате применения правила Хебба веса нейрона могут принимать произвольно большие значения. Один из способов стабилизации процесса обучения по правилу Хебба состоит в учете последнего значения

Нейрокомпьютерные системы
, уменьшенного на коэффициент забывания
Нейрокомпьютерные системы
. При этом правило Хебба представляется в виде

Нейрокомпьютерные системы

Значение

Нейрокомпьютерные системы
выбирается из интервала (0,1) и чаще всего составляет некоторый процент от коэффициента обучения
Нейрокомпьютерные системы
. Рекомендуемые значения коэффициента забывания -
Нейрокомпьютерные системы
, при которых нейрон сохраняет большую часть информации, накопленной в процессе обучения, и получает возможность стабилизировать значения весов на определенном уровне.



Нейрон с квадратичным сумматором


Квадратичный сумматор может вычислять произвольный полином второго порядка от вектора входных сигналов

Нейрокомпьютерные системы

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

если

Нейрокомпьютерные системы
то объект принадлежит первому классу;

если

Нейрокомпьютерные системы
то объект принадлежит второму классу (при условии правильного выбора коэффициентов Q(x)).

Квадратичная ошибка здесь определяется как

Нейрокомпьютерные системы

Коэффициенты квадратичного сумматора уточняются по формулам

Нейрокомпьютерные системы

Недостаток такого классификатора - большое число настраиваемых параметров.



Нейрон типа "адалайн"


В нейроне типа "адалайн" (ADAptive LInear Neuron - адаптивный линейный нейрон) адаптивный подбор весовых коэффициентов осуществляется в процессе минимизации квадратичной ошибки, определяемой как

Нейрокомпьютерные системы

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

Нейрокомпьютерные системы



Нейроны типа WTA


Нейроны типа WTA (Winner Takes All — "Победитель получает все") имеют входной модуль в виде адаптивного сумматора. Выходной сигнал

Нейрокомпьютерные системы
-го сумматора определяется по формуле

Нейрокомпьютерные системы

По результатам сравнения сигналов

Нейрокомпьютерные системы

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

Нейрокомпьютерные системы
оказался наибольшим. Нейрон-победитель вырабатывает на своем выходе состояние 1, а остальные (проигравшие) нейроны переходят в состояние 0.

Для обучения нейронов WTA учитель не требуется. На начальном этапе случайным образом выбираются весовые коэффициенты

Нейрокомпьютерные системы
каждого нейрона, нормализуемые относительно 1 по формуле

Нейрокомпьютерные системы

После подачи входного вектора

Нейрокомпьютерные системы
, компоненты которого нормализованы по формуле

Нейрокомпьютерные системы

определяется победитель этапа. Победитель переходит в состояние 1, что позволяет произвести уточнение весов его входных линий

Нейрокомпьютерные системы
по правилу

Нейрокомпьютерные системы

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

Выходной сигнал

Нейрокомпьютерные системы
-го нейрона может быть описан векторным отношением

Нейрокомпьютерные системы

Поскольку

Нейрокомпьютерные системы
, значение
Нейрокомпьютерные системы

определяется углом между векторами

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

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



Обучение кубических нейронов


Кубические нейроны обучаются путем изменения содержимого ячейки их памяти. Обозначим через `+' операцию инкремента-установки содержимого ячейки в +1, через `-' операцию декремента-установки в -1.

Пусть в начальном состоянии все ячейки кубического нейрона установлены в ноль. Обозначим ячейки, адресуемые обучающей выборкой, как центральные ячейки или центры. Ячейки, близкие к центрам в смысле расстояния Хемминга, будем настраивать на те же или близкие к ним значения, что и сами центры, т.е. должна происходить кластеризация значений ячейки вокруг центра. Это условие должно выполнятся для сети из кубических нейронов. Алгоритм обучения строит так называемое разбиение Вороного, при котором значение в ячейке определяется значением в ближайшем центре, а ячейки, равноудаленные от центров, остаются установленными в ноль. Кубические нейроны допускают большую функциональность, чем полулинейные, и поэтому, возможно, позволяют решать те же задачи при меньшем количестве модулей.



Паде-нейрон


Паде-нейрон вычисляет произвольную дробно-линейную функцию вектора

Нейрокомпьютерные системы
. Так же, как и для адаптивного сумматора, числитель и знаменатель можно сделать линейными функциями
Нейрокомпьютерные системы
:

Нейрокомпьютерные системы

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

В случае Паде-нейрона квадратичная ошибка определяется как

Нейрокомпьютерные системы

и значения весовых коэффициентов уточняются по следующим формулам

Нейрокомпьютерные системы



Персептрон


Простой персептрон — это нейрон МакКаллока-Питса (рис.1). Весовые коэффициенты входов сумматора, на которые подаются входные сигналы

Нейрокомпьютерные системы
обозначаются
Нейрокомпьютерные системы
, а пороговое значение —
Нейрокомпьютерные системы
. Нелинейная функция активации
Нейрокомпьютерные системы

персептрона является ступенчатой, вследствие чего выходной сигнал нейрона может принимать только два значения — 0 и 1 в соответствии с правилом

Нейрокомпьютерные системы

(1)

или -1 и 1 в соответствии с правилом

Нейрокомпьютерные системы

(2)

где

Нейрокомпьютерные системы
обозначает выходной сигнал сумматора

Нейрокомпьютерные системы

(3)

В формуле (3) предполагается

Нейрокомпьютерные системы
.

Нейрокомпьютерные системы

Рис. 1.  Нейрон МакКаллока-Питтса

Обучение персептрона состоит в таком подборе весов

Нейрокомпьютерные системы
, чтобы выходной сигнал
Нейрокомпьютерные системы
совпадал с заданным значением
Нейрокомпьютерные системы
или
Нейрокомпьютерные системы
.

С персептроном связана задача четкого разделения двух классов по обучающей выборке, которая ставится следующим образом: имеется два набора векторов

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



Сигма-Пи нейроны


Выше были рассмотрены нейроны с линейной и квадратичной функциями активации. Сигма-пи нейроны являются их обобщением на случай представления функции активации u полиномом степени

Нейрокомпьютерные системы
,
Нейрокомпьютерные системы
- число входов нейрона:

Нейрокомпьютерные системы

где

Нейрокомпьютерные системы
- множество индексов, содержащее одну из возможных
Нейрокомпьютерные системы

комбинаций первых

Нейрокомпьютерные системы
целых чисел,
Нейрокомпьютерные системы



Сигмоидальный нейрон


Нейрон сигмоидального типа имеет структуру, подобную модели МакКаллока-Питса, с той разницей, что функция активации является непрерывной и может быть выражена в виде сигмоидальной униполярной или биполярной функции. Униполярная функция, как правило, представляется формулой (рис.2)

Нейрокомпьютерные системы

Нейрокомпьютерные системы

Рис. 2.  Униполярная функция (? =1)

тогда как биполярная функция задается в виде (рис.3)

Нейрокомпьютерные системы

Нейрокомпьютерные системы

Рис. 3.  Биполярная функция (?=1)

Параметр

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

Важным свойством сигмоидальной функции является ее дифференцируемость. Для униполярной функции имеем

Нейрокомпьютерные системы

тогда как для биполярной функции

Нейрокомпьютерные системы

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

Нейрокомпьютерные системы

проводится в направлении отрицательного градиента целевой функции

Нейрокомпьютерные системы
, где

Нейрокомпьютерные системы

Компонента градиента имеет вид

Нейрокомпьютерные системы

где

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

Нейрокомпьютерные системы

Значения весовых коэффициентов уточняются по формуле

Нейрокомпьютерные системы

где

Нейрокомпьютерные системы
.

Применение градиентного метода для обучения нейрона гарантирует достижение только локального минимума. Для выхода из окрестности локального минимума результативным может оказаться обучение с моментом. В этом методе процесс уточнения весов определяется не только информацией о градиенте функции, но и предыдущим изменением весов. Подобный способ может быть задан выражением

Нейрокомпьютерные системы

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

Нейрокомпьютерные системы

выбирается из интервала (0,1).



Стохастическая модель нейрона


В стохастической модели выходное состояние нейрона зависит не только от взвешенной суммы входных сигналов, но и от некоторой случайной переменной, значения которой выбираются при каждой реализации из интервала (0,1).

В стохастической модели нейрона выходной сигнал

Нейрокомпьютерные системы
принимает значения
Нейрокомпьютерные системы
с вероятностью

Нейрокомпьютерные системы

где

Нейрокомпьютерные системы
обозначает взвешенную сумму входных сигналов нейрона, а
Нейрокомпьютерные системы

- положительная константа, которая чаще всего равна 1. Процесс обучения нейрона в стохастической модели состоит из следующих этапов:

1) расчет взвешенной суммы

Нейрокомпьютерные системы

для каждого нейрона сети.

2) расчет вероятности

Нейрокомпьютерные системы
того, что
Нейрокомпьютерные системы
принимает значение
Нейрокомпьютерные системы
.

3) генерация значения случайной переменной

Нейрокомпьютерные системы
и формирование выходного сигнала
Нейрокомпьютерные системы
, если
Нейрокомпьютерные системы
, или
Нейрокомпьютерные системы
в противном случае.

При обучении с учителем по правилу Видроу-Хоффа адаптация весов проводится по формуле

Нейрокомпьютерные системы



Запись активации в замкнутой форме


Рассмотрим двухвходовый кубический модуль. Существует 4 значения активации

Нейрокомпьютерные системы
. Выражение для активации будет иметь следующий вид:

Нейрокомпьютерные системы

Нейрокомпьютерные системы
- входной вектор. Такая запись вызвана тем, что только одно из произведений в сумме должно быть ненулевым. Для поляризованных входов
Нейрокомпьютерные системы
и
Нейрокомпьютерные системы
активация

Нейрокомпьютерные системы

В случае

Нейрокомпьютерные системы
- входового модуля получим

Нейрокомпьютерные системы



Алгоритм обучения персептрона по отдельным примерам


1. При изначально заданных значениях весов

Нейрокомпьютерные системы
на вход нейрона подается обучающий вектор
Нейрокомпьютерные системы
и рассчитывается значение выходного сигнала
Нейрокомпьютерные системы
. По результатам сравнения
Нейрокомпьютерные системы
с
Нейрокомпьютерные системы
уточняются значения весов.

2. Если

Нейрокомпьютерные системы
, то
Нейрокомпьютерные системы
не изменяются.

3. Если

Нейрокомпьютерные системы
, а
Нейрокомпьютерные системы
, то значения весов уточняются по формуле

Нейрокомпьютерные системы

где

Нейрокомпьютерные системы
— коэффициент обучения,
Нейрокомпьютерные системы
— номер предыдущего цикла.

4. Если

Нейрокомпьютерные системы
, а
Нейрокомпьютерные системы
, то значения весов уточняются по формуле

Нейрокомпьютерные системы

В обобщенной форме обучение персептрона на векторе

Нейрокомпьютерные системы

выражается формулой

Нейрокомпьютерные системы

По завершении уточнения весовых коэффициентов представляются очередной обучающий вектор

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



Геометрическая интерпретация линейного разделения классов


Пусть в нейроне в качестве функции активации используется ступенчатая функция (см. формулу (1) Лекции 2). Линейное разделяющее правило делит входное пространство на две части гиперплоскостью, классифицируя входные векторы как относящиеся к 1-му классу (выходной сигнал - 1) или 2-му классу (выходной сигнал - 0). Критическое условие классификации (уравнение разделяющей гиперплоскости)

Нейрокомпьютерные системы

В {

Нейрокомпьютерные системы
}-мерном пространстве (пространстве входных сигналов) разделяющая гиперплоскость перпендикулярна вектору
Нейрокомпьютерные системы
. Вектор входных сигналов
Нейрокомпьютерные системы
дает выход
Нейрокомпьютерные системы
, если его проекция
Нейрокомпьютерные системы

на вектор

Нейрокомпьютерные системы
больше, чем расстояние
Нейрокомпьютерные системы
от нуля до гиперплоскости. В
Нейрокомпьютерные системы
-мерном (расширенном) пространстве гиперплоскость, описываемая уравнением
Нейрокомпьютерные системы
, ортогональна вектору
Нейрокомпьютерные системы
и проходит через начало координат пространства признаков (образов).

Пример

В двухмерном пространстве входных сигналов уравнение гиперплоскости имеет вид

Нейрокомпьютерные системы

При

Нейрокомпьютерные системы
и
Нейрокомпьютерные системы
получаем уравнение
Нейрокомпьютерные системы

гиперплоскости, которая представлена на рис.1 пунктирной линией, пересекающей оси координат в точках (1.5, 0) и (0, 1.5) соответственно. Здесь:

Нейрокомпьютерные системы
— нормаль к разделяющей гиперплоскости;
Нейрокомпьютерные системы
— вектор, относящийся к первому классу, поскольку проекция
Нейрокомпьютерные системы
вектора
Нейрокомпьютерные системы
на нормаль
Нейрокомпьютерные системы

больше

Нейрокомпьютерные системы
;
Нейрокомпьютерные системы
— вектор, относящийся ко второму классу, поскольку
Нейрокомпьютерные системы
.

Нейрокомпьютерные системы

Рис. 1. 



Линейное разделение классов


состоит в построении линейного решающего правила, т.е. такого вектора

Нейрокомпьютерные системы
, где
Нейрокомпьютерные системы

— порог, что при

Нейрокомпьютерные системы
вектор
Нейрокомпьютерные системы
относится к первому классу, а при
Нейрокомпьютерные системы

— ко второму.

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

Нейрокомпьютерные системы

где

Нейрокомпьютерные системы
,
Нейрокомпьютерные системы
относятся к первому классу, а
Нейрокомпьютерные системы
- ко второму.

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



Настройка весового вектора


Мы требуем, чтобы вектор весов в расширенном пространстве был ортогонален решающей гиперплоскости, и плоскость проходила через начало координат. Обучающую выборку (задачник) для нейрона можно рассматривать как множество пар

Нейрокомпьютерные системы
, где
Нейрокомпьютерные системы
- входной вектор,
Нейрокомпьютерные системы
- класс (выход, принимающий одно из двух значений, например, 0 или 1), которому принадлежит
Нейрокомпьютерные системы
. Такой тип обучения называется обучением с учителем, т.к. мы сообщаем сети, каким должен быть выходной сигнал для каждого вектора входных сигналов.

Пусть для некоторого

Нейрокомпьютерные системы
выполняется
Нейрокомпьютерные системы
, но выход сети

Нейрокомпьютерные системы

где

Нейрокомпьютерные системы
при
Нейрокомпьютерные системы
, и
Нейрокомпьютерные системы
при
Нейрокомпьютерные системы
, т.е.
Нейрокомпьютерные системы
(угол
Нейрокомпьютерные системы

на рис.2 между векторами

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

Нейрокомпьютерные системы

Предположим теперь, что

Нейрокомпьютерные системы
, а
Нейрокомпьютерные системы
(угол
Нейрокомпьютерные системы
на рис.2 между векторами
Нейрокомпьютерные системы
и
Нейрокомпьютерные системы
меньше
Нейрокомпьютерные системы
). Теперь нужно увеличить угол между
Нейрокомпьютерные системы
и
Нейрокомпьютерные системы
, что получается путем вычитания части
Нейрокомпьютерные системы

из

Нейрокомпьютерные системы
:

Нейрокомпьютерные системы

Нейрокомпьютерные системы

увеличить изображение
Рис. 2.  Настройка вектора весов

Результирующая запись имеет вид:

Нейрокомпьютерные системы

Параметр

Нейрокомпьютерные системы
называется скоростью обучения.

Алгоритм обучения нейрона (персептрона) будет иметь вид:

repeat for

Нейрокомпьютерные системы

begin y = h[(W,V)];

Нейрокомпьютерные системы

end until

Нейрокомпьютерные системы



Обучение по всему задачнику


Построим обучающую выборку

Нейрокомпьютерные системы

В обучающей выборке выделяются все

Нейрокомпьютерные системы
, для которых не выполняется неравенство
Нейрокомпьютерные системы
, где
Нейрокомпьютерные системы
— вектор весовых коэффициентов нейрона. Обозначим это множество через Err. Вектор
Нейрокомпьютерные системы

модифицируется только после проверки всей обучающей выборки:

Нейрокомпьютерные системы

Не требуется хранить все множество Err - достаточно накапливать сумму тех

Нейрокомпьютерные системы
, на которых персептрон ошибается:

Нейрокомпьютерные системы

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



Промежуточный вариант: обучение по страницам


Обучающее множество разбивается на подмножества (страницы) и задается последовательность прохождения страниц: столько-то циклов по первой странице, потом столько-то по второй и т. д. Коррекция вектора

Нейрокомпьютерные системы
проводится после прохождения страницы. Задачник разбивается на страницы по различным эвристическим правилам, например, по правилу "от простого к сложному". Как показывает практика, чаще всего наилучшим является обучение по всему задачнику, иногда (при большом задачнике) - обучение по страницам, размеры которых определяются объемом доступной оперативной памяти.



Метод максимума правдоподобия


Рассмотрим задачу разделения двух классов, с каждым из которых связано вероятностное распределение в пространстве векторов

Нейрокомпьютерные системы
значений признаков. Будем обозначать плотности этих распределений
Нейрокомпьютерные системы
- событие, состоящее в том, что объект принадлежит {
Нейрокомпьютерные системы
}-му классу. Нас интересует апостериорная вероятность:
Нейрокомпьютерные системы
— вероятность принадлежности объекта к {
Нейрокомпьютерные системы
}-му классу при условии, что он характеризуется вектором признаков
Нейрокомпьютерные системы
. Известная из теории вероятности формула Байеса дает

Нейрокомпьютерные системы

" width="352" height="47">

где

Нейрокомпьютерные системы
— вероятность появления объектов {
Нейрокомпьютерные системы
}-го класса. Для нормальных
Нейрокомпьютерные системы
-мерных распределений

Нейрокомпьютерные системы

где

Нейрокомпьютерные системы
— математическое ожидание
Нейрокомпьютерные системы
в {
Нейрокомпьютерные системы
}-м классе, {
Нейрокомпьютерные системы
} — ковариационная матрица для {
Нейрокомпьютерные системы
}-го класса. В результате обработки данных находят статистические оценки {
Нейрокомпьютерные системы
} и
Нейрокомпьютерные системы
: пусть для {
Нейрокомпьютерные системы
}-го класса имеются векторы
Нейрокомпьютерные системы
, тогда полагаем

Нейрокомпьютерные системы

Минимизация в формуле Байеса дает простое решающее правило:

Нейрокомпьютерные системы

принадлежит

Нейрокомпьютерные системы
-му классу, если
Нейрокомпьютерные системы

для всех

Нейрокомпьютерные системы
, т.е выбирается такой класс, для которого вероятность
Нейрокомпьютерные системы
максимальна. Поскольку в формуле Байеса для всех
Нейрокомпьютерные системы

знаменатель общий, то решающее правило приобретает следующий вид: выбираем то

Нейрокомпьютерные системы
, для которого
Нейрокомпьютерные системы
максимально. Для нормального распределения удобно прологарифмировать эту величину. Окончательно получаем:

Нейрокомпьютерные системы
принадлежит
Нейрокомпьютерные системы
-му классу, если среди величин

Нейрокомпьютерные системы

величина

Нейрокомпьютерные системы
- максимальная. Таким образом, разделяющей является поверхность второго порядка, а операцию разделения на два класса выполняет квадратичный адаптивный сумматор в комбинации с пороговым нелинейным элементом. Пороговый элемент вычисляет ступенчатую функцию
Нейрокомпьютерные системы
, в результате для первого класса получим ответ 1, для второго - 0.



Нейрофизиологическая аналогия


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

Нейрокомпьютерные системы
-го нейрона, в величину веса
Нейрокомпьютерные системы
-го сигнала
Нейрокомпьютерные системы
-го нейрона. Снабдив такое произведение весом
Нейрокомпьютерные системы
— "коэффициентом индукции", получим рассматриваемую архитектуру

Нейрокомпьютерные системы

где

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



Реализация булевых функций нейронными сетями


Простой персептрон (нейрон МакКаллока-Питса) с весовым вектором

Нейрокомпьютерные системы
реализует гиперплоскость

Нейрокомпьютерные системы

и булеву функцию ИЛИ от двух аргументов

Нейрокомпьютерные системы
и
Нейрокомпьютерные системы
, каждый из которых может быть нулем или единицей. При
Нейрокомпьютерные системы
персептрон реализует гиперплоскость

Нейрокомпьютерные системы

и булеву функцию И. Однако, персептрон не может воспроизвести даже такую простую функцию как ИСКЛЮЧАЮЩЕЕ ИЛИ. Она принимает значение единицы, когда один из аргументов равен единице (но не оба) (табл.1).

Таблица 1. Булева функция ИСКЛЮЧАЮЩЕЕ ИЛИ

Нейрокомпьютерные системы
Нейрокомпьютерные системы
Нейрокомпьютерные системы
000
011
101
110

Эту функцию реализует двухслойная нейронная сеть, представленная на рис.1 (сигнал

Нейрокомпьютерные системы
не указан). Первый слой такой сети состоит из двух нейронов, каждый из которых реализует разделяющую гиперплоскость в двумерном пространстве входных данных. Первая гиперплоскость описывается уравнением

Нейрокомпьютерные системы

а вторая - уравнением

Нейрокомпьютерные системы

Соответствующие векторы весов имеют вид

Нейрокомпьютерные системы
и
Нейрокомпьютерные системы
. Нейрон во втором слое реализует функцию И от двух выходных сигналов нейронов первого слоя.

Нейрокомпьютерные системы

Рис. 1.  Двухслойная сеть, реализующая функцию ИСКЛЮЧАЮЩЕЕ ИЛИ

Нейрокомпьютерные системы

Рис. 2.  Гиперплоскости, реализующие функцию ИСКЛЮЧАЮЩЕЕ ИЛИ

Выходным сигналом сети будет 1, если входные сигналы сети соответствуют точкам пространства входных сигналов, расположенным между вышеуказанными гиперплоскостями, т.е. точкам (0,1) и (1,0) (рис.2).



Выделение невыпуклых областей


Точки, не составляющие выпуклой области, не могут быть отделены от других точек пространства двухслойной сетью. Нейрон второго слоя не ограничен функцией И. Трехслойная сеть является более общей. Ограничения на выпуклость отсутствуют. Нейрон третьего слоя принимает в качестве входа набор выпуклых многоугольников, и их логическая комбинация может быть невыпуклой.

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

На рис.5 приведен пример выделения невыпуклой области, представленной в виде объединения двух треугольных областей. Пять нейронов первого слоя реализуют разделяющие гиперплоскости, два нейрона второго слоя реализуют трехвходовые функции И, нейрон третьего слоя реализует функцию ИЛИ. Весовые векторы, описывающие соответствующие гиперплоскости, имеют вид:

Нейрокомпьютерные системы
Нейрокомпьютерные системы

Нейрокомпьютерные системы

увеличить изображение
Рис. 5.  Пример выделения невыпуклой области



Выделение выпуклых областей


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

Выше приведен пример выделения выпуклой области двумя гиперплоскостями (реализация функции ИСКЛЮЧАЮЩЕЕ ИЛИ). Аналогично в первом слое может быть использовано 3 нейрона с дальнейшим разбиением плоскости и созданием области треугольной формы (на рис. 3, 4,

Нейрокомпьютерные системы
, входы с нулевыми весами не указаны).

Включением достаточного числа нейронов во входной слой может быть образован выпуклый многоугольник (многогранник) желаемой формы. Так как такие многогранники образованы с помощью операций И над областями, задаваемыми разделяющими линиями (гиперплоскостями единичной размерности), то все они выпуклы.

Нейрокомпьютерные системы

Рис. 3.  Гиперплоскости, выделяющие на плоскости выпуклую (треугольную) область

Нейрокомпьютерные системы

Рис. 4.  Нейронная сеть, выделяющая на плоскости выпуклую (треугольную) область



Функционирование сетей


Сети периодического функционирования. Простейшие представления об этих сетях таковы.

В начальный момент состояния всех нейронов одинаковы, выходных сигналов нет. Подаются входные сигналы, определяющие активность сети (нулевой такт). Далее входные сигналы могут подаваться на каждом такте функционирования. На каждом такте могут сниматься выходные сигналы. После

Нейрокомпьютерные системы
тактов цикл функционирования заканчивается, и сеть возвращается в исходное состояние, готовая к новому циклу (акту). Между актами функционирования могут вставляться акты обучения. В общем случае, в результате цикла из
Нейрокомпьютерные системы
тактов нейронная сеть выдает в ответ на последовательность из
Нейрокомпьютерные системы
наборов входных сигналов последовательность
Нейрокомпьютерные системы
наборов выходных сигналов. Чаще используется упрощенный вариант: входные сигналы подаются только в самом начале, выходные снимаются в самом конце.

Для слоистых и слоисто-полносвязных сетей начальные слои по мере срабатывания освобождаются и могут заниматься новой задачей, пока последние слои заканчивают работу над предыдущей. Сети периодического функционирования по характеру использования напоминают ЭВМ: на вопрос следует ответ, причем воспроизводимый. Иначе обстоит дело с сетями непрерывного функционирования.

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



Интерпретация ответов сети


При интерпретации выходных сигналов сети необходимы аккуратность и порой изобретательность, ведь от этого истолкования зависят требования, которые мы предъявляем к работе НС. Удачная их формулировка может упростить обучение и повысить точность работы, неудачная — свести на нет предыдущие усилия.

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

Нейрокомпьютерные системы
(или
Нейрокомпьютерные системы
). Если нам нужно получить сигнал в интервале
Нейрокомпьютерные системы
, то нужно преобразовать выходной сигнал
Нейрокомпьютерные системы
:

Нейрокомпьютерные системы

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

Знаковая интерпретация требует только

Нейрокомпьютерные системы
нейронов (
Нейрокомпьютерные системы
- число классов). Строится она так. Пусть
Нейрокомпьютерные системы
- совокупность выходных сигналов нейронов. Заменим в этой последовательности положительные числа единицами, а отрицательные - нулями. Полученную последовательность нулей и единиц рассматриваем как номер класса в двоичной записи.

Порядковая интерпретация является еще более емкой, чем знаковая. В ней с помощью

Нейрокомпьютерные системы
нейронов можно описать принадлежность к
Нейрокомпьютерные системы

классам (а не

Нейрокомпьютерные системы
как для знаковой). Пусть
Нейрокомпьютерные системы
- выходные сигналы. Проведем их сортировку и обозначим через
Нейрокомпьютерные системы
номер
Нейрокомпьютерные системы
-го сигнала после сортировки (1 соответствует наименьшему сигналу,
Нейрокомпьютерные системы

- наибольшему). Перестановку

Нейрокомпьютерные системы
рассмотрим как слово, кодирующее номер класса. Всего возможно
Нейрокомпьютерные системы
перестановок. Этим интерпретатором можно пользоваться, если характерная ошибка выходного сигнала меньше
Нейрокомпьютерные системы
. Даже при
Нейрокомпьютерные системы
получаем реализуемые требования к точности
Нейрокомпьютерные системы
и богатые возможности (10! классов).



Константа Липшица сигмоидальной сети


Рассмотрим слоистую сигмоидальную сеть (сеть с сигмоидальными нейронами) со следующими свойствами:

Число входных сигналов -

Нейрокомпьютерные системы
.Число нейронов в
Нейрокомпьютерные системы
-м слое -
Нейрокомпьютерные системы
.Каждый нейрон первого слоя получает все входные сигналы, а каждый нейрон любого другого слоя получает сигналы всех нейронов предыдущего слоя.Все нейроны всех слоев имеют одинаковые функции активации
Нейрокомпьютерные системы
.Все синаптические веса ограничены по модулю единицей.В сети
Нейрокомпьютерные системы
слоев.

В этом случае оценка константы Липшица сети равна:

Нейрокомпьютерные системы

(2)

Формула (2) подтверждает экспериментально установленный факт, что, чем круче характеристическая функция нейрона (т.е. чем больше

Нейрокомпьютерные системы
), тем более сложные функции (функции с большей константой Липшица) может аппроксимировать сеть с такими нейронами.



Настройка нейронных сетей для решения задач


Тема данного раздела - формирование нейронных сетей для решения задач. Прежде чем приступить к поиску параметров сети, нужно поставить задачу, т.е. ответить на вопросы:

Какие сигналы сеть будет получать?Как мы будем интерпретировать сигналы, поступающие от сети?Как мы будем оценивать работу сети, если сеть обучается путем минимизации ошибок (т.е. что такое вектор ошибок и как вычисляется целевая функция — оценка функционирования сети)?

Ответы на данные вопросы воплощаются в спецустройствах или программах: в предобработчике, интерпретаторе ответов, оценке.

Итак, прежде чем формировать сеть, необходимо создать её окружение. В процессе обучения, кроме того, используются:

Обучающая выборка (система, работающая с исходными данными);Учитель, модифицирующий параметры сети;Контрастер (система, упрощающая нейронную сеть).



Оценка способности сети решить задачу


В данном разделе рассматриваются только сети, все элементы которых непрерывно зависят от своих аргументов. Предполагается, что все входные данные предобработаны так, чтобы все входные и выходные сигналы сети лежали в диапазоне приемлемых входных сигналов

Нейрокомпьютерные системы
.

Нейронная сеть вычисляет некоторую вектор-функцию

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

Нейрокомпьютерные системы

была минимальной (в идеале равна нулю), здесь

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

на

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

Нейрокомпьютерные системы

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

Сложность аппроксимации таблично заданной функции

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

Нейрокомпьютерные системы

(1)

Оценка (1) является оценкой константы Липшица аппроксимируемой функции снизу.

Константа Липшица сети вычисляется по следующей формуле:

Нейрокомпьютерные системы

Для того, чтобы оценить способность сети заданной конфигурации решить задачу, необходимо оценить константу Липшица сети и сравнить ее с выборочной оценкой (1). В случае

Нейрокомпьютерные системы
сеть принципиально не способна решить задачу аппроксимации функции
Нейрокомпьютерные системы
. Однако из
Нейрокомпьютерные системы
еще не следует утверждение о способности сети аппроксимировать функцию
Нейрокомпьютерные системы



Предобработка данных


Нормировка и центрирование данных (предобработка) используются почти всегда (кроме тех случаев, когда данные представляют собой бинарные векторы с координатами 0,1 или

Нейрокомпьютерные системы
, либо символьные последовательности). Цель этих преобразований - сделать так, чтобы каждая компонента вектора данных лежала в отрезке
Нейрокомпьютерные системы
(или
Нейрокомпьютерные системы
) или, по крайней мере, не слишком далеко выходила из этого отрезка, и её характерный разброс тоже был бы единичным.

Стандартные преобразования исходной выборки

Нейрокомпьютерные системы
:

Нейрокомпьютерные системы
или
Нейрокомпьютерные системы
, где
Нейрокомпьютерные системы
-
Нейрокомпьютерные системы
-я компонента вектора
Нейрокомпьютерные системы
,

Нейрокомпьютерные системы
- выборочная оценка математического ожидания
Нейрокомпьютерные системы
;

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



Виды сетей


В многослойных (слоистых) сетях (рис.1) нейроны первого слоя получают входные сигналы, преобразуют их и передают нейронам второго слоя. Далее срабатывает второй слой и т.д., до

Нейрокомпьютерные системы
-ого, который выдает выходные сигналы для интерпретатора и пользователя. Если не оговорено противное, то каждый выходной сигнал
Нейрокомпьютерные системы
-го слоя подается на вход всех нейронов
Нейрокомпьютерные системы
-го. Число нейронов в каждом слое может быть любым и никак заранее не связано с количеством нейронов в других слоях. Стандартный способ подачи входных сигналов: все нейроны первого слоя получают каждый входной сигнал. Наибольшее распространение получили трехслойные сети, в которых каждый слой имеет свое наименование: первый - входной, второй - скрытый, третий - выходной.

Нейрокомпьютерные системы

увеличить изображение
Рис. 1.  Многослойная (слоистая) сеть

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

Нейрокомпьютерные системы
к блоку
Нейрокомпьютерные системы
ведут только возбуждающие связи, то это означает, что любой выходной сигнал блока
Нейрокомпьютерные системы

является монотонной неубывающей функцией любого выходного сигнала блока

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

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

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

Слоисто-полносвязные сети состоят из слоев, каждый из которых, в свою очередь, представляет собой полносвязную сеть. При функционировании сигналы передаются от слоя к слою, и происходит обмен сигналами внутри слоя. В каждом слое процесс протекает следующим образом: прием сигналов с предыдущего слоя (или входных сигналов сети), обмен сигналами внутри слоя, передача последующему слою (или на выход). Подобные сети до получения ответа функционируют определенное число тактов, соответствующее количеству слоев, так же, как и слоистые сети.

Полносвязно-слоистые сети по структуре такие же, как и предыдущие, но функционируют по-другому. В них не разделяются фазы обмена внутри слоя и передачи следующему: на каждом такте нейроны всех слоев принимают сигналы от нейронов как своего, так и предыдущего, после чего передает сигналы как внутри слоя, так и последующему (или на выход). До получения ответа подобные сети могут функционировать неограниченно долго, так же, как и полносвязные.


Алгоритм обратного распространения ошибки


Возьмем двухслойную сеть (рис. 1) (входной слой не рассматривается). Веса нейронов первого (скрытого) слоя пометим верхним индексом (1), а выходного слоя - верхним индексом (2). Выходные сигналы скрытого слоя обозначим

Нейрокомпьютерные системы
, а выходного слоя -
Нейрокомпьютерные системы
. Будем считать, что функция активации нейронов задана в сигмоидальной униполярной или биполярной форме. Для упрощения описания будем использовать расширенное обозначение входного вектора сети в виде
Нейрокомпьютерные системы
, где
Нейрокомпьютерные системы
соответствует порогу. С вектором
Нейрокомпьютерные системы
связаны два выходных вектора сети: вектор фактических выходных сигналов
Нейрокомпьютерные системы
и вектор ожидаемых выходных сигналов
Нейрокомпьютерные системы
.

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

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

Нейрокомпьютерные системы

Нейрокомпьютерные системы

Рис. 1.  Пример двухслойной нейронной сети

В выходном слое

Нейрокомпьютерные системы
-й нейрон вырабатывает выходной сигнал

Нейрокомпьютерные системы

Из формулы следует, что на значение выходного сигнала влияют веса обоих слоев, тогда как сигналы, вырабатываемые в скрытом слое, не зависят от весов выходного слоя.

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

Нейрокомпьютерные системы
примеров, целевая функция имеет вид

Нейрокомпьютерные системы

Минимизация целевой функции достигается уточнением вектора весов (обучением) по формуле

Нейрокомпьютерные системы

где

Нейрокомпьютерные системы

(1)

Нейрокомпьютерные системы
- коэффициент обучения, а
Нейрокомпьютерные системы
- направление в пространстве весов
Нейрокомпьютерные системы
. Выбор этого направления обычно основан на определении градиента целевой функции относительно весов всех слоев сети. Для весов выходного слоя задача имеет очевидное решение. Для других слоев используется алгоритм обратного распространения ошибки. Рассмотрим его на примере двухслойной сети. В этом случае при
Нейрокомпьютерные системы
целевая функция определяется выражением

Нейрокомпьютерные системы

(2)


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

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

Так, например, чтобы посчитать производную
Нейрокомпьютерные системы
, нужно перемножить величины
Нейрокомпьютерные системы
, а для вычисления производной
Нейрокомпьютерные системы
нужно посчитать произведения

Нейрокомпьютерные системы


и

Нейрокомпьютерные системы


и затем сложить эти произведения и результат умножить на
Нейрокомпьютерные системы


и
Нейрокомпьютерные системы
.

Таким образом, получим

Нейрокомпьютерные системы


Нейрокомпьютерные системы


Нейрокомпьютерные системы



Методы инициализации весов


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

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

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


Удаление стартовой точки активации нейронов от зоны насыщения достигается путем ограничения диапазона случайных значений. Почти все оценки нижней и верхней границ диапазона допустимых значений лежат в интервале (0,1). Хорошие результаты дает равномерное распределение весов, нормализованное для каждого нейрона по амплитуде
Нейрокомпьютерные системы
, где
Нейрокомпьютерные системы
означает количество входов нейрона. Веса порогов для нейронов скрытых слоев должны принимать случайные значения из интервала
Нейрокомпьютерные системы
, а для выходных нейронов - нулевые значения.


Одномерная оптимизация


Все пошаговые методы оптимизации состоят из двух важнейших частей:

выбора направления, выбора шага в данном направлении (подбор коэффициента обучения).

Методы одномерной оптимизации дают эффективный способ для выбора шага.

В простейшем случае коэффициент обучения фиксируется на весь период оптимизации. Этот способ практически используется только совместно с методом наискорейшего спуска. Величина подбирается раздельно для каждого слоя сети по формуле

Нейрокомпьютерные системы

где

Нейрокомпьютерные системы
обозначает количество входов
Нейрокомпьютерные системы
-го нейрона в слое.

Более эффективный метод основан на адаптивном подборе коэффициента

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

Нейрокомпьютерные системы

Для ускорения процесса обучения следует стремиться к непрерывному увеличению

Нейрокомпьютерные системы
при одновременном контроле прироста погрешности
Нейрокомпьютерные системы
по сравнению с ее значением на предыдущем шаге. Незначительный рост погрешности считается допустимым.

Если погрешности на

Нейрокомпьютерные системы
-1-й и
Нейрокомпьютерные системы
-й итерациях обозначить соответственно
Нейрокомпьютерные системы
и
Нейрокомпьютерные системы
, а коэффициенты обучения на этих же итерациях —
Нейрокомпьютерные системы
и
Нейрокомпьютерные системы
, то значение
Нейрокомпьютерные системы
следует рассчитывать по формуле

Нейрокомпьютерные системы

Нейрокомпьютерные системы

где

Нейрокомпьютерные системы
- коэффициент допустимого прироста погрешности,
Нейрокомпьютерные системы
- коэффициент уменьшения
Нейрокомпьютерные системы

- коэффициент увеличения

Нейрокомпьютерные системы
.

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

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

Поиск минимума основан на полиномиальной аппроксимации целевой функции. Выберем для аппроксимации многочлен второго порядка

Нейрокомпьютерные системы

где

Нейрокомпьютерные системы
,
Нейрокомпьютерные системы
и
Нейрокомпьютерные системы
— коэффициенты, определяемые в цикле оптимизации. Для расчета этих коэффициентов используем три произвольные точки
Нейрокомпьютерные системы
, лежащие в направлении
Нейрокомпьютерные системы
, т.е.

Нейрокомпьютерные системы

Соответствующие этим точкам значения целевой функции

Нейрокомпьютерные системы

обозначим как

Нейрокомпьютерные системы

(5)

Коэффициенты

Нейрокомпьютерные системы
,
Нейрокомпьютерные системы
и
Нейрокомпьютерные системы

рассчитываются в соответствии с решением системы уравнений (5).
Для определения минимума многочлена

Нейрокомпьютерные системы
его производная
Нейрокомпьютерные системы
приравнивается к нулю, что позволяет получить
Нейрокомпьютерные системы
. После подстановки выражений для
Нейрокомпьютерные системы
в формулу для
Нейрокомпьютерные системы
получаем

Нейрокомпьютерные системы


Нейрокомпьютерные системы



Одношаговый квазиньютоновский метод и сопряженные градиенты


В тех случаях, когда является положительно определенной матрица

Нейрокомпьютерные системы

вторых производных оценки

Нейрокомпьютерные системы
, наилучшим считается ньютоновское направление

Нейрокомпьютерные системы

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

Время. Поиск всех вторых производных функции

Нейрокомпьютерные системы
и обращение матрицы
Нейрокомпьютерные системы
требует больших вычислительных затрат.Память. Для решения задач большой размерности
Нейрокомпьютерные системы
требуется хранить
Нейрокомпьютерные системы
элементов матрицы
Нейрокомпьютерные системы
— это слишком много.Матрица
Нейрокомпьютерные системы
не всегда является положительно определенной.

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

Простейший и весьма эффективный метод основан на

Нейрокомпьютерные системы
формуле (Брайден-Флетчер-Гольдфард-Шанно) и использует результаты предыдущего шага. Обозначим:

Нейрокомпьютерные системы
- направление спуска на
Нейрокомпьютерные системы
-шаге;

Нейрокомпьютерные системы
- величина
Нейрокомпьютерные системы
шага (
Нейрокомпьютерные системы
-й шаг - сдвиг на
Нейрокомпьютерные системы
);

Нейрокомпьютерные системы
- градиент функции оценки в начальной точке
Нейрокомпьютерные системы
-го шага;

Нейрокомпьютерные системы
- изменение градиента в результате
Нейрокомпьютерные системы
-го шага.

Нейрокомпьютерные системы
- формула для направления спуска на
Нейрокомпьютерные системы
-м шаге имеет вид:

Нейрокомпьютерные системы

где

Нейрокомпьютерные системы
- скалярное произведение векторов
Нейрокомпьютерные системы
и
Нейрокомпьютерные системы
.

Если одномерную оптимизацию в поиске шага проводить достаточно точно, то новый градиент

Нейрокомпьютерные системы
будет практически ортогонален предыдущему направлению спуска, т.е.
Нейрокомпьютерные системы
. При этом формула для
Нейрокомпьютерные системы
упрощается:

Нейрокомпьютерные системы

Это - формула метода сопряженных градиентов (МСГ), которому требуется достаточно аккуратная одномерная оптимизация при выборе шага.

В описанных методах предполагается, что начальное направление спуска

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



Особенности задачи оптимизации, возникающей при обучении нейронных сетей


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

Нейрокомпьютерные системы
и более. В простейших программных имитаторах на персональных компьютерах подбирается
Нейрокомпьютерные системы
-
Нейрокомпьютерные системы
параметров. Из-за высокой размерности возникают два требования к алгоритму:

Ограничение по памяти. Пусть

Нейрокомпьютерные системы
- число параметров. Если алгоритм требует затрат памяти порядка
Нейрокомпьютерные системы
, то он вряд ли применим для обучения. Желательно иметь алгоритмы, которые требуют затрат памяти
Нейрокомпьютерные системы
.Возможность параллельного вычисления наиболее трудоемких этапов алгоритма, и желательно нейронной сетью.Обученный нейрокомпьютер должен с приемлемой точностью решать все тестовые задачи. Поэтому задача обучения становится многокритериальной задачей оптимизации: нужно найти точку общего минимума большого числа функций. Обучение нейрокомпьютера исходит из гипотезы о существовании этой точки.Обученный нейрокомпьютер должен иметь возможность приобретать новые навыки без утраты старых. Возможно более слабое требование: новые навыки могут сопровождаться потерей точности в старых, но потеря не должна быть существенной. Это означает, что в достаточно большой окрестности найденной точки общего минимума оценок их значения незначительно отличаются от минимальных. Итак, имеем четыре специфических ограничения, выделяющих обучение нейрокомпьютера из общих задач оптимизации: астрономическое число параметров; необходимость высокого параллелизма при обучении; многокритериальность решаемых задач; необходимость найти достаточно широкую область, в которой значения всех минимизируемых функций близки к минимальным.



Партан-методы


Для исправления недостатков наискорейшего спуска разработаны итерационный и модифицированный партан-методы.

Итерационный партан-метод (

Нейрокомпьютерные системы
-партан) строится следующим образом. В начальной точке
Нейрокомпьютерные системы
вычисляется градиент оценки
Нейрокомпьютерные системы
и делается шаг наискорейшего спуска - для этого используется одномерная оптимизация. Далее снова вычисляется градиент
Нейрокомпьютерные системы
и выполняется спуск (т.е. перемещение в направлении антиградиента), и описанный процесс повторяется
Нейрокомпьютерные системы

раз. После

Нейрокомпьютерные системы
шагов наискорейшего спуска получаем точку
Нейрокомпьютерные системы
и проводим одномерную оптимизацию из
Нейрокомпьютерные системы
в направлении
Нейрокомпьютерные системы
с начальным шагом
Нейрокомпьютерные системы
. После этого цикл повторяется.

Модифицированный партан-метод требует запоминания дополнительных параметров. Он строится следующим образом. Из

Нейрокомпьютерные системы
делается два шага наискорейшего спуска. Получаем
Нейрокомпьютерные системы
и
Нейрокомпьютерные системы
. Далее выполняем одномерную оптимизацию в направлении
Нейрокомпьютерные системы
. Получаем
Нейрокомпьютерные системы
. Далее выполняется наискорейший спуск из
Нейрокомпьютерные системы
. Получаем
Нейрокомпьютерные системы
. Выполняем одномерную оптимизацию из
Нейрокомпьютерные системы
в направлении
Нейрокомпьютерные системы
. Получаем
Нейрокомпьютерные системы
и~т.д. Таким образом, четные
Нейрокомпьютерные системы
получаем наискорейшим спуском из
Нейрокомпьютерные системы
, нечетные
Нейрокомпьютерные системы
- одномерной оптимизацией из
Нейрокомпьютерные системы
в направлении
Нейрокомпьютерные системы
(начальный шаг
Нейрокомпьютерные системы
). Как показала практика, модифицированный партан-метод в задачах обучения работает лучше, чем
Нейрокомпьютерные системы
-партан.



Учет ограничений при обучении


Для параметров сети возможны ограничения простейшего вида:

Нейрокомпьютерные системы

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

Учесть ограничения можно, например, методом штрафных функций либо методом проекций:

Использование метода штрафных функций означает, что в оценку

Нейрокомпьютерные системы

добавляется штрафы за выход параметров из области ограничений. В~градиент

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

Нейрокомпьютерные системы

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



Универсальный путь обучения


Существует универсальный путь обучения нейронных сетей - минимизация оценки как неявно заданной функции параметров сети. При реализации этого подхода предполагается, что:

задана обучающая выборка, состоящая из векторов входных сигналов

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

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

Нейрокомпьютерные системы
, минимизация которой как функции параметров настроит сеть для правильной работы.



Выбор направления минимизации


Пусть задано начальное значение вектора параметров

Нейрокомпьютерные системы
и вычислена функция оценки
Нейрокомпьютерные системы
. Процедура одномерной оптимизации дает приближенное положение минимума
Нейрокомпьютерные системы
(вообще говоря, локального).

Наиболее очевидный выбор направления

Нейрокомпьютерные системы
для одномерной оптимизации - направление антиградиента
Нейрокомпьютерные системы
:

Нейрокомпьютерные системы

Выберем на каждом шаге это направление, затем проведем одномерную оптимизацию, потом снова вычислим градиент

Нейрокомпьютерные системы
и т.д. Это - метод наискорейшего спуска, который иногда работает хорошо. Но неиспользование информации о кривизне функции оценки (целевой функции) и резкое замедление минимизации в окрестности точки оптимального решения, когда градиент принимает очень малые значения, часто делают алгоритм наискорейшего спуска низкоэффективным.

Другой способ - случайный выбор направления

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



Алгоритмы имитации отжига


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

В процессе медленного управляемого охлаждения, называемого отжигом, кристаллизация расплава сопровождается глобальным уменьшением его энергии, однако допускаются ситуации, в которых она может на какое-то время возрастать (в частности, при подогреве расплава для предотвращения слишком быстрого его остывания). Благодаря допустимости кратковременного повышения энергетического уровня, возможен выход из ловушек локальных минимумов энергии, которые возникают при реализации процесса. Только понижение температуры до абсолютного нуля делает невозможным какое-либо самостоятельное повышение энергетического уровня расплава.

Метод имитации отжига представляет собой алгоритмический аналог физического процесса управляемого охлаждения. Классический алгоритм имитации отжига можно описать следующим образом:

Запустить процесс из начальной точки

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

Наибольшего ускорения имитации отжига можно достичь путем замены случайных начальных значений весов

Нейрокомпьютерные системы
тщательно подобранными значениями с использованием любых доступных способов предварительной обработки исходных данных.

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



Четыре типа устойчивости


Навыки обучения нейрокомпьютера должны быть устойчивы к возмущению различных типов. Разработчики нейрокомпьютеров выделяют четыре типа устойчивости:

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

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

Для выработки устойчивости первых трех типов полезны генераторы случайных искажений. Для устойчивости 1-го типа генератор искажений производит возмущение входных сигналов и тем самым преобразует обучающей пример. Для устойчивости 2-го типа генератор искажений меняет случайным образом параметры сети в заданных пределах, а для устойчивости 3-го типа - удаляет случайно выбранную часть сети, состоящую из заданного количества элементов (нейронов, синапсов).

В существенной конкретизации нуждается четвертый тип устойчивости, т.к. трудно представить себе устойчивость к обучению любому новому примеру. Если принять гипотезу, что обучение новым примерам будет действовать на старые навыки так же, как случайный сдвиг параметров, то получается, что выработка устойчивости 2-го типа является средством для обучения устойчивости 4-го типа. Другое средство - выработка устойчивости к обучению отдельным примерам, уже входящим в задачник. Это свойство устойчивости 1-го типа состоит в том, что обучение до минимума оценки по любому (одному) из обучающих примеров не разрушает навыка решения остальных. Возмущение здесь состоит в изменении процесса обучения.

Для выработки устойчивости 1-го типа примеры предъявляются сети не все сразу, а по одному, и сеть учится каждому из них до предела. Для выработки важнейшей устойчивости 4-го типа такая периодически производимая "порча" процесса обучения может быть полезной. Опыт показывает, что обучение позволяет выработать устойчивость к весьма сильным возмущением. Так, в задачах распознавания визуальных образов уровень шума на выходе мог в несколько раз превосходить общую интенсивность сигнала, случайный сдвиг параметров - достигать 0.5-0.7 их предельного значения, разрушение - 30-50\% элементов. И, тем не менее, обученная сеть делает не более 10\% ошибок!



Генетические алгоритмы


Генетические алгоритмы имитируют процессы наследования свойств живыми организмами и генерируют последовательности новых векторов

Нейрокомпьютерные системы
, содержащие оптимизированные переменные:
Нейрокомпьютерные системы
. При этом выполняются операции трех видов: селекция, скрещивание и мутация.

На начальной стадии выполнения генетического алгоритма случайным образом инициализируется определенная популяция хромосом (векторов

Нейрокомпьютерные системы
). Размер популяции, как правило, пропорционален количеству оптимизируемых параметров. Слишком малая популяция хромосом приводит к замыканию в неглубоких локальных минимумах. Слишком большое их количество чрезмерно удлиняет вычислительную процедуру и также может не привести к точке глобального минимума.

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

Существует огромное множество методов скрещивания, начиная с полностью случайного. При взвешенно-случайном скрещивании учитывается информация о текущем значении целевой функции. Отбор может происходить по принципу рулетки; при этом площадь сегмента колеса рулетки, сопоставленного конкретной хромосоме, пропорциональна величине ее функции приспособленности

Нейрокомпьютерные системы
, где
Нейрокомпьютерные системы

- ее целевая функция.

Процесс скрещивания основан на рассечении пары хромосом на две части с последующим обменом этих частей в хромосомах родителей (рис. 1). Место рассечения также выбирается случайным образом. Количество новых потомков равно количеству отбракованных в результате селекции (размер популяции остается неизменным). Признается допустимым перенос в очередное поколение некоторых случайно выбранных хромосом вообще без скрещивания.

Нейрокомпьютерные системы

Рис. 1.  Процесс скрещивания

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

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

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

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


Элементы глобальной оптимизации


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

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

При решении реальных задач в общем случае даже приблизительная оценка глобального минимума оказывается неизвестной. По этой причине возникает необходимость применения методов глобальной оптимизации. Рассмотрим три из разработанных подходов к глобальной оптимизации: метод имитации отжига, генетические алгоритмы и метод виртуальных частиц.



Метод виртуальных частиц


Метод виртуальных (случайных) частиц может надстраиваться почти над любым методом оптимизации. Он создан для:

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

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

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

Рассмотрим один из вариантов алгоритма виртуальных частиц. Пусть требуется найти минимум функции

Нейрокомпьютерные системы
.Параметры сети разбиваются на группы структурно эквивалентных. Для каждой группы задается свой интервал случайных сдвигов. Определяется число виртуальных частиц
Нейрокомпьютерные системы
и генерируется
Нейрокомпьютерные системы
случайных векторов
Нейрокомпьютерные системы
. Их координаты независимо и равномерно распределены в заданных интервалах.

Начальное положение основной частицы -

Нейрокомпьютерные системы
. Начальное положение
Нейрокомпьютерные системы
-ой виртуальной частицы
Нейрокомпьютерные системы
. Случайный вектор для
Нейрокомпьютерные системы
-й виртуальной частицы строится так:

Нейрокомпьютерные системы

(1)

и её положение задается вектором

Нейрокомпьютерные системы
. Всем частицам, кроме
Нейрокомпьютерные системы
-й, присваивается вес
Нейрокомпьютерные системы
,
Нейрокомпьютерные системы
,
Нейрокомпьютерные системы
-я получает вес
Нейрокомпьютерные системы
. Далее минимизируется функция

Нейрокомпьютерные системы

Алгоритм локальной оптимизации может быть выбран любой - от наискорейшего спуска и партан-методов до метода сопряженных градиентов. Выбор

Нейрокомпьютерные системы
в виде
Нейрокомпьютерные системы
и
Нейрокомпьютерные системы
определяется двумя обстоятельствами:

для каждой координаты вектора

Нейрокомпьютерные системы
дисперсия будет совпадать с дисперсией координат векторов
Нейрокомпьютерные системы
;для квадратичных
Нейрокомпьютерные системы
точки минимума
Нейрокомпьютерные системы
и
Нейрокомпьютерные системы
совпадут.

В методе виртуальных частиц возникает важный вопрос: когда уничтожать имеющиеся виртуальные частицы и порождать новые?

Есть три варианта:


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

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

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

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

Хорошие результаты обучения приносит объединение алгоритмов глобальной оптимизации с детерминированными методами локальной оптимизации. На первом этапе обучения сети применяется выбранный алгоритм глобальной оптимизации, а после достижения целевой функцией определенного уровня включается детерминированная оптимизация с использованием какого-либо локального алгоритма.