exponenta event banner

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