単層パーセプトロンの非反復トレーニング。 分類タスク

ニューラルネットワークの非反復トレーニングの方法の開発に関する一連の記事を続けます。 この記事では、シグモイド活性化機能を備えた単層パーセプトロンをトレーニングします。 しかし、この方法は、飽和とその一次導関数がOY軸に関して対称である任意の非線形全単射活性化関数に適用できます。



前回の記事では、SLAEのソリューションに基づいたトレーニング方法を検討しましたが、それを解決しません。 これは面倒です。 ここで、このメソッドの「B」ベクトルのみに関心があります。このベクトルは、この記号またはその記号が分類にとってどれだけ重要かを反映しています。







\\ B = \ {b_1 ... b_m \}; \\ b_k =-\ sum_ {i = 1} ^ nx_k ^ i \ cdot y ^ i; \\ k \ in [1、m];









そして、ここでは、飽和を伴う活性化関数があるという事実により、重みは次のように表現できます:





\\ W = \ {w_1、...、w_m \}; \\ W = K \ cdot B;









最初に行うことは、交換です 。 なぜなら 分類の問題では、「y」は1(所属)または0(所属しない)のいずれかです。 そのtは1または-1でなければなりません。 ここから 。 今













ここで、係数「K」を分数で表現します。分子では、関数は0.99からのf-andアクティベーションの逆数(+無限大があるため、1から取得できません)、分母ではサンプルに含まれるすべての要素のモジュライの値の合計(おそらく、エネルギーの平方根を使用します)。 そして、これはすべて-1で乗算されます。



最終的な式は次のとおりです。













次の形式のシグモイドの場合 、逆f-



*小チェック

2つのペアがあります x ^ 1 = \ {1,0,1,0 \}; y ^ 1 = 1; x ^ 2 = \ {0.7,1,0.1,1 \}; y ^ 2 = 0; 。 上記の式に従って重量を計算します。













次に、結果のニューロンを介してベクトルを「駆動」します。ニューロンの応答の式を思い出してください。













最初のベクトルの結果は0.997、2番目のベクトルは- それは真実に非常に似ています。



*テスト



テストのために、ノイズのない2つの信号のトレーニングサンプル、1および2 Hz、200サンプルを取得しました。 1ヘルツは、国民議会{0,1}、2つの{1,0}の応答に対応しています。



テスト中に、信号+ガウスノイズが認識されました。 SNR = 0.33



認識は次のとおりです。

1Hz、最高の結果

画像

2 Hz、最高の結果



1 Hz、最悪の結果





精度が非常に高い場合(他の信号でテスト済み)。 このメソッドは、エラー関数をグローバルな最小値に減らすと思います。



トレーニングコード:

public void Train(Vector[] inp, Vector[] outp) { OutNew = new Vector[outp.Length]; In = new Vector[outp.Length]; Array.Copy(outp, OutNew, outp.Length); Array.Copy(inp, In, inp.Length); for (int i = 0; i < OutNew.Length; i++) { OutNew[i] = 2*OutNew[i]-1; } K = 4.6*inp[0].N*inp.Length; double summ = 0; for (int i = 0; i < inp.Length; i++) { summ += Functions.Summ(MathFunc.abs(In[i])); } K /= summ; Parallel.For(0, _neurons.Length, LoopTrain); } void LoopTrain(int i) { for (int k = 0; k < In[0].N; k++) { for (int j = 0; j < OutNew.Length; j++) { _neurons[i].B.Vecktor[k] += OutNew[j].Vecktor[i]*In[j].Vecktor[k]; } } _neurons[i].W = K*_neurons[i].B; }
      
      







今後の記事では、多層ネットワークのトレーニング、最適なアーキテクチャを備えたネットワークの生成、および畳み込みネットワークのトレーニングを検討する予定です。



All Articles