エコー状態ネットワークに精通している人は誰ですか?私はC#でエコー状態のネットワークを作成しました。その目的は、入力をGOODとNOT GOODに分類することでした。入力は倍数の配列です。私はおそらくこの分類のエコー状態ネットワークが最良の選択ではないことを知っていますが、私はこの方法でそれをしなければなりません。エコー状態ニューラルネットワーク?
私の問題は、ネットワークを訓練した後、それが一般化できないということです。私は外国のデータ(教授の入力ではない)でネットワークを走らせるとき、私は約50-60%の良い結果しか得ません。
詳細:私のエコー状態ネットワークは関数近似器のように動作しなければなりません。関数の入力は17のdouble値の配列で、出力は0または1です(入力を悪い入力または良い入力に分類する必要があります)。
私はネットワークを作成しました。これには、17ニューロンの入力層と、ネオン数が調整可能なリザーバ層と、0または1の出力に必要な1ニューロンを含む出力層が含まれています。単純な例では、出力フィードバックは使用されません(出力フィードバック同様に、しかし何も変わっていない)。
リザーバ層の内側のマトリックスも調整可能です。私は調整可能なスパースネス比で2つの二重値(最小、最大)の間の重みを生成します。値が大きすぎる場合、マトリックスは、1より小さいスペクトル半径を有するように行列をノルムライズする。リザーバ層は、シグモイドおよびタン活性化関数を有することができる。
入力層は、ランダム値でリザーバ層に完全に接続されています。したがってトレーニング状態では、学習データを使って内部のX(n)予備の活性化を計算し、それを行列の列に集めます。所望の出力データ行列(今は0の0の値を持つベクトル)を使用して、出力の重みを計算します(リザーバから出力へ)。リザーバは出力に完全に接続されています。エコー状態のネットワークを使っている人が何を話しているかは分かりません。私はこのための擬似逆方法です。
問題は、ネットワークを調整してより一般化するにはどうすればいいですか?外国のデータセット(訓練用データセットではない)で希望のアウトプットの50-60%以上を打つ。トレーニングデータセットを使用してネットワークを再起動すると、80-90%と非常に良い結果が得られますが、それをより一般化することが望ましいです。
エコー状態のネットワークで誰かがこの問題を抱えていることを願っています。
「誰かができる場合は、私が問題をより完全に説明できるように返答してください。」どのようにあなたはより完全に説明し、その後我々は応答する? – Annabelle