learnsom

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

Синтаксис

[dW,LS] = learnsom(W,P,Z,N,A,T,E,gW,gA,D,LP,LS)
info = learnsom('code')

Описание

learnsom является самоорганизующейся функцией обучения весу карты.

[dW,LS] = learnsom(W,P,Z,N,A,T,E,gW,gA,D,LP,LS) принимает несколько входы,

W

S-by- R матрица веса (или S-by- 1 вектор смещения)

P

R-by- Q входные векторы (или ones(1,Q))

Z

S-by- Q взвешенные входные векторы

N

S-by- Q сетевые входные векторы

A

S-by- Q выходные векторы

T

S-by- Q целевой слой векторов

E

S-by- Q векторы ошибок слоя

gW

S-by- R градиент веса относительно эффективности

gA

S-by- Q выходной градиент относительно эффективности

D

S-by- S нейронные расстояния

LP

Параметры обучения, нет, LP = []

LS

Состояние обучения, первоначально должно быть = []

и возвращает

dW

S-by- R матрица изменения веса (или смещения)

LS

Новое состояние обучения

Обучение происходит согласно learnsomПараметры обучения, показанные здесь с их значениями по умолчанию.

LP.order_lr0.9

Упорядоченное расположение скорости обучения на фазе

LP.order_steps1000

Упорядоченное расположение шагов фазы

LP.tune_lr0.02

Настройка скорости обучения на фазе

LP.tune_nd1

Настройка расстояния соседства фазы

info = learnsom('code') возвращает полезную информацию для каждого code вектор символов:

'pnames'

Имена параметров обучения

'pdefaults'

Параметры обучения по умолчанию

'needg'

Возвращает 1, если эта функция использует gW или gA

Примеры

Здесь вы задаете случайный вход P, выход A, и весовой матрицы W для слоя с двухэлементным входом и шестью нейронами. Вы также вычисляете положения и расстояния для нейронов, которые расположены в шестигранном шаблоне 2 на 3. Затем вы задаете четыре параметра обучения.

p = rand(2,1);
a = rand(6,1);
w = rand(6,2);
pos = hextop(2,3);
d = linkdist(pos);
lp.order_lr = 0.9;
lp.order_steps = 1000;
lp.tune_lr = 0.02;
lp.tune_nd = 1;

Потому что learnsom эти значения нужны только для вычисления изменения веса (см. «Алгоритм» ниже), используйте их для этого.

ls = [];
[dW,ls] = learnsom(w,p,[],[],a,[],[],[],[],d,lp,ls)

Алгоритмы

learnsom вычисляет изменение веса dW для данного нейрона из входных данных нейрона P, активация A2, и скорость обучения LR:

dw = lr*a2*(p'-w)

где активация A2 найдено из вывода слоя A, расстояния между нейронами D, и текущий размер окрестности ND:

a2(i,q) = 1,  if a(i,q) = 1
		 = 0.5, if a(j,q) = 1 and D(i,j) <= nd
		 = 0, otherwise

Область скорости обучения LR и размер окрестности NS изменяются через две фазы: фазу упорядоченного расположения и фазу настройки.

Фазы упорядоченного расположения длятся столько шагов, сколько LP.order_steps. На этой фазе LR отрегулирован из LP.order_lr вплоть до LP.tune_lr, и ND регулируется с максимального расстояния нейронов до 1. Именно на этой фазе ожидается, что веса нейронов сами упорядочятся во входном пространстве, сопоставимом с соответствующими положениями нейронов.

Во время фазы настройки LR медленно уменьшается от LP.tune_lr, и ND всегда установлено на LP.tune_nd. На этой фазе ожидается, что веса будут распределяться относительно равномерно по входному пространству с сохранением их топологического порядка, определенного на фазе упорядоченного расположения.

См. также

|

Представлено до R2006a
Для просмотра документации необходимо авторизоваться на сайте