exponenta event banner

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около-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

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

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

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'. (Для каждого свойства параметра weight learning автоматически устанавливается значение learnsombПараметры по умолчанию.)

Обучение сети (или возможность ее адаптации):

  1. Набор NET.trainParam (или NET.adaptParam) требуемые свойства.

  2. Звонить train (или adapt).

Алгоритмы

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

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

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

См. также

| |

Представлен в R2008a