私は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%正確さを回避しているという点で非常に優れています。
私の質問は、オートエンコーダーにオーバーフィットしていますか? 別のニューラル ネットワークを使用して過剰適合していませんか? データポイントの数が少ないことが心配です。私のドロップアウトの使用は賢明に思えますか?