2016-06-16 4 views
0

ディープオートエンコーダー(漏洩ReLuを使用して5レイヤーエンコーディングと5レイヤーデコード)をトレーニングして、データの次元数を約2000個のディムスから2に減らしました。私のモデルを10kデータに訓練して、結果は受け入れられます。 大きなデータ(50k〜1M)を使用しているときに問題が発生します。同じオプティマイザで同じモデルを使用するとドロップアウトなどは機能せず、トレーニングは数エポック後に止まってしまいます。 私はオプティマイザ(私はアダムを使用しています)でいくつかのハイパーパラメータ検索をしようとしていますが、これで問題が解決するかどうかはわかりません。ディープオートエンコーダートレーニング、小データ対ビッグデータ

変更/確認する必要がありますか?この場合、バッチサイズは重要ですか?オプティマイザを微調整して問題を解決する必要がありますか? Shoul私はドロップアウト比率で遊ぶ? ...

アドバイスをいただきありがとうございます。

P.S.私はKerasを使用しています。それは非常に便利です。あなたはそれについて知っていない場合は、それをチェックアウト:あなたは真ん中のサイズを変更した場合

1)何が起こる:問題の原因を発見しようとしたときhttp://keras.io/

答えて

0

は、私は次の質問を持っているでしょう2から何か大きい層まで? 50k以上のトレーニングセットで訓練されたモデルのパフォーマンスを改善しますか?

2)1Mデータセットから無作為に選択した10kのトレーニングサンプルとテスト例はありますか?

私の推測では、トレーニングモデルでは、中間層で2次元だけを使用して50K-1Mのデータを伸長することはできません。したがって、モデルが10kデータ用にパラメータを収める方が簡単ですが、中間層からのアクティベーションはより賢明ですが、> 50kを超えるデータアクティベーションはランダムノイズです。

+0

ありがとうございます!これらのヒントはすべて役に立ちます。私は異なる10kのサブサンプルをテストしましたが、違いはありませんので、サンプルは公平に選択されていると推測します。符号化レイヤのサイズに関しては、サイズを大きくしても効果はありません。私は2の代わりに10に増やそうとしました。この場合、10kも50kも正しく訓練されません。 – Mos

0

調査の結果、使用しているレイヤー構成が何らかの形で問題になっていることがわかりました。これは少なくとも問題の一部を引き起こしているようです。

私は、符号化と復号に一連のレイヤーを使用しています。

入力:1764(薄暗くなり)

hidden1:1176

hidden2:588

エンコード:2

hidden3:588選択された層の大きさは、例えば、直線的に減少します

hidden4:1176

出力:1764(入力と同じ)

これは時々しか動作しないように見えますが、ハイパーパラメータの選択に敏感です。

これを指数関数的に減少するレイヤサイズ(エンコード用)とデコード用に置き換えようとしました。次のようになります。 1764,128,16,2,16,128,1764

この場合、トレーニングはよりロバストに行われているようです。私はまだこれが敏感であるかどうかを調べるためにハイパーパラメータ検索を行わなければならないが、いくつかの手動試験がその頑強さを示すようである。

他の興味深い点がある場合は、アップデートを投稿します。

関連する問題