exponenta event banner

learnlv2

Функция изучения веса LVQ2.1

Синтаксис

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

Описание

learnlv2 является LVQ2 функция обучения весу.

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

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

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

LP.lr - 0.01

Уровень обучения

LP.window - 0.25

Размер окна (от 0 до 1, обычно от 0,2 до 0,3)

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

'pnames'

Названия параметров обучения

'pdefaults'

Параметры обучения по умолчанию

'needg'

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

Примеры

Здесь определяется ввод образца. P, вывод A, весовая матрица W, и выходной градиент gA для слоя с двухэлементным входом и тремя нейронами. Также определите уровень обучения LR.

p = rand(2,1);
w = rand(3,2);
n = negdist(w,p);
a = compet(n);
gA = [-1;1; 1];
lp.lr = 0.5;

Поскольку learnlv2 только эти значения необходимы для вычисления изменения веса (см. «Алгоритм» ниже), используйте их для этого.

dW = learnlv2(w,p,[],n,a,[],[],[],gA,[],lp,[])

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

Можно создать стандартную сеть, использующую learnlv2 с lvqnet.

Подготовка весов слоя i пользовательской сети для изучения с помощью learnlv2,

  1. Набор net.trainFcn кому 'trainr'. (net.trainParam автоматически становится trainrПараметры по умолчанию.)

  2. Набор net.adaptFcn кому 'trains'. (net.adaptParam автоматически становится trainsПараметры по умолчанию.)

  3. Установить каждый net.inputWeights{i,j}.learnFcn кому 'learnlv2'.

  4. Установить каждый net.layerWeights{i,j}.learnFcn кому 'learnlv2'. (Для каждого свойства параметра weight learning автоматически устанавливается значение learnlv2Параметры по умолчанию.)

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

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

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

Алгоритмы

learnlv2 реализует векторное квантование обучения 2.1, которое работает следующим образом:

Для каждой презентации, если выигрышный нейрон i не должны были выигрывать, и runnerup j должны иметь, и расстояние di между нейроном-победителем и входом p примерно равно расстоянию dj от нейрона runnerup к входу p по заданному окну,

min(di/dj, dj/di) > (1-window)/(1+window)

затем переместить нейрон-победитель i весит от входного вектора и перемещает нейрон runnerup j веса к входу в соответствии с

dw(i,:) = - lp.lr*(p'-w(i,:))
dw(j,:) = + lp.lr*(p'-w(j,:))

См. также

| |

Представлен до R2006a