Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Функциональное описание НС 2 страница




Приведем словесное описание алгоритма.

Шаг 1. Весам сети присваиваются небольшие начальные значения.

Шаг 2. Выбирается очередная обучающая пара (X, Y) из обучающего множества; вектор X подается на вход сети.

Шаг 3. Вычисляется выход сети.

Шаг 4. Вычисляется разность между требуемым (целевым, Y) и реальным (вычисленным) выходом сети.

Шаг 5. Веса сети корректируются так, чтобы минимизировать ошибку.

Шаг 6. Шаги со 2-го по 5-й повторяются для каждой пары обучающего множества до тех пор, пока ошибка на всем множестве не достигнет приемлемой величины.

Шаги 2 и 3 подобны тем, которые выполняются в уже обученной сети.

Вычисления в сети выполняются послойно. На шаге 3 каждый из выходов сети вычитается из соответствующей компоненты целевого вектора с целью получения ошибки. Эта ошибка используется на шаге 5 для коррекции весов сети.

Шаги 2 и 3 можно рассматривать как «проход вперед», так как сигнал распространяется по сети от входа к выходу. Шаги 4 и 5 составляют «обратный проход», поскольку здесь вычисляемый сигнал ошибки распространяется обратно по сети и используется для подстройки весов.

Математическое представление алгоритма рассмотрим вначале на примере простейшей нейронной сети, содержащей только один нейрон (условно показанный кружком, см. рис. 2.8).

 

 

Будем полагать, что выход (output) сети о = f (net) определяется функцией активации сигмоидного (см. табл. 2.1) типа

,

где хт = (x 1,..., хп) – вектор входных сигналов, wT = (w 1,......, wn) – вектор весов сети, «Т» – символ транспонирования.

Предположим, далее, что для обучения сети используется выборка

x1 = (x 11, x 12, …, x 1 n)T, y 1,

x2 = (x 21, x 22, …, x 2 n)T, y 2,

………………………………………

x N = (xN 1, xN 2, …, xNn)T, yN,

где уk – значения желаемого (целевого) выхода.

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

.

Соответственно, суммарная функция ошибки по всем элементам выборки:

.

Очевидно, как Еk,так и Е являются функциями вектора весов сети w. Задача обучения сети сводится в данном случае к подбору такого вектора w, при котором достигается минимум Е. Данную задачу (оптимизации) будем решать градиентным методом, используя соотношение

w:= w - ηE'k (w),

где «:=«– оператор присвоения, E'k (w)– обозначение вектора-градиента, η – некоторая константа.

Представляя данный вектор в развернутом виде и учитывая приведенное выше (в § 2.2) выражение для производной сигмоидной функции, получим:

.

Это дает возможность записать алгоритм коррекции (подстройки) вектора весовых коэффициентов сети в форме

w:= w + η (yk - o k) o k (1 - o k) x k = w+ η δk x k,

где

δk = (yk - o k) o k (1 - o k).

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

Задаются некоторые η (0 < η < 1), E max и некоторые малые случайные веса wi сети.

Задаются k = 1 и Е = 0.

Вводится очередная обучающая пара (x k, уk).Производятся обозначения

х:= x k, у:= уk

и вычисляется величина выхода сети:

.

4. Обновляются (корректируются) веса:

w:= w + η (y - o) o (1 - o) x.

5. Корректируется (наращивается) значение функции ошибки:

.

Если k < N, тогда k:= k + 1 и переход к шагу 3, в противоположном случае – переход на шаг 7.

Завершение цикла обучения. Если Е < Е mах,то окончание всей процедуры обучения. Если ЕЕ mах, тогда начинается новый цикл обучения переходом к шагу 2.

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

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

Выход сети описывается выражением

,

где W – вектор весов выходного нейрона, o k – вектор выходов нейронов скрытого слоя с элементами

,

w i - обозначает вектор весов, связанных с i -м скрытым нейроном, i = 1, 2,..., L.

Правило корректировки весов в рассматриваемой НС также основано на минимизации квадратичной функции ошибки градиентным методом на основе выражений:

,

,

где η = const – коэффициент скорости обучения (0 < η < 1), i =1, 2,..., L.

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

,

откуда следует

W:= W + η (yk – O k) O k (1 – O k) o k = W + η δk o k,

или в скалярной форме

Wi:= Wi + η δk o ki, i = 1, 2, …, L,

где

δk = (yk – O k) O k (1 – O k).

Поступая аналогично, найдем

,

откуда получаем

w i:= w i + η δk Wi o ki (1 - o ki) x k,

или (в скалярной форме)

wij:= wij + η δk Wi o ki (1 - o ki) x kj, i = 1, 2, …, L, j = 1, 2, …, n.

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

Задаются некоторые (0 < η < 1), E max и некоторые малые случайные веса wi сети.

Задаются k = 1 и Е = 0.

Вводится очередная обучающая пара (x k, yk).Производятся обозначения

х:= x k, у:= уk

и вычисляется величина выхода сети:

,

где W – вектор весов выходного нейрона, о k – вектор выходов нейронов скрытого слоя с элементами

,

w i – обозначает вектор весов, связанных с i -м скрытым нейроном, i= 1, 2,..., L.

4. Производится корректировка весов выходного нейрона:

W:= W + η δ o,

где δ = (y – O) O (1 – O).

5. Корректируются веса нейронов скрытого слоя:

w i:= w i + η δ Wi o i (1 - o i) x, i= 1, 2,..., L.

6. Корректируется (наращивается) значение функции ошибки:

.

Если k < N, тогда k:= k + 1 и переход к шагу 3, в противоположном случае переход на шаг 8.

7. Завершение цикла обучения. Если Е < Е mах,то окончание всей процедуры обучения. Если ЕЕ mах,тогда начинается новый цикл обучения переходом к шагу 2.

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

Дадим изложенному геометрическую интерпретацию.

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

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

Обычно этот алгоритм видоизменяется таким образом, чтобы включать слагаемое импульса (или инерции). Этот член способствует продвижению в фиксированном направлении, поэтому если было сделано несколько шагов в одном и том же направлении, то алгоритм «увеличивает скорость», что (иногда) позволяет избежать локального минимума, а также быстрее проходить плоские участки.

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

Классический метод обратного распространения относится к алгоритмам с линейной сходимостью и известными недостатками его являются: невысокая скорость сходимости (большое число требуемых итераций для достижения минимума функции ошибки), возможность сходиться не к глобальному, а к локальным решениям (локальным минимумам отмеченной функции), возможность паралича сети (при котором большинство нейронов функционирует при очень больших значениях аргумента функций активации, т.е. на ее пологом участке; поскольку ошибка пропорциональна производной, которая на данных участках мала, то процесс обучения практически замирает).

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

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

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

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

Полином (или многочлен) – это выражение, содержащее только константы и целые степени независимой переменной. Примеры:

y = 2 x + 3, y = 3 x 2 +4 x + 1.

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

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

Как же выбрать «правильную» степень сложности для сети? Почти всегда более сложная сеть дает меньшую ошибку, но это может свидетельствовать не о хорошем качестве модели, а о переобучении.

Ответ состоит в том, чтобы использовать механизм контрольной кросс-проверки, при котором часть обучающих наблюдений резервируется и в обучении по алгоритму обратного распространения не используется. Вместо этого, по мере работы алгоритма, она используется для независимого контроля результата. В самом начале работы ошибки сети на обучающем и контрольном множествах будут одинаковыми (если они существенно отличаются, то, вероятно, разбиение всех наблюдений на два множества было неоднородно). По мере того как сеть обучается, ошибка обучения, естественно, убывает, и, пока обучение уменьшает действительную функцию ошибок, ошибка на контрольном множестве также будет убывать. Если же контрольная ошибка перестала убывать или даже стала расти, это указывает на то, что сеть начала слишком близко аппроксимировать данные и обучение следует остановить. Это явление чересчур точной аппроксимации в процессе обучения и называется переобучением. Если такое случилось, то обычно советуют уменьшить число скрытых элементов и/или слоев, ибо сеть является слишком мощной для данной задачи. Если же сеть, наоборот, была взята недостаточно богатой для того, чтобы моделировать имеющуюся зависимость, то переобучения, скорее всего, не произойдет, и обе ошибки – обучения и проверки – не достигнут достаточного уровня малости.

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

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

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

1. Функции ошибки:

интегральные функций ошибки по всей совокупности обучающих примеров;

функции ошибки целых и дробных степеней.

2. Процедуры определения величины шага на каждой итерации:

дихотомия;

инерционные соотношения;

отжиг.

3. Процедуры определения направления шага:

с использованием матрицы производных второго порядка (метод Ньютона и др.);

с использованием направлений на нескольких шагах (партан метод и др.).

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

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

Главная черта, делающая обучение без учителя привлекательным, – это его «самостоятельность». Процесс обучения, как и в случае обучения с учителем, заключается в подстраивании весов сети. Некоторые алгоритмы, правда, изменяют и структуру сети, т.е. количество нейронов и их взаимосвязи, но такие преобразования правильнее назвать более широким термином – самоорганизацией, и здесь они рассматриваться не будут. Очевидно, что подстройка весов может проводиться только на основании информации, доступной в нейроне, т. е. его состояния и уже имеющихся весовых коэффициентов. Исходя из этого соображения и, что более важно, по аналогии с известными принципами самоорганизации нервных клеток, построены алгоритмы обучения Хебба.

Сигнальный метод обучения Хебба заключается в изменении весов по следующему правилу:

wij:= wij + η o j ( q -1) o i ( q ),

где o j ( q -1) – выходное значение j -гo нейрона слоя (q -1), o i ( q ) – выходное значение i -го нейрона слоя q; wij – весовой коэффициент синапса, соединяющего эти нейроны, η – коэффициент скорости обучения. Здесь и далее, для общности, под q подразумевается произвольный слой сети. При обучении по данному методу усиливаются связи между возбужденными нейронами.

Полный алгоритм обучения с применением вышеприведенной формулы будет выглядеть так:

1. На стадии инициализации всем весовым коэффициентам присваиваются небольшие случайные значения.

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

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

Цикл с шага 2, пока выходные значения сети не застабилизируются с заданной точностью. Применение этого нового способа определения завершения обучения, отличного от использовавшегося для сети обратного распространения, обусловлено тем, что подстраиваемые значения синапсов фактически не ограничены.

На втором шаге цикла попеременно предъявляются все образы из входного набора.

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

 

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

Другой алгоритм обучения без учителя – алгоритм Кохонена (Kohonen) – предусматривает самообучение по правилу «победитель забирает все». Структура сети, реализующей данное правило, представлена на рис. 2.10.

Критерий подстройки весов сети (все векторы весов должны быть нормализованы, т.е. иметь единичную длину: ||w i || = 1, i = 1, 2,..., m) выглядит следующим образом:

,

где индекс r обозначает нейрон-победитель, соответствующий вектору весов w r, который ближе всех расположен к (текущему) входному вектору.

Поскольку (с учетом того, что w i T w i = ||w i ||2 = 1)

||х - w i ||2 = (х - w i) T (х - w i) = хTх - 2 w i Tх + w i Tw i = хTх - 2 w i Tх + 1,

процедура нахождения w r эквивалентна решению оптимизационной задачи

,

чему можно дать следующую геометрическую интерпретацию (см. рис. 2.11).

Так как скалярное произведение с учетом ||w i || = 1 представляет собой просто проекцию вектора х на направление вектора w i, то нейрон-победитель определяется по тому вектору весов, чье направление ближе всего к направлению х (на рис. 2.11 таким является вектор w2).

После выявления нейрона-победителя его выход устанавливается равным единице (у остальных нейронов устанавливаются нулевые выходы), а веса корректируются так, чтобы уменьшить квадрат величины рассогласования ||х – w r ||2. При использовании градиентного подхода это приводит к следующей математической формулировке:

,

где, как и раньше, η – константа, определяющая скорость обучения.

Найдем производную в правой части последнего выражения:

.

При этом w r:= w r + η (x - w r).

Заметим, что коррекции весов у других нейронов не производится.

Алгоритм обучения (без учителя) Кохонена может быть теперь описан следующим образом.

Задаются случайные нормализованные по длине векторы w i.

Начало цикла обучения; ввод очередного вектора входов х.

Определение нейрона-победителя, корректировка вектора его весов и задание единичного выхода:

w r:= w r + η (x - w r), o r:= 1.

4. Нормализация найденного вектора:

.

5. Задание значений для остальных нейронов:

w i:= w i, o i:= 0, ir.

6. Проверка выполнения правила останова (в качестве такого правила можно принять, например, стабилизацию векторов весов на каких-то значениях); если оно не выполнено – продолжение цикла обучения (переходом к шагу 2), в противоположном случае – переход к шагу 7.

7. Конец процедуры обучения.

Заметим, что выражение для коррекции вектора весовых коэффициентов нейрона-победителя может быть представлено в форме

w r:= w r + η (x - w r) = (1 – η) w r + η x,

т.е. новое (скорректированное) значение данного вектора является взвешенной суммой старого значения (до коррекции) и предъявленного вектора входов, чему соответствует геометрическая иллюстрация рис. 2.12.

 

 

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

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

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

 

 

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

3.4. Применение нейросети

После того как сеть обучена, мы можем применять ее для решения различных задач (рис. 2.14).

Важнейшая особенность человеческого мозга состоит в том, что, однажды обучившись определенному процессу, он может верно

 




Поделиться с друзьями:


Дата добавления: 2014-12-29; Просмотров: 572; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.092 сек.