Main Content

learnwh

Widrow・Hoff 重み/バイアス学習関数

構文

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

説明

learnwh は、Widrow・Hoff 重み/バイアス学習関数です。これは、デルタ規則または最小平均二乗 (LMS) 規則とも呼ばれます。

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

W

SR 列の重み行列 (または、b、および 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

新しい学習状態

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

LP.lr — 0.01

学習率

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

'pnames'

学習パラメーターの名前

'pdefaults'

既定の学習パラメーター

'needg'

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

ここでは、1 つの 2 要素入力と 3 つのニューロンをもつ層に対し、ランダムな入力 P と誤差 E を定義します。また、学習率 LR の学習パラメーターを定義します。

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

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

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

ネットワークの利用

linearlayerlearnwh を使用する標準的なネットワークを作成できます。

learnwh を使用して学習させるため、カスタム ネットワークの i 層の重みとバイアスを準備します。

  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 は、指定されたニューロンについて、ニューロンの入力 P と誤差 E、および重み (またはバイアス) の学習率 LR に基づき、Widrow・Hoff 学習規則に従って重みの変化 dW を計算します。

dw = lr*e*pn'

参考文献

Widrow, B., and M.E. Hoff, “Adaptive switching circuits,” 1960 IRE WESCON Convention Record, New York IRE, pp. 96–104, 1960

Widrow, B., and S.D. Sterns, Adaptive Signal Processing, New York, Prentice-Hall, 1985

バージョン履歴

R2006a より前に導入