learncon

Функция обучения с смещением совести

Синтаксис

[dB,LS] = learncon(B,P,Z,N,A,T,E,gW,gA,D,LP,LS)
info = learncon('code')

Описание

learncon - функция обучения смещением совести, используемая для увеличения чистого входа нейронов, которые имеют самый низкий средний выход, пока каждый нейрон не ответит примерно равный процент времени.

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

B

S-by- 1 вектор смещения

P

1-by- 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

Состояние обучения, первоначально должно быть = []

и возвращает

dB

S-by- 1 матрица изменения веса (или смещения)

LS

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

Обучение происходит согласно learncon"s параметр обучения, показанный здесь с его значением по умолчанию.

LP.lr - 0.001

Скорость обучения

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

'pnames'

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

'pdefaults'

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

'needg'

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

Deep Learning Toolbox™ совместимость 2.0: LP.lr описанное выше равняется 1 минус временная константа смещения, используемая trainc в программном обеспечении Deep Learning Toolbox 2.0.

Примеры

Здесь вы задаете случайный выход A и вектор смещения W для слоя с тремя нейронами. Вы также задаете скорость обучения LR.

a = rand(3,1);
b = rand(3,1);
lp.lr = 0.5;

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

dW = learncon(b,[],[],[],a,[],[],[],[],[],lp,[])

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

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

  1. Задайте net.trainFcn на 'trainr'. (net.trainParam автоматически становится trainr"параметры по умолчанию.)

  2. Задайте net.adaptFcn на 'trains'. (net.adaptParam автоматически становится trains"параметры по умолчанию.)

  3. Задайте net.inputWeights{i}.learnFcn на 'learncon'

  4. Установите каждую net.layerWeights{i,j}.learnFcn на 'learncon'. (Каждое свойство параметра обучения весом автоматически устанавливается на learncon"параметры по умолчанию.)

Чтобы обучить сеть (или включить ее для адаптации),

  1. Задайте net.trainParam (или net.adaptParam) свойства по желанию.

  2. Функции train (или adapt).

Алгоритмы

learncon вычисляет изменение смещения db для данного нейрона путем первого обновления совести каждого нейрона, т.е. среднее течение его выхода:

c = (1-lr)*c + lr*a

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

b = exp(1-log(c)) - b

(learncon восстанавливает C из значений смещения каждый раз, когда он вызывается.)

См. также

| | |

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