Однонаправленные многослойные сети сигмоидального типа

Содержание

Введение

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

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

Однонаправленные многослойные сети сети сигмоидального типа имеют устоявшееся название многослойный персептрон MLP (MultiLayer Perceptron). На рисунке представлена структурная схема двухслойного персептрона.



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

Для исключения коллизий следует отметить, что понятие "слой" часто применяют по отношению к сигналам ИНС (а не к нейронам). В таком смысле представленная на рисунке сеть - трехслойная: входные сигналы сети x1, x2, ..., xN составляют входной слой, выходные сигналы первого нейронного слоя g1, g2, ..., gL образуют первый скрытый слой, а выходные сигналы y1, y2, ..., yM - слой выходной. Для обозначения структуры сети используется кодировка в виде "N-L-M".

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

gl=f(sum[j=0:N](w(1)lj*xj)), l=1, 2 ,..., L;
yi = f(sum[l=0:L](w(2)il*gl)) = f(sum[l=0:L](w(2)il*f(sum[j=0:N](w(1)lj*xj)))), i=1, 2 ,..., M

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

Цель обучения многослойного нейрона заключается в подборе таких значений всех весовых коэффициентов сети w(1)lj и w(2)il, которые обеспечивают максимальное совпадение выходного вектора Yk и эталонного вектора ожидаемых значений Dk при предъявлении входного вектора Xk.

В случае единичной обучающей выборки <X, D> целевая функция задается в виде:

E(W)=(1/2)*sum[i=1:M]((yi-di)2).

В случае нескольких обучающих пар <Xk, Dk>, k=1, 2, ...,p, целевая функция превращается в сумму по всем парам:

E(W)=(1/2)*sum[k=1:p](sum[i=1:M]((yi-di)2)).

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

Представленные ранее выражения для целевой функции E(W) характеризуются, во-первых, аналитическим видом, во-вторых, дважды дифференцируемостью. Это дает возможность использовать для отыскания минимума E(W) практически весь арсенал универсальных методов поисковой оптимизации. Кроме того, специально для целей обучения ИНС разработаны модификации "канонических" методов.

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

1. Метод градиента. Очередное приближение к оптимальному решению определяется по формуле

Wk+1=Wk-nu*gradE(Wk),
где nu - коэффициент обучения, адаптивно подбираемый в ходе поиска так, чтобы Ek+1<Ek.

2. Метод наискорейшего спуска.

Wk+1=Wk-nu*gradE(Wk),
где коэффициент обучения nu на каждом шаге поиска таков, что гарантированно обеспечивает достижение минимума Ek+1 в направлении -gradE(Wk). Расчет оптимального значения nu реализуется, как правило, методом полиномиальной аппроксимации (одномерная оптимизация в антиградиентом направлении).

3. Метод сопряженных градиентов.

Wk+1=Wk+nu*pk,
pk=-gradE(Wk)+bk-1*pk-1.

В этом методе направление поиска на текущем шаге определяется как градиентом целевой функции в точке Wk, так и направлением поиска на предыдущем шаге pk-1, умноженном на коэффициент сопряжения bk-1. Существуют различные правила расчета bk-1, например, популярно такое:

bk-1=(gradE(Wk)T*(gradE(Wk)-gradE(Wk-1)))/(gradE(Wk-1)T*gradE(Wk-1)).

4. Ньютоноподобные методы. Напомним, формула метода Ньютона имеет следующий вид:

Wk+1=Wk-H-1(Wk)*gradE(Wk),
где H-1(Wk) - матрица Гессе (матрица вторых производных целевой функции). В силу трудоемкости рассчета матрицы Гессе метод Ньютона как таковой на практике не используется, но служит прототипом для ряда весьма эффективных методов, предлагающих экономичные способы расчета приближенных эквивалентов матрицы Гессе и вектора градиента на каждом шаге поиска.

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

Примером эвристического адгоритма, демонстрирующего неплохие результаты при подборе весовых коэффициентов ИНС, служит алгоритм RPROP (Resilent back PROPagation), формула которого имеет следующий вид:

wijk+1=wijk-nuijk*sign(дE(Wk)/дwij)

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

nuijk=min(a*nuijk-1, numax), если gijk*gijk-1>0;
nuijk=max(b*nuijk-1, numin), если gijk*gijk-1<0;
nuijk=nuijk-1 в остальных случаях.

Здесь gijk=дE(Wk)/дwij, a=1,2, b=0,5 - эмпирически подобранные константы изменения коэффициента обучения; минимальное и максимальной допустимые значения коэффициента обучения выбраны так: numin=10-6 и numax=50. Явное достоинтство алгоритма - ускоренное обучение на пологих участках целевой функции (там, где величина градиента мала).

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

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

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

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

E(W)=(1/2)*sum[i=1:M]((yi-di)2).

Второй режим ("оффлайн") подразумевает корректировку весов только после обработки всех пар <Xk, Dk> в обучающей последовательности с использование целевой функции в виде:

E(W)=(1/2)*sum[k=1:p](sum[i=1:M]((yi-di)2)).

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

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

Выбор этого диапазона слишком широким может привести к чрезмерно большим значениям ui=sum[j](wij*xj), что, в свою очередь, вызовет глубокое насыщение сигмоидальной функции нейрона, что скажется либо на продолжительности обучения, либо "умертвит" нейрон.

Предлагаются различные оценки диапазона начальных значений, но все они лежат в пределах (по абсолютной величине) (0, 1). Одна из таких оценок такова: веса всех нейронов должны выбираться в диапазоне (-2/sqrt(Nin), 2/sqrt(Nin)), где Nin - количество входов нейрона; веса поляризации нейронов выходного слоя - нулевые; веса поляризации всех остальных слоев выбираются в диапазоне (-sqrt(Nin)/2, sqrt(Nin)/2).

До сих пор процесс обучения сети рассматривался как процесс минимизации погрешности обучения EL, определяемой на множестве L эталонных пар <Xk, Dk>, k=1, 2, ..., p. Однако, необходимо понимать, что истинная цель обучения - придание сети способности адекватно реагировать на все множество данных R, "типичным" подмножеством которого является множество L. Такая способность сети называется способностью к обощению.

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



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

Метод обратного распространения ошибки

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

Тогда целевая функция имеет вид:

E(W)=(1/2)*sum[i=1:M]((yi-di)2).

Уточнение коэффициентов производится формулой метода градиента:

Wk+1=Wk-nu*gradE(Wk).

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

E(W) = (1/2)*sum[i=1:M]((f(sum[l=0:L](w(2)il*gl))-di)2)
= (1/2)*sum[i=1:M]((f(sum[l=0:L](w(2)il *f(sum[j=0:N](w(1)lj*xj))))-di)2).

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

дE(W)/дw(2)il=(yi-di)*df(u(2)i)/du(2)i*gl,
где u(2)i=sum[l=0:L](w(2)il*gl).

Обозначим deltha(2)i=(yi-di)*df(u(2)i)/du(2)i, тогда соответствующий компонент вектора градиента выглядит следующим образом:

дE(W)/дw(2)il=deltha(2)i*gl.

Компоненты градиента для весов предпоследнего слоя определяются более сложно:

дE(W)/дw(1)lj = sum[i=1:M]((yi-di)*dyi/dgl*dgl/dw(1)lj)
= sum[i=1:M]((yi-di)*df(u(2)i)/du(2)i*w(2)il*df(u(1)l)/du(1)l*xj).

Обозначив deltha(1)l=sum[i=1:M]((yi-di)*df(u(2)i)/du(2)i*w(2)il*df(u(1)l)/du(1)l), имеем

дE(W)/дw(1)lj=deltha(1)l*xj.

Детальный анализ выражений для производных целевой функции по весам различных слоев сети позволяет получить простое правило расчета компонентов вектора градиента E(W):

дE(W)/дw(k)ij=deltha(k)i*xj,
где xj - сигнал на "входе" во взвешенную связь, deltha(k)i - величина погрешности обучения, перенесенная с выхода сети к "выходу" взвешенной связи. Этот перенос погрешности (yi-di) с выхода сети к ее предыдущим слоям и обусловил название метода "обратного распространения ошибки".

Данное правило иллюстрирует следующий рисунок.



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

Рассмотрим пример использования простейшей ИНС для решения задачи сжатия данных с потерями. Дано прямоугольное изображение, каждый пиксел которого характеризуется своей яркостью. Изображение разбивается на p прямоугольных кадров размером Nh x Nv каждый. Кадр сжимается в вектор данных размерностью L (L<Nh*Nv), который затем восстанавливается (например, после хранения или передачи по медленным каналам связи) в кадр того же размера Nh x Nv.

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



Здесь xkj, j=1,2, ..., N, N=Nh*Nv - значение яркости j-ого пикселя в k-ом кадре, k=1, 2, ..., p.

Сжатие (компрессия) данных осуществляется первым слоем нейронов, а восстановление (декомпрессия) - выходным. Сеть является автоассоциативной, поскольку ее выходной вектор Hk должен совпадать с входным Xk.

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

Hk=W(2)*W(1)*Xk.

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

E(W)=(1/2)*sum[k=1:p](sum[i=1:N]((hki-xki)2)).