1

私は11002つのクラスのシーケンスを持っています。それら400の 1 からのものclass 1であり700、からのものclass 2です。2ニューロンの 1 つの隠れ層オート エンコーダーを使用して、特徴をキャプチャしました。私の最初の機能は、各シーケンスのトライグラムです。したがって、シーケンスごとに6860トライグラムがあります。その結果、私の入力ベクトルのほとんどは疎なベクトルです。

さて、このネットワークのパラメータを計算すると、

6860 * 2 = 13720 paramters (1st layer)
2 * 6860 = 13720 parameters (2nd layer)
-----------------------------------------
           27440 parameters (in total)

さて、私のデータポイントの数と比較して、それはあまりにも多くのパラメータです. したがって、ドロップアウト値を使用しました 、0.98およびlayer 1->hidden layer各レイヤーhidden layer->output layerのパラメーターの数とパラメーターの合計数を作成します。13720 * 0.02 = 274548

さて、トレーニングの後、シーケンスのテストデータでエンコーダーを試し、5002次元データの隠れ層を抽出しました。次に、そのデータを別の 5 ニューロンの単一隠れ層ニューラル ネットワークで使用して分類します。私の結果は、90%正確さを回避しているという点で非常に優れています。

私の質問は、オートエンコーダーにオーバーフィットしていますか? 別のニューラル ネットワークを使用して過剰適合していませんか? データポイントの数が少ないことが心配です。私のドロップアウトの使用は賢明に思えますか?

4

1 に答える 1

0

データが完全に収まるまで、ドロップアウトをオフにして隠しレイヤーのサイズを増やしてみてください。その後、その隠しレイヤーのサイズを使用してドロップアウト パラメータを増やし始め、モデルの動作の感触をつかむことができます。

また、重みの更新を調整するためにアルファ パラメータを追加することもできます。

また、いくつかのパラメーターを一緒に集計することができた場合もあります。

于 2016-11-13T06:02:24.623 に答える