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

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

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

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

Алгоритмы

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

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

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

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

| |

Введенный в R2008a