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- R матрица веса (или S- 1 сместите вектор),

P

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

Z

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

N

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

A

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

T

S- Q целевые векторы слоя

E

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

gW

S- R градиент веса относительно производительности

gA

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

D

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

LP

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

LS

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

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

dW

S- 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