Главная страница
Навигация по странице:

Медведев В.С., Потемкин В.Г. Нейронные сети. MATLAB 6. В. Г. Потемкин



Скачать 14.83 Mb.
Название В. Г. Потемкин
Анкор Медведев В.С., Потемкин В.Г. Нейронные сети. MATLAB 6.doc
Дата 26.04.2017
Размер 14.83 Mb.
Формат файла doc
Имя файла Медведев В.С., Потемкин В.Г. Нейронные сети. MATLAB 6.doc
Тип Книга
#3790
страница 26 из 50
1   ...   22   23   24   25   26   27   28   29   ...   50

8.2. Сети Хопфилда


Всякий целевой вектор можно рассматривать как набор характерных признаков некоторого объекта. Если создать рекуррентную сеть, положение равновесия которой совпадало бы с этим целевым вектором, то такую сеть можно было бы рассматривать как ассоциативную память. Поступление на вход такой сети некоторого набора признаков в виде начальных условий приводило бы ее в то или иное положение равновесия, что позволяло бы ассоциировать вход с некоторым объектом. Именно такими ассоциативными возможностями и обладают сети Хопфилда. Они относятся к классу рекуррентных нейронных сетей, обладающих тем свойством, что за конечное число тактов времени они из произвольного начального состояния приходят в состояние устойчивого равновесия, называемое аттрактором. Количество таких аттракторов определяет объем ассоциативной памяти сети Хопфилда. Описание сетей Хопфилда читатель может найти в книге [18].

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

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

Основополагающей работой, связанной с анализом и синтезом модифицированных сетей Хопфилда, является статья [25].

По команде help hopfield можно получить следующую информацию об М-функциях, входящих в состав ППП Neural Network Toolbox и относящихся к построению модифицированных сетей Хопфилда:


Hopfield recurrent networks

Рекуррентная модифицированная сеть Хопфилда

New networks

Формирование сети

newhop

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

Weight functions

Операции с весовой функцией

dotprod

Скалярное произведение

Net input functions

Операции над входами

netsum

Суммирование

Transfer functions

Функции активации

satlins

Симметричная линейная функция с ограничениями

Demonstrations

Демонстрационные примеры

demohop1

demohop2

demohop3

demohop4

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

Пример неустойчивой точки равновесия

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

Пример устойчивых паразитных точек равновесия

Архитектура сети


Архитектура модифицированной сети Хопфилда представлена на рис. 8.5.

Рис. 8.5

Вход p устанавливает значения начальных условий. В сети используется линейная функция активации с насыщением satlins, которая описывается следующим образом:

(8.3)

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

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

T = [–1 –1 1; 1 –1 1]'

T =

–1 1

–1 –1

1 1

Выполним синтез сети:

net = newhop(T);

gensim(net)

Структура сети представлена на рис. 8.6.



a



б



в

Рис. 8.6

Читателю следует обратить внимание, что на схеме рис. 8.6, а вход и выход слоя совпадают; на рис. 8.6, б показаны используемые в рекуррентном слое элементы. Обратимся к информации о структуре слоя:

net.layers{1}

ans =

dimensions: 3

distanceFcn: 'dist'

distances: [33 double]

initFcn: 'initwb'

netInputFcn: 'netsum'

positions: [0 1 2]

size: 3

topologyFcn: 'hextop'

transferFcn: 'satlins'

userdata: [11 struct]

Из этого списка следует, что в слое используется функция инициализации initwb, функция суммирования входов netsum и функция активации satlins.

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

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

. (8.4)

При внимательном анализе приведенного соотношения можно действительно убедиться, что матрица весов LW11 равносильна переходной матрице динамической системы, а вектор смещений b1 – вектору передачи единичного входа. Необходимо сформировать эти элементы, если заданы точки равновесия системы t в вершинах гиперкуба.

Синтез сети


Метод проектирования модифицированных сетей Хопфилда описан в работе [25],
на основе этого метода разработан алгоритм синтеза, который реализован в ППП NT
в виде подфункции solvehop2(t) М-функции newhop.

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

Пусть задано Q целевых векторов, образующих матрицу T размера SQ:

(8.5)

Образуем новую матрицу Y размера SQ–1 следующего вида:

(8.6)

Вычислим разложение матрицы Y по сингулярным числам:

(8.7)

Далее образуем матрицы

(8.8)

где K – ранг матрицы Y.

Построим динамическую систему

, (8.9)

где T – матрица вида ТР – ТМ;  – динамический параметр (в алгоритме принят равным 10); E – единичная матрица.

Вычислим дискретную модель для системы (8.9):

, (8.10)

где Ф – переходная матрица вида ; F – матрица передачи входа вида с1 = eh –1, c2 = (1–eh)/; h – такт дискретности (в алгоритме принят равным 0.15 c).

Соответствующая матрица весов рекуррентного слоя и вектор смещения вычисляются следующим образом:

(8.11)

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

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

T = [–1 –1 1; 1 –1 1]'

T =

–1 1

–1 –1

1 1

Выполним синтез сети, используя М-функцию newhop:

net = newhop(T);

Удостоверимся, что разработанная сеть имеет устойчивые состояния в этих двух точках. Выполним моделирование сети Хопфилда, приняв во внимание, что эта сеть не имеет входов
и содержит рекуррентный слой; в этом случае целевые векторы определяют начальное состояние слоя Ai, а второй аргумент функции sim определяется числом целевых векторов:

Ai = T;

[Y,Pf,Af] = sim(net,2,[],Ai);

Y

Y =

–1 1

–1 –1

1 1

Действительно, устойчивые положения равновесия сети находятся в назначенных точках.

Зададим другое начальное условие в виде массива ячеек:

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

Ai{1,1}

ans =

–0.9000

–0.8000

0.7000

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

[Y,Pf,Af] = sim(net,{1 5},{},Ai);

Y{1}

Y =

–1

–1

1

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

Пример:

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

T = [1 –1; –1 1; 1 1; –1 –1]'

T =

1 –1 1 –1

–1 1 1 –1

На рис. 8.7 показаны эти 4 точки равновесия на плоскости состояний сети Хопфилда.

plot(T(1,:), T(2,:),'*r') % Рис.8.7

axis([–1.1 1.1 –1.1 1.1])

title('Точки равновесия сети Хопфилда')

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

Рис. 8.7

Рассчитаем веса и смещения модифицированной сети Хопфилда, использую М-функ­цию newhop:

net = newhop(T);

W= net.LW{1,1}

b = net.b{1,1}

W =

1.1618 0

0 1.1618

b =

3.5934e–017

3.5934e–017

Проверим, принадлежат ли вершины квадрата к сети Хопфилда:

Ai = T;

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

Y =

1 –1 1 –1

–1 1 1 –1

Pf = []

Af =

1 –1 1 –1

–1 1 1 –1

Как и следовало ожидать, выходы сети равны целевым векторам.

Теперь проверим поведение сети при случайных начальных условиях:

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

Результат представлен на рис. 8.8.

Рис. 8.8

Читатель может продолжить изучение модифицированных сетей Хопфилда, обратившись к демонстрационным примерам. Пример двумерной сети можно найти в демонстрации demohop1, пример неустойчивой точки равновесия – в демонстрации demohop2.
Демонстрация demohop3 дает пример трехмерной модифицированной сети Хопфилда. Демонстрация demohop4 иллюстрирует появление устойчивых паразитных точек равновесия.
1   ...   22   23   24   25   26   27   28   29   ...   50
написать администратору сайта