- •Санкт-Петербургский национальный исследовательский университет
- •Редакторы знаний и функции системы kappa
- •Основные этапы разработки объектной модели
- •Пример. Окно Object Browser
- •Построение функциональной модели с использованием продукционных правил Цикл формирования цепи рассуждений в прямом направлении
- •If посылка then заключение.
- •Формирование цепи рассуждений в обратном направлении
- •Средства отладки базы знаний
- •Окно связи правил (Rule Relations)
- •Окно трассировки правил (Rule Trace)
- •Активная трассировка при прямом формировании цепочки рассуждений
- •Окно просмотра иерархии выводов (Inference Browser)
- •Средства создания интерфейса с пользователем. Окно сеанса (Session Window)
- •Средства объяснений оболочки kappa
- •Практическое задание
- •Разработка и программирование объектной модели предметной области
- •Разработка и программирование функциональной модели предметной области
- •Компьютерный практикум по нечетким системам
- •Аппроксимация функции одной переменной с использованием нечеткой системы
- •Варианты заданий
- •Построение элементарной нечеткой экспертной системы
- •Программирование нечеткой системы в среде matlab с использованием встроенных функций
- •Кластеризация с помощью алгоритма нечетких центров
- •Компьютерный практикум по нейронным сетям
- •Аппроксимация функции на основе нейронных сетей
- •Варианты заданий
- •Использование инструмента nnTool для построения нейронной сети
- •Кластеризация с помощью нейронных сетей
- •Рекуррентные нейронные сети Хопфилда и Хэмминга
- •Нейронные сети радиально-базисных функций. Вероятностные сети
- •Построение нейронечеткой модели с помощью anfis-редактора
- •Приложение 1. Функции пакета «Fuzzy Logic Toolbox» системы matlab для работы с системами нечеткой логики
- •Приложение 2. Функции пакета «Neural Network Toolbox» системы matlab для работы с нейронными сетями
Рекуррентные нейронные сети Хопфилда и Хэмминга
Цель: Научиться использовать рекуррентные нейронные сети Хопфилда и Хэмминга.
Задание: Используя встроенные функции пакета нейронных сетей математической среды MATLAB рассмотреть использование рекуррентной нейронной сети Хопфилда на примере решения задачи ассоциативной памяти.
Пример выполнения:
Задача. Используя нейронную сеть Хопфилда из поданных на вход неидеальных сигналов восстановить соответствующий образец. Используя нейронную сеть Хэмминга из поданных на вход неидеальных сигналов восстановить номера соответствующих образцов.
NEWHOP(T) – функция создание рекуррентной сети Хопфилда, использует один входной аргумент, где Т – матрица размерностью RxQ, при этом Q – целевой вектор (значения должны быть +1 или -1), возвращает новую рекуррентную нейронную сеть Хопфилда со стабильными точками в векторе Т.
Рассмотрим сеть Хопфилда с четырьмя устойчивыми точками в двумерном пространстве:
T = [1 -1; -1 1; 1 1; -1 -1]' %определение 4 целевых стабильных точек
plot(T(1, : ),T(2, : ), '*r')
axis([-1.1 1.1 -1.1 1.1]);
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])
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,:)),grid
end
Произведя незначительные изменения в коде программы можно описать сеть в трехмерном пространстве:
T = [1 -1 1; -1 1 1; 1 1 1; -1 -1 -1]' %определение 4 целевых стабильных точек
plot3(T(1, : ),T(2, : ), T(3, : ), '*r')
net =newhop(T); % создание сети Хопфилда
W=net.LW{1,1}
b=net.b{1,1}
Ai = T;
Y=sim(net,4,[],Ai)
plot3(T(1, : ),T(2, : ),T(3, : ), '*r'), hold on
new=newhop(T);
[Y,Pf,Af]=sim(net,4,[],T);
for i=1:25
a={rands(3,1)};
[Y,Pf,Af]=sim(net,{1,20},{},a);
record=[cell2mat(a),cell2mat(Y)]
start=cell2mat(a);
plot3(start(1,1), start(2,1),start(3,1),'kx',record(1,:),record(2,:),record(3,:)),grid
end
Результат работы программ иллюстрируют рис. 6.21-6.22.
Рассмотрим сеть Хэмминга:
plot ([-1 1], [-1 1], 'm*'); %построение двух стабильных точек (образцов)
xlabel('X'); ylabel('Y'); %подписи осей
W1=[1 1 ; -1 -1 ]; %образцы, до которых рассчитывается расстояние
hold on;
b=[3;3]; %значение порога активации
W2=[1 -0.5; -0.5 1];
vec={[-0.8; 0.6; ]}; %входной вектор, который сравнивается с образцом
Q=cell2mat(vec); Q %перевод вектора в матрицу
plot(Q(1),Q(2), 'r*'); %построение указанной точки
a1=purelin(W1*Q+b); a1 %линейная функция активации для первого слоя нейронов
a2=poslin(W2*a1); a2 %положительная линейная функция активации возвращает макс. между 0 и значением матрицы
if a2(1)<a2(2)
X1=[Q(1) -1]; Y1=[Q(2) -1]; plot(X1, Y1, 'r--')
else X1=[Q(1) 1]; Y1=[Q(2) 1]; plot(X1, Y1, 'r--')
end; %построение отрезка между указанной точкой и образцом, расстояние Хэмминга между которыми наименьшее
Результат работы программы:
a1 = (2.8 3.2), a2 = (1.2 1.8).
Расстояние между входной точкой (-0.8, 0.6) и эталонной точкой с координатами (-1,-1) гораздо меньше, чем расстояние между входной точкой и эталонной точкой (1,1), поэтому сеть Хэмминга относит входную точку к эталону (-1,-1).
Результат работы программы иллюстрируется на рис. 6.23.
Рис. 6.21. Результат работы сети Хопфилда в двумерном пространстве
после 25 инициализаций
Рис. 6.22. Результат работы сети Хопфилда в трехмерном пространстве
после 25 инициализаций
Рис. 6.23. Нахождение расстояния Хэмминга в трехмерном пространстве
Вывод (пример):
В ходе выполнения лабораторной работы я ознакомился с теоретическими сведениями о рекуррентных нейронных сетях Хопфилда и Хэмминга. С использованием встроенных функций пакета нейронных сетей среды MATLAB построил сеть Хопфилда, с помощью которой из неидеальных сигналов поданных на вход были восстановлены соответствующие образцы. С использованием среды MATLAB построил сеть Хэмминга, с помощью которой из неидеального сигнала поданного на вход был восстановлен номер соответствующего образца. Был построен отрезок между указанной точкой и образцом, расстояние Хэмминга между которыми наименьшее.
Контрольные вопросы:
Почему при классификации нейронных сетей по принципу обучения для сетей Хопфилда и Хэмминга не подходят ни обучение с учителем ни обучение без учителя?
Для чего предназначена сеть Хопфилда?
В каких случаях сеть Хопфилда не может провести распознание?
Чем объясняется невысокая емкость сети Хопфилда?
Для чего предназначена сеть Хэмминга?
Что называют хэмминговым расстоянием?
Чем объясняется невысокая емкость сети Хэмминга?