Алгоритмы обучения нейронных сетей
На этапе обучения происходит вычисление синаптических коэффициентов в процессе решения нейронной сетью конкретных задач. Контролируемое обучение нейронной сети можно рассматривать как решение оптимизационной задачи. Ее целью является минимизация функций ошибок (невязок) на данном множестве примеров путем выбора значений весов W.
Известно два вида обучения: с учителем и без учителя. Обучение с учителем предполагает предъявление сети последовательности обучающих пар (Xi, Di), где Xi– обучающий пример, Di– эталон, который должен быть получен на выходе сети. Для каждого Xiвычисляется yi, который сравнивается с Di. Разница используется для корректировки синаптической матрицы. Обучение без учителя предполагает наличие только обучающих примеров Xi. Синаптическая матрица настраивается так, чтобы близким входным векторам соответствовали одинаковые результирующие векторы.
Процесс обучения можно рассматривать как дискретный процесс, описываемый конечно-разностными уравнениями. Большинство методов обучения используют идею Хэбба, смысл которой заключается в повторении заучиваемого примера. Синаптический вес увеличивается если два нейрона – источник и приемник – активизированы. Наращивание веса определяется произведением уровней возбуждения двух нейронов, что можно записать так:
,
где – значения веса связи от i-го нейрона к j-му на предыдущей итерации обучения и текущей;
– скорость обучения ( );
– выход нейрона i, являющийся входом для j-го нейрона на 0-й итерации;
– выход нейрона jна 0-й итерации.
Процесс обучения нейронной сети рассматривается как задача минимизации некоторой функции F(W) min, где W– синаптическая матрица сети.
Для решения такой задачи могут использоваться различные методы нелинейного программирования: градиентный, квазиньютоновский случайный поиск и др.
Общим для методов обучения сети является следующее: для некоторого начального состояния синаптической матрицы определяется направление уменьшения целевой функции F(W) и находится ее минимум в этом направлении. Для полученной точки опять вычисляется направление убывания функции и осуществляется одномерная оптимизация. В общем алгоритм можно представить как
где - величина шага на этапе 0;
- направление поиска на этапе 0.
Наиболее развитым методом обучения является алгоритм обратного распространения. Каких-либо ограничений на количество слоев и топологию сети не накладывается. Единственное требование состоит в том, чтобы функция возбуждения была всюду дифференцируема. Как правило, используется сигмоидная (логистическая) функция. Алгоритм обратного распространения является методом обучения с учителем (рис. 6.5).
Рис. 6.5. Схема обучения нейронной сети с учителем
Алгоритм обратного распространения представляет собой развитие обобщенного дельта-правила и является алгоритмом градиентного спуска, минимизирующим суммарную квадратичную ошибку. Главная цель состоит в том, чтобы вычислить чувствительность ошибки сети к изменению весов.
Пусть нейронная сеть соответствует схеме на рис. 6.2. Тогда алгоритм обучения можно описать [6]:
1. Задать синаптические матрицы W, W*.
2. Для каждой обучающей пары (Xi, Di) выполнить действия:
подать на вход скрытого слоя очередной набор обучающих данных ;
вычислить выход скрытого слоя :
;
вычислить выход выходного слоя:
.
3. Рассчитать ошибки для выходного и скрытого слоев:
между полученными выходными величинами сети и эталонными величинами;
для нейронов скрытого слоя.
Повторять шаги 2 и 3 до тех пор, пока ошибки не станут приемлемыми.
Пример 6.3.Пусть нейронная сеть соответствует схеме на рис. 6.2. При этом n=2, m=2,k=1 (рис. 6.6). Обучающее множество =(1;2), D=3. Необходимо обучить нейронную сеть складывать цифры 1 и 2. Все нейроны возбуждаются сигмоидной функцией. Заданы синаптические матрицы для скрытого слоя на первой итерации:
и вектор для выходного слоя
.
Рис. 6.6. Нейросеть с одним скрытым слоем
Вычислим взвешенную сумму
тогда
.
Взвешенный вход для выходного слоя
В то же время желаемое значение y(1), преобразованное функцией возбуждения
D = F(3) = 0,952.
Поэтому среднеквадратическая ошибка (СКО):
Значения фактического выхода и желаемого не совпадают, поэтому синаптические веса следует изменить. Для этого следует выяснить, каким образом повлияют эти изменения на величину ошибки. Анализ, согласно алгоритму обратного распространения, выполняют начиная с выходного слоя сети и продвигаясь к входу:
1) прежде всего выясняют, как влияют на ошибку сети изменения на выходе. Для этого достаточно определить скорость изменения ошибки при данном значении выхода. Скорость определяется с помощью производной. Дифференцирование выполняется по аргументу y(1).
Полученная реакция скорости изменения ошибки при данном значении выхода отрицательная, что указывает на необходимость увеличения значения на выходе;
2) определить, каким образом влияет на ошибку сети каждый из
входов выходного слоя. Для этого определим скорость изменения ошибки сети при изменении средневзвешенного входа выходного слоя V*(1):
Значение EQпоказывает, что скорость изменения ошибки в
процессе изменения средневзвешенного входа выходного нейрона существенно ниже по сравнению со скоростью реакции сети на изменение ее выхода.
Каким образом влияет на ошибку сети каждый из входов
выходного слоя, можно узнать, если результат предыдущего шага умножить на уровень активности нейрона, из которого эта связь исходит:
3) для корректировки синаптических весов на второй итерации алгоритма обучения следует вычислить
Далее вычисляются поправочные коэффициенты EW
для синаптической матрицы скрытого слоя и значения :
.
Второй прямой проход выполняется, чтобы определить, насколько рассматриваемая сеть близка к поставленной цели. В результате повторного просчета с синаптическими матрицами получим =0,564 и соответственно
.
За n итераций нейронная сеть будет обучена.
В [13] приведены результаты решения задачи по выбору оптимального маршрута при перевозке крупногабаритных грузов
на основе нейросетевых технологий. Для решения использован
модуль Neural Analyser, входящий в состав пакета Deductor
Professional [14].
Глава 7. Технология создания экономических
советующих систем
Дата добавления: 2019-10-16; просмотров: 800;