メインコンテンツ

staticderiv

静的導関数

構文

staticderiv('dperf_dwb',net,X,T,Xi,Ai,EW)
staticderiv('de_dwb',net,X,T,Xi,Ai,EW)

説明

この関数は、ネットワークのパフォーマンスまたは出力から得られる連鎖律を使用して、その入力に遡る向きの微分を計算します。時系列データと動的ネットワークの場合、この関数は遅延接続を無視し、実際の微分の近似 (良い場合も悪い場合もある) を結果として出力します。この関数は、全微分の計算ができない場合に静的微分近似によって学習を行う動的ネットワークである、Elman ネットワーク (elmannet) によって使用されます。他のすべての導関数では全微分を計算するため、学習アルゴリズムの研究を除いて、この関数は動的ネットワークには推奨されません。

staticderiv('dperf_dwb',net,X,T,Xi,Ai,EW) は、次の引数を取ります。

net

ニューラル ネットワーク

X

入力。R 行 Q 列の行列 (または、Ri 行 Q 列の行列からなる N 行 TS 列の cell 配列)

T

ターゲット。S 行 Q 列の行列 (または、Si 行 Q 列の行列からなる M 行 TS 列の cell 配列)

Xi

入力遅延の初期状態 (オプション)

Ai

層遅延の初期状態 (オプション)

EW

誤差の重み (オプション)

そして、ネットワークの重みとバイアスに関する性能の勾配を返します。ここで、R と S は入力要素と出力要素の数、Q はサンプルの数です (また、N と M は入力信号と出力信号の数、Ri と Si は各入出力要素の数、TS はタイムステップの数です)。

staticderiv('de_dwb',net,X,T,Xi,Ai,EW) は、ネットワークの重みとバイアスに関する誤差のヤコビアンを返します。

フィードフォワード ネットワークの学習を行い、勾配とヤコビアンを計算します。

[x,t] = simplefit_dataset;
net = feedforwardnet(20);
net = train(net,x,t);
y = net(x);
perf = perform(net,t,y);
gwb = staticderiv('dperf_dwb',net,x,t)
jwb = staticderiv('de_dwb',net,x,t)

バージョン履歴

R2010b で導入