Мегаобучалка Главная | О нас | Обратная связь


Использование псевдоинверсии для синтеза сети Хопфилда



2015-11-27 805 Обсуждений (0)
Использование псевдоинверсии для синтеза сети Хопфилда 0.00 из 5.00 0 оценок




 

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

,

где — неизвестная матрица весов размерностью (в сети Хопфилда число нейронов равно числу входов), — известная матрица , составленная из целевых векторов.

Необходимо найти матрицу . Так как — прямоугольная матрица, то для нахождения можно использовать псевдообратную матрицу [13]

,

где псевдообратная матрица (матрица Мура‑Пенроуза) для .

В MATLAB псевдообратную матрицу вычисляет функция pinv, основанная на сингулярном разложении (SVD) матрицы [13]. Этот метод обладает большой устойчивостью к неточностям задания элементов матрицы и погрешностям округления. Тогда

W=T*pinv(T).

Программу Hopfield_pinv.m, использующую псевдоинверсию для синтеза сети Хопфилда, построим на основе программы Hopfield.m.Отличие состоит в вычислении матрицы весов по формуле W=T*pinv(T) и присвоении весам модели, созданной стандартной функцией newhop(T), вычисленных значений. Смещения принимаются нулевыми [14].

% Синтез сети Хопфилда с использованием псевдоинверсии

clear % очистка рабочего пространства

clc % очистка командного окна

close all % Закрытие всех окон

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)');

grid on;

disp('Нажмите Enter')

pause

% Создание сети

disp('Веса, вычисленные псевдоинверсией');

WP=T*pinv(T) % Вычисление весов методом псевдоинверсии

net=newhop(T); % Синтез модифицированной сети Хопфилда

disp('Веса модифицированной сети Хопфилда');

W=net.LW{1,1} % Веса модифицированной сети

%b=net.b{1,1} % СмещениЯ модифицированной сети

% Присвоение параметрам модифицированной сети значений,

% полученных псевдоинверсией

b=[0;0;0]; %В сети, синтезированной псевдоинверсией, нулевой вектор b

W={WP}; % Преобразование в массив ячеек

% Проверка принадлежности вершин квадрата к сети Хопфилда

Ai = {T};

Y = net(cell(1,2),{},Ai);

disp('Проверка принадлежности вершин квадрата к сети Хопфилда');

Y{1,1}

 

% Поведение сети при случайных начальных условиях

plot(T(1, :),T(2, :), 'r*');

hold on;

axis([-1.5 1.5 -1.5 1.5]);

xlabel('a(1)'), ylabel('a(2)');

for i=1:25

a={[-1.5; -1.5]+3*rand(2,1)}; % случайный вектор

Y=net(cell(1,50), {}, a); %модел. при случ. нач. условиях

% Y - массив ячеек, соответствующих каждому шагу моделирования

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

start=cell2mat(a);

plot(start(1,1), start(2, 1), 'kx', record(1, :), record(2, :));

end

grid on

title('Поведение сети при случайных начальных условиях');

Веса, вычисленные с помощью псевдоинверсии, несколько отличаются от весов модифицированной сети Хопфилда

Веса, вычисленные псевдоинверсией

WP =

1.0000 -0.0000

0 1.0000

Веса модифицированной сети Хопфилда

W =

1.1618 0

0 1.1618

Поведение сети при случайных начальных условиях имеет тот же характер, как и в случае модифицированной сети Хопфилда.

 

Задания

1. Проделайте все примеры, приведенные в работе.

2. Исследуйте влияние числа временных шагов на достижение устойчивого состояния модифицированной сети Хопфилда и сети, синтезированной с использование псевдоинверсии.

 



2015-11-27 805 Обсуждений (0)
Использование псевдоинверсии для синтеза сети Хопфилда 0.00 из 5.00 0 оценок









Обсуждение в статье: Использование псевдоинверсии для синтеза сети Хопфилда

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...
Как построить свою речь (словесное оформление): При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (805)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.042 сек.)