exponenta event banner

learnlv1

Функция изучения веса LVQ1

Синтаксис

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

Описание

learnlv1 - функция обучения LVQ1 весу.

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

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

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

LP.lr - 0.01

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

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

'pnames'

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

'pdefaults'

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

'needg'

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

Примеры

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

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

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

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

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

Можно создать стандартную сеть, использующую learnlv1 с lvqnet. Подготовка весов слоя i пользовательской сети для изучения с помощью learnlv1,

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

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

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

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

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

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

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

Алгоритмы

learnlv1 вычисляет изменение веса dW для данного нейрона из входа нейрона P, вывод A, выходной градиент gAи скорость обучения LR, согласно LVQ1 правило, данное i, индекс нейрона, выход которого a(i) равно 1:

dw(i,:) = +lr*(p-w(i,:)) если gA(i) = 0;= -lr*(p-w(i,:)) если gA(i) = -1

См. также

| |

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