Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_2010.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
23.45 Mб
Скачать

Нейронные сети ассоциативной памяти. Сети Хопфилда.

Всплеск интереса к нейронным сетям был в свое время связан с распознающими сетями Хопфилда. Для них синаптическая карта симметрична (Xij=Xji), а функционирование происходит в непрерывном времени. Состояние i-го нейрона (оно же - выходной сигнал) i(t) меняется во времени согласно уравнению

,

где Ai=i Xij*ai - входной сигнал, приходящий от других нейронов.

Правая часть этого выражения представляет собой -H/i, где

.

Уравнение движения, таким образом, имеет вид

поэтому движение стремится к одному из локальных минимумов Н. Роль входного сигнала играют начальные состояния i.

"Программирование" ассоциативной сети на распознавание N эталонных образов осуществляется так. Пусть эталонам соответствует состояния сети iil, l=1,..,N.

Положим

.

Тогда функция H примет вид

Первое слагаемое в Н дает вклад в уравнение движения, сдвигающий i к +1 или -1 в зависимости от начального значения - положительные i он тянет к +1, отрицательные - к -1. Если записать вклад второго слагаемого в векторном виде, то получим:

.

Эта сумма сдвигает  пропорционально векторам l, причем сдвиг больше для тех l, для которых больше по величине скалярное произведение (,l). Если предполагать, что величина |(,l)| имеет ярко выраженный максимум по l, то получим в итоге  "похожим" на соответствующее l. Искажения будут связаны с наличием других  и первого слагаемого в Н.

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

Многослойные персептроны. Оптимизационное обучение. Метод обратного распространения ошибки.

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

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

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

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

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

F(x)=fn(fn-1(...f1(x)...)).

Можно представить вычисление F(x) как результат работы n автоматов, каждый из которых имеет один вход и выдает на выходе значение fi(A), где A - входной сигнал. Чтобы построить систему автоматов, вычисляющую F'(x), надо дополнить исходные автоматы такими, которые вычисляют функции fi'(A), где A - входной сигнал, и еще цепочкой из n-1 одинаковых автоматов, имеющих по два входа, по одному выходу и подающих на выход произведение входов.

Тогда формулу проиводной сложной функции

dF(x)/dx=fn'(fn-1(...(x)...)fn-1'(...(x)...)...

можно реализовать с помощью сети автоматов. Сначала вычисления в этой сети идут слева направо: на входы f1 и f1' подаются значения х; после вычислений f1 этот входной сигнал подается на входы f2 и f2' и т.д. В конце цепочки оказываются вычисленными все fi(fi-1(...f1(x)...)) и fi'(fi-1(...f1(x)...)).

Тем самым, для каждого автомата в цепи обратного функционирования, кроме самого правого, оказывается сформированным по одному значению входа, а у самого правого - оба, поэтому он может сработать и начать передачу сигнала справа налево. Это обратное движение есть последовательное вычисление попарных произведений и передача их налево. В конце получаем dF(x)/dx.

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

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