- •Лабораторная работа № 1 Основы программирования в системе matlab
- •Язык программирования системы matlab имеет следующие средства для построения команд и написания м-файлов:
- •If Условие
- •2. Сохранить файл под именем «pcr.M».
- •3. Выполнить в командном окне matlab следующую команду:
- •2. Сохранить файл под именем «fun.M».
- •3. Выполнить в командном окне matlab следующую команду:
- •Массивы ячеек
- •2. Сохранить файл под именем «strdialog.M».
- •3. Выполнить в командном окне matlab следующую команду:
- •Модели искусственного нейрона
- •Лабораторная работа № 4 Искусственные нейронные сети
- •Лабораторная работа № 5 Методы и алгоритмы обучения искусственных нейронных сетей
- •Теоретические сведения
- •Xlabel(′′), ylabel(′Выходы a(I)′)
- •Xlabel(′′), ylabel(′Веса входов w(I) ′)
- •Xlabel(′Циклы′), ylabel(′Ошибка′), grid
- •Xlabel(′′), ylabel(′Выходы a(I′′), grid
- •Xlabel(′′), ylabel(′Веса входов w(I)′), grid
- •Xlabel(′Циклы′), ylabel(′Ошибка′), grid
- •Xlabel(′′), ylabel(′Выходы a(I)′), grid
- •Xlabel(′′), ylabel(‘Веса входов w(I)′), grid
- •Xlabel(′Циклы ′), ylabel(′Ошибка′)grid
- •Лабораторная работа № 7 Исследование линейных нейронных сетей
- •Xlabel('Время, c'), ylabel('Процессы'))
- •Лабораторная работа № 8 Исследование радиальных базисных сетей общего вида
- •Лабораторная работа № 9 Исследование радиальных базисных сетей типа grnn
- •Лабораторная работа № 10 Исследование радиальных базисных сетей типа pnn
- •Лабораторная работа № 11 Исследование самоорганизующихся слоев Кохонена
- •Лабораторная работа № 12 Исследование самоорганизующихся карт Кохонена
- •Лабораторная работа № 13 Исследование самоорганизующихся lvq-сетей
- •Лабораторная работа № 14 Исследование сетей Элмана
- •Лабораторная работа № 15 Исследование сетей Хопфилда
- •Лабораторная работа № 16
Лабораторная работа № 15 Исследование сетей Хопфилда
Цель работы: изучение архитектуры рекуррентных нейронных сетей Хопфилда и специальных функций для их создания, взвешивания входов, накопления и активизации; ознакомление с демонстрационными примерами и их скриптами, а также приобретение навыков построения таких сетей для решения задач распознавания образов и создания ассоциативной памяти.
Теоретические сведения
Сеть Хопфилда относится к классу рекуррентных нейронных сетей. Она имеет один нейронный слой с функциями взвешивания 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
