Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Исследование сетей Хопфилда



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

Теоретические сведения

Сеть Хопфилда относится к классу рекуррентных нейронных
сетей. Она имеет один нейронный слой с функциями взвешивания
dotprod, накопления netsum и линейной ограниченной функцией активизации satlins. Слой охвачен динамической обратной связью с весами LW{1,1} и имеет смещения.

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

Функция для создания сети Хопфилда имеет вид:

net=newhop(T),

где Т – массив размера R*Q,объединяющий Q целевых векторов со значениями +1 или -1 для элементов;

R – число элементов вектора входа.

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

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

 
 

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

Практические задания

Задание 1. Создать сеть Хопфилда с двумя устойчивыми точками в трёхмерном пространстве, выполнив следующие команды:

T =[-1 -1 1; 1 -1 1] ′; %целевые вершины;

net =newhop(T); %создание сети;

net, gensim(net) %параметры и структура сети;

Ai = T; %начальные условия для линий задержки;

Y = sim(net,2,[], Ai); %сеть устойчива;

Ai ={[-0.9; -0.8; 0.7]};

Y=sim(net,{1 5},{}, Ai); %сеть обеспечила переход

% к устойчивому состоянию

% [-1 -1 1]′.

Задание 2. Создать сеть Хопфилда с четырьмя устойчивыми точками в двухмерном пространстве, выполнив следующие команды:

T = [1 -1; -1 1; 1 1; -1 -1] ′

plot(T(1,:),T(2,:), ′*r′) %точки равновесия;

axis([-1.1 1.1 -1.1 1.1]);

title(′Точки равновесия проектируемой сети′);

xlabel(′a(1)′), ylabel(′a(2)′)

net =newhop(T);

W=net.LW{1,1}

b=net.b{1,1}

Ai = T;

Y=sim(net,4,[],Ai)

plot(T(1,:),T(2,:), ′*r′), hold on

axis([-1.1 1.1 -1.1 1.1])

xlabel(‘a(1)’), ylabel(′a(2)′)

new=newhop(T);

[Y,Pf,Af]=sim(net,4,[],T);

for i=1:25

a={rands(2,1)};

[Y,Pf,Af]=sim(net,{1,20},{},a);

record=[cell2mat(a),cell2mat(Y)]

start=cell2mat(a);

plot(start(1.1), start(2.1),′kx′.record(1,:),record(2,:))

End





Дата публикования: 2015-10-09; Прочитано: 541 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...