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- матрица (или 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- (или смещение) изменяют матрицу

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'. (Каждый вес, изучающий свойство параметра, автоматически установлен в параметры learnsomb по умолчанию.)

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

  1. Установите NET.trainParam (или NET.adaptParam) свойства, как желаемый.

  2. Вызовите train (или adapt).

Алгоритмы

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

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

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

Смотрите также

| |

Введенный в R2008a