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- матрица (или 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

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

Изучение происходит согласно изучению learnlv1 параметра, показанного здесь с его значением по умолчанию.

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