learnpn
正規化パーセプトロンの重みとバイアスの学習関数
構文
[dW,LS] = learnpn(W,P,Z,N,A,T,E,gW,gA,D,LP,LS)
info = learnpn('code
')
説明
learnpn
は、重みとバイアスの学習関数です。これは、入力ベクトルの大きさのばらつきが大きい場合に learnp
よりも高速に学習させることができます。
[dW,LS] = learnpn(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 | 新しい学習状態 |
info = learnpn('
は、次の各 code
')code
文字ベクトルに関する有用な情報を返します。
'pnames' | 学習パラメーターの名前 |
'pdefaults' | 既定の学習パラメーター |
'needg' | この関数が |
例
ここでは、1 つの 2 要素入力と 3 つのニューロンをもつ層に対し、ランダムな入力 P
と誤差 E
を定義します。
p = rand(2,1); e = rand(3,1);
learnpn
は、重みの変化の計算でこれらの値のみを必要とするため (下の「アルゴリズム」を参照)、これらをそのように使用します。
dW = learnpn([],p,[],[],[],[],e,[],[],[],[],[])
制限
パーセプトロンには、重要な制限が 1 つ存在します。解を求める際に、一連の入力ベクトルを線形分離できなければなりません。つまり、直線または超平面によって、ターゲットが 1 である入力ベクトルを 0 の値が割り当てられている入力ベクトルから分離できない場合、パーセプトロンはそれらを正しく分類できません。
アルゴリズム
learnpn
は、指定されたニューロンについて、ニューロンの入力 P
と誤差 E
に基づき、正規化パーセプトロン学習規則に従って重みの変化 dW
を計算します。
pn = p / sqrt(1 + p(1)^2 + p(2)^2) + ... + p(R)^2) dw = 0, if e = 0 = pn', if e = 1 = -pn', if e = -1
dW
の式は次のようにまとめることができます。
dw = e*pn'
バージョン履歴
R2006a より前に導入