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

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

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

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

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

Алгоритмы

learnlv2 реализации, Изучающие Векторное Квантование 2.1, который работает можно следующим образом:

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

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

затем переместите нейрон победы i веса далеко от входного вектора и перемещения нейрон участника, занявшего второе место j веса к входу согласно

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

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

| |

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