Для решения задач, требующих более сложных правил распознавания, используются ИНС со скрытыми слоями нейронов. В процессе обучения скрытые слои приобретают функции обобщенной модели запоминаемых данных. При формировании такой модели крайне важно избежать ошибок в оценке реакции скрытых нейронов на внешние стимулы и обеспечить правильное направление коррекции веса связей. Сложность этой задачи была осознана еще Розенблаттом, однако ему не удалось найти приемлемого решения. Наиболее совершенное из предложенных решений принадлежит авторам нейропарадигмы обратного распространения ошибки (back propagation - BP). Они нашли и математически обосновали процедуру обучения, которая при достаточном числе итераций коррекции веса гарантирует достижение необходимой точности реакции сети.
В нейропарадигме BP оценка реакции скрытых нейронов производится путем вычисления взвешенного значения ошибки, найденной для слоя эффекторов. В качестве весовой функции используются текущие значения веса проекционных связей, ведущих от скрытых нейронов к эффекторам. Ошибка как бы распространяется в направлении, обратном действующему извне стимулу. Отсюда и происходит название метода. Если скрытых слоев несколько, то подобный пересчет ошибок производят для каждого скрытого слоя начиная от слоя эффекторов.
К сожалению, такой способ оценивания реакций скрытых нейронов не гарантирует правильной коррекции при запоминании каждого следующего стимула. Из-за изменений направления коррекции происходит частичное разрушение накопленной ранее информации. Поэтому для достижения более высокой точности запоминания приходится значительно уменьшать шаг коррекции и многократно повторять итерации, что сильно затягивает процесс обучения.
Для ускорения обучения (сокращения числа эпох) был предложен ряд способов, основанных главным образом на ограничении количества связей, модифицируемых за одну итерацию. Наибольший эффект достигается при организации скрытого слоя в виде сети MAXNET - структуры, в которой в возбужденном состоянии может находиться лишь один нейрон, получивший наибольшее значение постсинаптического потенциала. Этот способ, используемый в нейропарадигмах адаптивного резонанса и встречного распространения, позволяет сократить в 2-5 раз число итераций, однако качество распознавания накопленных данных заметно снижается.
Многослойные сети прямого распространения
Стандартная L-слойная сеть прямого распространения состоит из слоя входных узлов (будем придерживаться утверждения, что он не включается в сеть в качестве самостоятельного слоя), (L-1) скрытых слоев и выходного слоя, соединенных последовательно в прямом направлении и не содержащих связей между элементами внутри слоя и обратных связей между слоями. На рис. 8 приведена структура трехслойной сети.
Рисунок 8.
Типовая архитектура трехслойной сети прямого распространения.
Многослойный перцептрон
Наиболее популярный класс многослойных сетей прямого распространения образуют многослойные перцептроны, в которых каждый вычислительный элемент использует пороговую или сигмоидальную функцию активации. Многослойный перцептрон может формировать сколь угодно сложные границы принятия решения и реализовывать произвольные булевы функции. Разработка алгоритма обратного распространения для определения весов в многослойном перцептроне сделала эти сети наиболее популярными у исследователей и пользователей нейронных сетей. Геометрическая интерпретация объясняет роль элементов скрытых слоев (используется пороговая активационная функция).
RBF-сети
Сети, использующие радиальные базисные функции (RBF-сети), являются частным случаем двухслойной сети прямого распространения. Каждый элемент скрытого слоя использует в качестве активационной функции радиальную базисную функцию типа гауссовой. Радиальная базисная функция (функция ядра) центрируется в точке, которая определяется весовым вектором, связанным с нейроном. Как позиция, так и ширина функции ядра должны быть обучены по выборочным образцам. Обычно ядер гораздо меньше, чем обучающих примеров. Каждый выходной элемент вычисляет линейную комбинацию этих радиальных базисных функций. С точки зрения задачи аппроксимации скрытые элементы формируют совокупность функций, которые образуют базисную систему для представления входных примеров в построенном на ней пространстве.
Существуют различные алгоритмы обучения RBF-сетей. Основной алгоритм использует двушаговую стратегию обучения, или смешанное обучение.
Он оценивает позицию и ширину ядра с использованием алгоритма кластеризации "без учителя", а затем алгоритм минимизации среднеквадратической ошибки "с учителем" для определения весов связей между скрытым и выходным слоями. Поскольку выходные элементы линейны, применяется неитерационный алгоритм. После получения этого начального приближения используется градиентный спуск для уточнения параметров сети.
Этот смешанный алгоритм обучения RBF-сети сходится гораздо быстрее, чем алгоритм обратного распространения для обучения многослойных перцептронов. Однако RBF-сеть часто содержит слишком большое число скрытых элементов. Это влечет более медленное функционирование RBF-сети, чем многослойного перцептрона. Эффективность (ошибка в зависимости от размера сети) RBF-сети и многослойного перцептрона зависят от решаемой задачи.
Нерешенные проблемы
Существует множество спорных вопросов при проектировании сетей прямого распространения - например, сколько слоев необходимы для данной задачи, сколько следует выбрать элементов в каждом слое, как сеть будет реагировать на данные, не включенные в обучающую выборку (какова способность сети к обобщению), и какой размер обучающей выборки необходим для достижения "хорошей" способности сети к обобщению.
Хотя многослойные сети прямого распространения широко применяются для классификации и аппроксимации функций, многие параметры еще должны быть определены путем проб и ошибок. Существующие теоретические результаты дают лишь слабые ориентиры для выбора этих параметров в практических приложениях.
Модель сети с обратным распространением
Способом обратного распространения (back propogation) называется способ обучения многослойных НС. В таких НС связи между собой имеют только соседние слои, при этом каждый нейрон предыдущего слоя связан со всеми нейронами последующего слоя Нейроны обычно имеют сигмоидальную функцию возбуждения. Первый слой нейронов называется входным и содержит число нейронов соответствующее распознаваемому образу. Последний слой нейронов называется выходным и содержит столько нейронов, сколько классов образов распознается. Между входным и выходным слоями располагается один или более скрытых (теневых) слоев. Определение числа скрытых слоев и числа нейронов в каждом слое для конкретной задачи является неформальной задачей.
Принцип обучения такой нейронной сети базируется на вычислении отклонений значений сигналов на выходных процессорных элементах от эталонных и обратном "прогоне" этих отклонений до породивших их элементов с целью коррекции ошибки. Еще в 1974 году Поль Дж. Вербос изобрел значительно более эффективную процедуру для вычисления величины, называемой производной ошибки по весу, когда работал над своей докторской диссертацией в Гарвардском университете. Процедура, известная теперь как алгоритм обратного распространения, стала одним из наиболее важных инструментов в обучении нейронных сетей. Однако этому алгоритму свойственны и недостатки, главный из которых - отсутствие сколько-нибудь приемлемых оценок времени обучения. Понимание, что сеть в конце концов обучится, мало утешает, если на это могут уйти годы. Тем не менее, алгоритм обратного распространения имеет широчайшее применение. Например, успех фирмы NEC в распознавании букв, был достигнут именно благодаря алгоритму обратного распространения.
Обучение нейронных сетей
Мы можем научить трехслойную сеть решать определенную задачу, пользуясь следующей процедурой. Сначала мы предъявляем сети серию тренировочных примеров, которые состоят из паттерна активностей входных элементов вместе с желаемым паттерном активностей выходных элементов.
Предположим, что мы хотим научить сеть распознавать рукописные цифры. Можно воспользоваться матрицей, из 256 сенсоров, каждый из которых регистрирует присутствие или отсутствие чернильного пятнышка в пределах маленькой площадки - фрагмента одной цифры. Для сети, таким образом, потребуется 256 входных элементов (по одному на каждый сенсор), 10 выходных элементов (по одному на каждую возможную цифру) и некоторое количество скрытых элементов.
Для каждой цифры, регистрируемой сенсорами, сеть должна генерировать высокую активность в соответствующем выходном элементе и низкую в остальных выходных элементах.
Чтобы натренировать систему, мы предъявляем ей изображение
цифры и сравниваем действительную активность на 10 выходных элементах с желаемой активностью. Затем мы подсчитываем ошибку, определяемую как квадрат разности между действительным и желаемым выходом. После этого мы изменяем вес каждой связи, с тем чтобы уменьшить ошибку. Описанный процесс тренировки мы повторяем со многими различными написаниями каждой цифры, пока сеть не научится правильно распознавать все возможные изображения.
Чтобы реализовать эту процедуру, нам нужно изменять каждый
вес на величину, пропорциональную скорости, с которой изменяется ошибка по мере изменения веса. Эта величина (называемая производной ошибки по весу и обозначаемая EW) вычисляется не просто.
Один из способов вычисления EW заключается в том, чтобы изменить вес на очень маленькую величину и посмотреть, как изменится ошибка. Однако этот метод не эффективен, поскольку требует отдельных вариаций для каждого из многих весов.