ニューラルネットワークの非反復トレーニングの可能性は非常に大きく、これが潜在的にNSを学習する最速の方法です。 最も単純な場合(単純化する場所がない場合)から、非反復トレーニングの作業サイクルを開始したいと思います。 すなわち、線形活性化機能を備えた単層直接分配ネットワークでは、加重加算器です。 1つのニューロンのエラー関数は次のように定義されます。
flos(W)= sumni=1[yi−( summj=1wj cdotxij)]2
どこで W = \ {w_1、... w_k \};W = \ {w_1、... w_k \}; 、mはニューラルネットワークの入力数、nはトレーニングサンプルのパワーです。これは、各ニューロンの理想的な出力値「y」と入力ベクトル「x」のペアで構成されます。 また、各ニューロンを個別にトレーニングできることも注目に値します。
ネットワークは次の場合にトレーニングされます。 flos(W)\右矢印min 、つまり エラーが最小の場合。
活性化関数が線形であり、誤差関数の方程式が二次関数である場合、そのような関数には最大値がなく、したがって、 frac partialflos(W) partialwi=0 最小条件です。 最初にこの導関数を定義し、それを0と同等にしましょう。
frac partialflos(W) partialwk=−2 cdot sumni=1(yi− summj=1wj cdotxij)xik=0;
一連の変換の後、次のようになります。
summj=1(wj cdot sumni=1xij cdotxik)=− sumni=1xik cdotyi;
ここで、kはシステム内の方程式の数です。
トレーニングを完了するには、重みベクトルWを計算する必要があります。最後の式が各方程式について記述されている場合、Wに関するSLAEであることに気付くのは難しくありません。 。 各ニューロンの重みは次のように記述できます。
wj= fracdet(Aj)det(A);A= beginpmatrixa11.........a1m..................am1.........amm endpmatrix;B= beginpmatrixb1....bm endpmatrix;akj= sumni=1xij cdotxik;bk=− sumni=1yi cdotxik;
これが行列です Aj これは、j番目の列がベクトルBで置き換えられた行列「A」です。これは、ニューロンが何らかの方法で接続されていないという事実のため、1つのニューロンのトレーニングです。
PS記事にコメントがあれば、書いてください。建設的な批判にいつも満足しています。