назад Оглавление вперед


[Старт] [1] [2] [3] [ 4 ] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42]


4

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

А А.А

Выходные элементы

.л .

Скрытые элементы

Входные элементы

Рис. 1.3. Нейронная сеть с прямой связью с одним скрытым слоем (пороги не отмечены)

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

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

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

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

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

Итак, мы описали, каким образом сеть с прямой связью осуществляет преобразование сигнала посредством весов, приписанных соединениям. Но как правильно выбрать значения этих весов? Этот момент обычно называют «обучением» или «тренировкой сети». Мы займемся им в следующем разделе.

ОБУЧЕНИЕ

На этапе обучения происходит вычисление синаптических коэффициентов в процессе решения нейронной сетью задач (классификации, предсказания временных рядов и др.), в которых нужный ответ определяется не по правилам, а с помощью примеров, сгруппированных в обучающие множества. Такое множество состоит из ряда примеров с указанным для каждого из них значением выходного параметра, которое было бы желательно получить. Действия, которые при этом происходят, можно назвать контролируемым обучением: «учитель» подает на вход сети вектор исходных данных, а на выходной узел сообщает желаемое значение результата вычислений. Контролируемое обучение нейронной сети можно рассматривать как решение оптимизационной задачи. Ее целью является минимизация функции ошибок, или невязки, £ на данном множестве примеров путем выбора значений весов W. Суть задачи оптимизации станет яснее, если представить себе график невязки, рассматриваемой как функция весов (эта функция определена в многомерном пространстве весов, где каждому весовому коэффициенту соответствует своя размерность). Из-за нелинейностей функций активации полученная поверхность в общем случае будет очень сложной: наряду с плоскими участками на ней будут локальные минимумы, седловые точки.



Рис. 1.4. Поверхность невязки для сети с одним узлом (1 вес и 1 порог) и сиг-,> моидной функцией активации. Были взяты 3 примера со входами .0.6, 0.7, -0.3 и значениями выхода, соответственно, 0.5, 0.25 и 0.3

Критерии ошибок;. < ;

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

Коль скоро обучение основывается на минимизации значения некоторой функции (показывающей, насколько результат, который выдает сеть на данном обучающем множестве, далек от образцового значения), нужно, прежде всего, выбрать меру ошибки, соответствующую сути задачи. Удачный выбор меры погрешности обычно приводит к более гладкой поверхности невязки и упрощает задачу обучения (см. [269]). Обычно в качестве меры погрешности берется средняя квадратичная ошибка (MSE), которая определяется как сумма квадратов разностей между желаемой величиной выхода d,. и реально полученными на сети значениями у. для каждого примера fc

Здесь Р- число примеров в обучающем множестве.

Наряду с такой мерой погрешности широко используется расстояние Кульбака-Лейблера, связанное с критерием максимума правдоподобия.

к L

d,log + (l-d,)log-

а также некоторые другие.

Минимизация величины Е осуществляется с помощью градиентных методов. В первом из них берется градиент общей ошибки, и веса W пересчитываются каждый раз после обработки всей совокупности обучающих примеров {«эпохи»). Изменение весов происходит в направлении, обратном к направлению наибольшей крутизны для функции стоимости:

д¥

W{t + \) = W{t)-z~.(7)

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

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

W{t + \) = W{t)-z

овраги. На рис. 1.4 видно, что даже простая сеть может реализовы-

вать сложный нелинейный процесс.



dW..

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

Для выходных элементов мы получаем:

dv[ dx[dv[ Дня скрытых элементов множитель 5\ определяется так:

(12)

с учетом того, что

=а: и 5i=vn,vi)V.;:t:;. (14)

получаем:

51=--=-/к)хы5г,

(15)

где индекс h пробегает номера всех нейронов, на которые воздействует i-й нейрон.

Данный алгоритм используется в двух вариантах. В стохастическом варианте веса пересЧитываются каждый раз после просчета очередного образца, а в «эпохальном», или off-line варианте, веса меняются после просчета всего обучающего множества.

Способы обеспечения и ускорения сходимости

Выбор начальных весов

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

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

случайное число, расположенное в интервале [-ЪI л1к,ЪI , где - число входов нейрона. Из-за малости величины начального веса последующие его изменения также будут небольшими, так как при этом учитывается абсолютная величина веса. Таким образом, нужно найти компромисс между существенными изменениями в значениях сигмоидов и малостью абсолютных величин.

Обратное распространение ошибки

Рассмотрим теперь наиболее распространенный алгоритм обучения нейронных сетей с прямой связью - алгоритм обратного распространения ошибки (Backpropagation, BP), представляющий собой развитие так называемого обобщенного дельта-правила (см. [281]). Этот алгоритм был заново открыт и популяризирован в 1986 г. Ру-мельхартом и МакКлеландом из знаменитой Группы по изучению параллельных распределенных процессов в Массачусетском технологическом институте. В этом пункте мы более подробно рассмотрим математическую суть алгоритма. Он является алгоритмом градиентного спуска, минимизирующим суммарную квадратичную ошибку:

Здесь индекс i пробегает все выходы многослойной сети.

Основная идея BP состоит в том, чтобы вычислять чувствительность ошибки сети к изменениям весов. Для этого нужно вычислить частные производные от ошибки по весам. Пусть обучающее множество состоит из Р образцов, и входы fc-ro образца обозначены через {х[ ]. Вычисление частных производных осуществляется по правилу цепи: вес входа i-ro нейрона, идущего от ;-го нейрона, пересчи-тывается по формуле

где 8 - длина шага в направлении, обратном к градиенту.

Если рассмотреть отдельно fc-й образец, то cooтвeтcтвyющiee изменение весов равно

[Старт] [1] [2] [3] [ 4 ] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42]