人工ニューラルネットワーク(NN)で始めたとき、私は主な問題として過剰適合と戦わなければならないと思いました。しかし実際には、NNに20%のエラー率の障壁を通過させることさえできません。ランダムフォレストでスコアを打つことさえできません!
私は、NNがデータの傾向を把握し始めるために何をすべきかについて、非常に一般的なまたはそれほど一般的でないアドバイスを求めています。
NNの実装には、MNISTデータセットの分類に優れた(エラー率5%未満)チュートリアルからのコードで Theano Stacked Auto Encoderを使用します。これは多層パーセプトロンで、上部にソフトマックス層があり、隠された各層は後でオートエンコーダーとして事前トレーニングされます(チュートリアル 8章で詳しく説明します)。最大50個の入力機能と最大10個の出力クラスがあります。NNにはシグモイドニューロンがあり、すべてのデータは[0,1]に正規化されます。さまざまな構成を試しました:隠れ層とその中のニューロンの数(100-> 100-> 100、60-> 60-> 60、60-> 30-> 15など)、異なる学習と事前訓練料金など
そして、私が得ることができる最高のものは、検証セットで20%のエラー率とテストセットで40%のエラー率です。
一方、(scikit-learnから)Random Forestを使用しようとすると、検証セットで12%、テストセットで25%(!)のエラー率が簡単に得られます。
事前トレーニングを受けた私のディープNNの動作が非常に悪いのはどうしてですか?何を試せばいいですか?