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- матрица (или 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- градиент относительно производительности

gA

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

D

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

LP

Изучая параметры, ни один, LP = []

LS

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

и возвращается

dW

S- (или смещение) изменяют матрицу

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

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