learnsomb

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

Синтаксис

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

Описание

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

[dW,LS] = learnsomb(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

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

Обучение происходит согласно learnsomb"s параметр обучения, показанный здесь со значением по умолчанию:

LP.init_neighborhood

3

Начальный размер окрестности

LP.steps

100

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

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

'pnames'

Возвращает имена параметров обучения.

'pdefaults'

Возвращает параметры обучения по умолчанию.

'needg'

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

Примеры

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

p = rand(2,1);
a = rand(6,1);
w = rand(6,2);
pos = hextop(2,3);
d = linkdist(pos);
lp = learnsomb('pdefaults');

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

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

Использование сети

Можно создать стандартную сеть, которая использует learnsomb с selforgmap. Чтобы подготовить веса слоя i пользовательской сети для обучения с learnsomb:

  1. Задайте NET.trainFcn на 'trainr'. (NET.trainParam автоматически становится trainr"параметры по умолчанию.)

  2. Задайте NET.adaptFcn на 'trains'. (NET.adaptParam автоматически становится trains"параметры по умолчанию.)

  3. Установите каждую NET.inputWeights{i,j}.learnFcn на 'learnsomb'.

  4. Установите каждую NET.layerWeights{i,j}.learnFcn на 'learnsomb'. (Каждое свойство параметра весового обучения автоматически устанавливается на learnsomb"параметры по умолчанию.)

Чтобы обучить сеть (или включить ее для адаптации):

  1. Задайте NET.trainParam (или NET.adaptParam) свойства по желанию.

  2. Функции train (или adapt).

Алгоритмы

learnsomb вычисляет изменения веса, так что новый вектор веса каждого нейрона является средневзвешенным средним значением входных векторов, на которые нейрон и нейроны в его окрестности ответили выходом 1.

Фаза упорядоченного расположения длится столько шагов, сколько LP.steps.

На этой фазе соседство постепенно уменьшается с максимального размера LP.init_neighborhood вплоть до 1, где и остается с тех пор.

См. также

| |

Введенный в R2008a