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 |
|
P |
|
Z |
|
N |
|
A |
|
T |
|
E |
|
gW | 性能に関する |
gA | 性能に関する |
D |
|
LP | 学習パラメーター。なし。 |
LS | 学習状態。初期値は |
これは、以下を返します。
dW |
|
LS | 新しい学習状態 |
学習は learnwh
の学習パラメーターに従って行われます。以下に、学習パラメーターとその既定値を示します。
LP.lr — 0.01 | 学習率 |
info = learnwh('
は、次の各 code
')code
文字ベクトルに関する有用な情報を返します。
'pnames' | 学習パラメーターの名前 |
'pdefaults' | 既定の学習パラメーター |
'needg' | この関数が |
例
ここでは、1 つの 2 要素入力と 3 つのニューロンをもつ層に対し、ランダムな入力 P
と誤差 E
を定義します。また、学習率 LR
の学習パラメーターを定義します。
p = rand(2,1); e = rand(3,1); lp.lr = 0.5;
learnwh
は、重みの変化の計算でこれらの値のみを必要とするため (下の「アルゴリズム」を参照)、これらをそのように使用します。
dW = learnwh([],p,[],[],[],[],e,[],[],[],lp,[])
ネットワークの利用
linearlayer
で learnwh
を使用する標準的なネットワークを作成できます。
learnwh
を使用して学習させるため、カスタム ネットワークの i
層の重みとバイアスを準備します。
net.trainFcn
を'trainb'
に設定します。net.trainParam
は自動的にtrainb
の既定のパラメーターになります。net.adaptFcn
を'trains'
に設定します。net.adaptParam
は自動的にtrains
の既定のパラメーターになります。各
net.inputWeights{i,j}.learnFcn
を'learnwh'
に設定します。各
net.layerWeights{i,j}.learnFcn
を'learnwh'
に設定します。net.biases{i}.learnFcn
を'learnwh'
に設定します。各重みとバイアスの学習パラメーターのプロパティが、自動的にlearnwh
の既定のパラメーターに設定されます。
ネットワークに学習させるには (またはネットワークが適応できるようにするには)、次のようにします。
net.trainParam
プロパティ (またはnet.adaptParam
プロパティ) を目的の値に設定します。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 より前に導入
参考
adapt
| linearlayer
| train