learnwh

Функция изучения веса/смещения Видроу-Хофф

Синтаксис

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

Описание

learnwh функция изучения веса/смещения Видроу-Хофф и также известна как правило наименее среднеквадратического (LMS) или дельту.

[dW,LS] = learnwh(W,P,Z,N,A,T,E,gW,gA,D,LP,LS) берет несколько входных параметров,

W

S- R матрица веса (или b, и 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

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

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

LP.lr — 0.01

Темп обучения

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

'pnames'

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

'pdefaults'

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

'needg'

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

Примеры

Здесь вы задаете случайный вход P и ошибка E для слоя с двухэлементным входом и тремя нейронами. Вы также задаете темп обучения LR изучение параметра.

p = rand(2,1);
e = rand(3,1);
lp.lr = 0.5;

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

dW = learnwh([],p,[],[],[],[],e,[],[],[],lp,[])

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

Можно создать стандартную сеть, которая использует learnwh с linearlayer.

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

  1. Установите net.trainFcn к 'trainb'. net.trainParam автоматически становится trainbпараметры по умолчанию.

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

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

  4. Установите каждый net.layerWeights{i,j}.learnFcn к 'learnwh'.

  5. Установите net.biases{i}.learnFcn к 'learnwh'. Каждый вес и смещение, изучающее свойство параметра, автоматически установлены в learnwh параметры по умолчанию.

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

  1. Установите net.trainParam (или net.adaptParam) свойства к требуемым значениям.

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

Алгоритмы

learnwh вычисляет вес изменяют dW для данного нейрона от входа P нейрона и ошибка E, и вес (или смещение) темп обучения LR, по словам Видроу-Хофф, изучающего правило:

dw = lr*e*pn'

Ссылки

Widrow, B. и М. Хофф, “Адаптивные переключающие схемы”, 1 960 IRE Запись Соглашения WESCON, нью-йоркский IRE, стр 96–104, 1960

Widrow, B. и S.D. Кормы, адаптивная обработка сигналов, Нью-Йорк, Prentice Hall, 1985

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

| |

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