Main Content

learngdm

モーメンタム項付き勾配降下法の重みとバイアスの学習関数

構文

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

説明

learngdm は、モーメンタム項付き勾配降下法の重みとバイアスの学習関数です。

[dW,LS] = learngdm(W,P,Z,N,A,T,E,gW,gA,D,LP,LS) は、いくつかの入力を取ります。

W

SR 列の重み行列 (または、S1 列のバイアス ベクトル)

P

RQ 列の入力ベクトル (または ones(1,Q))

Z

SQ 列の重み付き入力ベクトル

N

SQ 列の正味入力ベクトル

A

SQ 列の出力ベクトル

T

SQ 列の層のターゲット ベクトル

E

SQ 列の層の誤差ベクトル

gW

性能に関する SR 列の勾配

gA

性能に関する SQ 列の出力勾配

D

SS 列のニューロン距離

LP

学習パラメーター。なし。LP = []

LS

学習状態。初期値は []

これは、以下を返します。

dW

SR 列の重み (またはバイアス) 変更行列

LS

新しい学習状態

学習は learngdm の学習パラメーターに従って行われます。以下に、学習パラメーターとその既定値を示します。

LP.lr - 0.01

学習率

LP.mc - 0.9

モーメンタム定数

info = learngdm('code') は、次の各 code 文字ベクトルに関する有用な情報を返します。

'pnames'

学習パラメーターの名前

'pdefaults'

既定の学習パラメーター

'needg'

この関数が gW または gA を使用すると 1 が返される

ここでは、2 つの要素をもつ入力から 3 つのニューロンをもつ層に渡される重みに対し、ランダムな勾配 G を定義します。また、学習率を 0.5 と定義し、モーメンタム定数を 0.8 と定義します。

gW = rand(3,2);
lp.lr = 0.5;
lp.mc = 0.8;

learngdm は、重みの変化の計算でこれらの値のみを必要とするため (下の「アルゴリズム」を参照)、これらをそのように使用します。既定の初期学習状態を使用します。

ls = [];
[dW,ls] = learngdm([],[],[],[],[],[],[],gW,[],[],lp,ls)

learngdm は、重みの変化と新しい学習状態を返します。

アルゴリズム

learngdm は、指定されたニューロンについて、ニューロンの入力 P と誤差 E、重み (またはバイアス) W、学習率 LR、およびモーメンタム定数 MC に基づき、モーメンタム項付き勾配降下法に従って重みの変化 dW を計算します。

dW = mc*dWprev + (1-mc)*lr*gW

前回の重みの変化 dWprev は、学習状態 LS に格納され、ここから読み取られます。

バージョン履歴

R2006a より前に導入

参考

| |