Автор работы: Пользователь скрыл имя, 16 Декабря 2011 в 00:37, курсовая работа
Нейронные сети – это обобщенное название нескольких групп алгоритмов, обладающих одним ценным свойством — они умеют обучаться на примерах, извлекая скрытые закономерности из потока данных. При этом данные могут быть неполны, противоречивы и даже заведомо искажены. Если между входными и выходными данными существует какая-то связь, пусть даже не обнаруживаемая традиционными корреляционными методами, нейронная сеть способна автоматически настроиться на нее с заданной степенью точности. Кроме того, современные нейронные сети обладают рядом дополнительных возможностей — они позволяют оценивать сравнительную важность различных видов входной информации, уменьшать ее объем без потери существенных данных, распознавать симптомы приближения критических ситуаций и т.д.
Однако, несмотря на перечисленные недостатки, модель обладает рядом достоинств. Существует удобный способ модифицировать модель по мере того как появляются новые наблюдения. Модель хорошо работает с временными последовательностями, в которых мал интервал наблюдений, т.е. может быть получена относительно длительная
временная последовательность.
По этой причине модель может быть
использована в областях, где нас
интересуют ежечасовые, ежедневные или
еженедельные наблюдения. Эти модели также
используются в ситуациях, когда необходимо
анализировать небольшое число временных
последовательностей.
3. Обучение нейронных
сетей
Мы можем
научить трехслойную сеть
Предположим,
что мы хотим научить сеть
распознавать рукопиные цифры.
Можно воспользоваться
Чтобы натренировать
систему, мы предъявляем ей
изображение цифры и
Чтобы реализовать
эту процедуру, нам нужно
4. Алгоритм обратного
распространения
Идея создания алгоритма обратного распространения.
Примерно в 1974 году Поль Дж. Вербос изобрел значительно более эффективную процедуру для вычисления EW, когда работал над своей докторской диссертацией в Гарвардском университете. Процедура, известная теперь как алгоритм обратного распространением (back propagation algorithm), стала одним из наиболее важных инструментов в обучении нейронных сетей (Хинтон1992, Трикоз1993).
Алгоритм обратного
распространением проще всего понять,
когда все элементы сети линейны.
Алгоритм вычисляет каждую EW, сначала
вычисляя EA – скорость, с которой
изменяется ошибка при изменении уровня
активности элемента. Для выходных элементов
EA является просто разностью между действительным
и желаемым выходом. Чтобы вычислить EA
для скрытого элемента в слое, непосредственно
предшествующем выходному слою, мы сначала
идентифицируем все веса между этим скрытым
элементом и выходными элементами, с которыми
соединен данный скрытый элемент. Затем
мы умножаем эти веса на величины EA для
этих выходных элементов и складываем
полученные произведения. Эта сумма и
равна EA для данного скрытого элемента.
Вычислив EA для всех элементов скрытого
слоя, прилегающего к выходному, мы можем
аналогичным образом рассчитать EA и для
других слоев, перемещаясь в направлении,
обратном тому направлению, в котором
активность нейронов распространяется
по сети. Отсюда и название алгоритма обратного
прослеживания (или обратного распространения).
После того как значение EA для элемента
вычислено, подсчитать EW для каждой входной
связи элемента уже несложно. Величина
EW является произведением EA и активности
во входной цепи. Для нелинейных элементов
алгоритм обратного распространения включает
дополнительный шаг: перед перемещением
в обратном направлении EA необходимо преобразовать
в EI – скорость, с которой изменяется ошибка
по мере изменения суммарного входа элемента.
Описание НС и алгоритма обратного распространения
Чтобы обучить нейронную сеть решению какой-либо задачи, мы должны подправлять веса каждого элемента таким образом, чтобы уменьшалась ошибка – расхождение между действительным и желаемым выходом. Для этого нужно, чтобы нейронная сеть вычисляла производную от ошибки по весам (EW). Другими словами, она должна вычислять, как изменяется ошибка при небольшом увеличении или уменьшении каждого веса. Чаще всего для вычисления EW применяется алгоритм обратного распространением.
Чтобы реализовать
этот алгоритм, мы сначала должны
дать математическое описание
нейронной сети. Предположим, что
элемент j – типичный элемент
выходного слоя, а элемент i –
типичный элемент слоя, который
предшествует выходному.
Xj = S (Yi * Wij), (3.1)
i
где Yi – уровень активности i-го элемента в предшествующем слое и Wij – вес связи между i-м и j-м элементами. Далее, элемент вычисляет активность Yj с помощью некоторой функции от суммарного взвешенного входа. Обычно применяется сигма-функция:
(3.2)
После того
как активности всех выходных
элементов определены, сеть вычисляет
ошибку , которая определяется
(3.3)
где Yj – уровень активности j-го элемента в верхнем слое, а Dj – желаемый выход j-го элемента.
Алгоритм
обратного распространением
1) Вычислить,
насколько быстро меняется
выходного элемента. Эта производная ошибки (EA) есть разность
между действительной и ожидаемой активностью.
(3.4)
2) Вычислить,
насколько быстро изменяется
ошибка по мере изменения
(3.5)
3) Вычислить, как быстро изменяется ошибка по мере изменения
веса на входной связи выходного элемента. Эта величина (EW) есть
результат шага 2, умноженный на уровень активности элемента, из
которого исходит связь.
(3.6)
4) Вычислить, как быстро изменяется ошибка с изменением активности элемента из предыдущего слоя. Этот ключевой шаг позволяет применять обратное распространение к многослойным сетям. Когда активность элемента из предыдущего слоя изменяется, это влияет на активности всех выходных элементов, с которыми он связан. Поэтому, чтобы подсчитать суммарное воздействие на ошибку, мы складываем все эти воздействия на выходные элементы. Но эти воздействия нетрудно подсчитать. Этот результат шага 2, умноженный на вес связи к соответствующему выходному элементу.
(3.7)
Пользуясь
шагами 2 и 4, мы можем преобразовать
величины EA одного слоя элементов в EA предыдущего
слоя. Эту процедуру можно повторять, чтобы
вычислять EA стольких предыдущих слоев,
сколько их есть. Зная EA для элемента, мы
можем воспользоваться шагами 2 и 3, чтобы
вычислить EW на его выходных связях.
Современная оценка алгоритма обратного распространения.
Алгоритм обратного распространения оказался на удивление эффективным в обучении сетей со многими слоями решению широкого класса задач (Барцев 1987, Хинтон 1992 , Суворов 1989 ). Но более всего он эффективен в ситуациях, когда отношения между входом и выходом нелинейны, а количество обучающих данных велико. Применяя алгоритм, исследователи создали нейронные сети, способные распознавать рукописные цифры, предсказывать изменения валютного курса и оптимизировать химические процессы. Они даже воспользовались алгоритмом для обучения сетей, которые идентифицируют переродившиеся пред-раковые клетки в анализируемых образцах ткани и регулируют положение зеркал в телескопах, чтобы исключить атмосферные искажения. Р. Андерсен из Массачусетского технологического института и Д. Зипсер из Калифорнийского университета в Сан-Диего показали, что алгоритм обратного распространения представляет собой весьма эффективный инструмент для понимания функций некоторых нейронов в коре головного мозга. Они научили нейронную сеть реагировать на зрительные стимулы, применив алгоритм обратного распространения. Затем они обнаружили, что реакция скрытых элементов удивительно схожа с реакцией реальных нейронов, выполняющих преобразование зрительной информации, поступающей от сетчатки, в форму, необходимую для более глубоких областей мозга, перерабатывающих зрительную информацию.
Заключение
Метод обратного распространения достаточно хорош при создании представлений о распознаваемом образе в скрытых элементах сети. Алгоритм обратного распространения показал эффективность процедур обучения НС, в которых веса постепенно изменяются, чтобы уменьшить ошибки. Раньше многие ученые полагали, что подобные методы окажутся безнадежными, поскольку должны неизбежно приводить к локально оптимальным, но в более широком масштабе ужасным решениям. Например, сеть для распознавания цифр может устойчиво сходиться к набору весов, при котором она будет путать единицы с семерками, хотя существует набор весов, позволяющий различать эти цифры наряду с другими. Из-за опасений подобного рода распространилось убеждение, что процедура обучения представляет интерес только в том случае, если она гарантирует сходимость к глобально оптимальному решению. Метод обратного распространения показал, что для многих задач глобальная ходимость не является необходимым условием для того, чтобы достичь хороших результатов.
С другой
стороны, с биологической
Более серьезную
проблему представляет собой
быстродействие алгоритма
Самая серьезная
проблема метода обратного
Тем не менее
исследователи разработали