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изучение параметра, показанного здесь с его значением по умолчанию.

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