Костанайский государственный университет им.А.
Байтурсынова
Принцип обучения и
преимущества многослойных нейронных сетей
Существует
большое количество типов нейронных сетей, различающихся по архитектуре. Можно
упомянуть такие, как: простой персептрон, многослойные нейронные сети прямого
распространения, самоорганизующиеся карты Кохонена, сети Хопфилда и другие [1].
Из различных архитектур хотелось бы выделить многослойные нейронные сети
прямого распространения, которые обладают рядом преимуществ при практическом
использовании:
– использует в качестве алгоритма обучения
алгоритм обратного распространения – первый эффективный алгоритм обучения
многослойных нейронных сетей;
– большое количество применений для решения
практических задач;
– широта области применения – может
применяться для распознавания образов, классификации, прогнозирования, синтеза
речи, контроля, адаптивного управления, построения экспертных систем.
Многослойные нейронные сети
прямого распространения представляют собой многослойные сети с
последовательными связями. Нейроны первого (входного) слоя выполняют только
распределительные функции. Они получают входные сигналы и передают их нейронам
второго. Нейроны второго слоя преобразуют сигнал и передают его нейронам
третьего слоя и т.д. до выходного слоя, который обрабатывает информацию от
предыдущих слоев и выдает выходной сигнал. Слои, расположенные между входными и
выходными слоями называют промежуточными или скрытыми. Как и выходной слой,
скрытые слои являются обрабатывающими. Если не особых условий нет, то выход
каждого нейрона предыдущего слоя соединен синаптическими связями с входами всех
нейронов следующего слоя. В результате топология многослойной нейронной сети
является однородной и регулярной. В качестве функции активации нейронов обычно
используют гиперболический тангенс или сигмоид.
Способность к
обучению является определяющим свойством нейронной сети. Для решения какой-либо
задачи традиционным методом необходимо знать правила, по которым из входных
данных получаются решение задачи. С помощью нейронной сети можно найти решение,
не зная правил, а имея набор примеров, на которых можно обучить сеть [2].
Самоорганизация
нейронных систем характеризуется способностью изменения в процессе обучения как
синаптических связей, так и своей структуры с целью эффективного решения задачи
или адаптации к различным условиям функционирования. Часто под самоорганизацией
понимают одновременную настройку как весов связей (то есть обучение сети), так
и настройку архитектуры сети (то есть оптимизацию архитектуры) для эффективного
выполнения задачи.
Обучение
осуществляется по обучающей выборке. Функционирование сети улучшается в
процессе итеративной настройки весовых коэффициентов. Свойство сети обучаться
на примерах делает их более привлекательными по сравнению с системами, которые
следуют определенной системе правил функционирования, сформулированной
экспертами, на задачах, для которых существует большое количество примеров
решения, но не выявлены правила функционирования.
Для обучения
многослойных сетей используют «обучение с учителем». В обучающей выборке
имеется правильный ответ на каждый входной пример. Веса настраиваются так,
чтобы сеть выдавала значения как можно более близкие к известным правильным
значениям.
Можно
выделить три фундаментальных свойства, связанных с обучением по примерам:
емкость, сложность обучающей выборки и вычислительная сложность. Под емкостью
понимается, сколько образцов может запомнить сеть, и какие функции и границы
принятия решений могут быть на ней сформированы. Сложность обучающей выборки
определяет число обучающих примеров, необходимых для достижения способности
сети к обобщению. Слишком малое число примеров может привести к тому, что сеть
будет хорошо функционировать на примерах обучающей выборки, но плохо – на
тестовых примерах, подчиненных тому же статистическому распределению [3].
При обучении
с учителем для каждого входного примера задан желаемый выход d. Реальный
выход сети у может не совпадать с желаемым. Принцип коррекции по ошибке
при обучении состоит в использовании сигнала (у – d) для модификации весов, обеспечивающей
постепенное уменьшение ошибки. Такое обучение называется обучение по ошибке.
Общая
постановка задачи обучения сети выглядит следующим образом [47]. В процессе функционирования нейронная сеть
формирует выходной сигнал Y,
соответствующий входному сигналу X, реализуя некоторую функцию g:
Y
= g(X). (1)
Если архитектура сети задана, то вид функции g определяется
значениями синаптических весов и смещений сети. Обозначим буквой G множество
всех возможных функций g, соответствующих заданной архитектуре сети.
Пусть решение
некоторой задачи – функция г: Y =
г(Х), заданная
парами входных и выходных данных (Xx,Yx),(X2,Y2),...,{Xk
,Yk), для которых Yk=r(Xk), где k=1,2,...,N. Пусть Е –
функция ошибки, показывающая для каждой из функций g степень
близости к г. Решить поставленную
задачу с помощью нейронной сети заданной архитектуры – это значит построить (синтезировать)
функцию g&G, подобрав
параметры нейронов (синаптические веса и смещения) таким образом, чтобы
функционал качества обращался в оптимум для всех пар (Хк,Yk).
Таким образом, задача обучения определяется совокупностью пяти элементов:
<X,Y,r,G, E>,
где Х иY – вход и выход
соответственно:
r – функция, реализующая отображение X ->
Y и определяющая желаемый результат обучения;
G – множество функций g:X-»Y для
всех g&G до начала обучения; множество функций G определяется
заданной архитектурой нейронной сети;
Е – функция ошибки, показывающая для каждой
функции степень близости к r; обучение состоит в поиске (синтезе)
функции g, оптимальной по Е.
Обучение – это
итерационная процедура. На каждой итерации происходит уменьшение функции
ошибки. Обучение требует большого объема вычислений.
Если выбраны
множество обучающих примеров – пар (Xk,Yk)
(k = 1,2,..., N)
и способ вычисления функции ошибки Е, то обучение нейронной
сети превращается в задачу многомерной оптимизации. Размерность задачи – от
нескольких тысяч до 108.
Функция Е может
иметь произвольный вид. Поэтому обучение в общем случае – многоэкстремальная
невыпуклая задача оптимизации.
В
многослойных сетях оптимальные выходные значения нейронов всех слоев, кроме
последнего, не известны, и двух- или более слойную нейронную сеть уже
невозможно обучить, руководствуясь только величинами ошибок на выходах сети.
Приемлемый вариант решения данной проблемы -распространение сигналов ошибки от
выходов сети к ее входам, в направлении, обратном прямому распространению
сигналов в обычном режиме работы сети. Этот алгоритм обучения получил название
процедуры обратного распространения ошибки.
При этом на входной слой многократно подаются образцы сигналов, на основании
которых нейронная сеть должна быть обучена, и корректируются веса для
достижения желаемого выходного сигнала. Для улучшения качества обучения образцы,
подаваемые на входной слой, могут быть случайным образом изменены на малую
величину. Процедура обучения выглядит следующим образом:
1.
Выборка
исходных данных разбивается на две выборки: обучающую и тестовую. Обычно
обучающая выборка содержит больше образцов, чем тестовая.
2.
Производится
инициализация весов небольшими случайными величинами (обычно в диапазоне [-1;
1]). Это определяет начальную точку на поверхности ошибок для метода
градиентного спуска.
3.
Производится
прямой проход сети для первого образца из обучающей выборки от входного слоя
через скрытые слои к выходному слою: каждый нейрон складывает произведения
входов на веса и выдает результат функции активации, примененной к этой сумме,
на нейроны следующего уровня.
4.
Вычисляется
разность между действительным и желаемым выходным значением каждого нейрона
выходного слоя. Эта разность называется ошибкой.
5.
Производится
процедура обратного распространения этих ошибок по связям к нейронам скрытых
слоев, и определяются ошибки для каждого нейрона скрытого слоя.
6.
Производится
коррекция весов нейронов.
7.
Вновь
производится прямой проход сети уже для следующего образца обучающей выборки.
По завершению
обучающей фазы сеть проверяется при помощи тестовой выборки, содержащей образцы,
не предъявляемые ранее сети. В случае, если качество обучения удовлетворяет
предъявленным требованиям, то сеть признается готовой к работе. В противном
случае сеть подвергается повторному обучению, происходит изменение параметров
сети и обучающей выборки (начальные веса, количество нейронов в скрытых слоях,
дополнительные обучающие образцы и т.п.) [4].
Литература:
1.
Горбань А.Н.
Нейронные сети на персональном компьютере.
– М.: Мир, 1996. – 530 с.
2.
Головко В.А.
Нейронные сети: обучение, организация и применение: учеб. пособие для вузов / общ.
ред. А.И. Галушкина – М.: ИПРЖР, 2001.
– Кн. 4.
3.
Круглов
В.В., Борисов В.В. Искусственные нейронные сети. Теория и практика. – М.:
Горячая линия -Телеком, 2002. – 380 с.
4.
Галушкин
А.И. Теория нейронных сетей: учеб. пособие для вузов. – М.: ИПРЖР, 2000. – Кн. 1. – 416 с.