2016-05-31 5 views
1

私は最近、テンソルフローを使用していました。キャプチャクラッキング、基本的なOCR、大学でのAI教育から覚えていること。それらは合理的に大きい問題であり、したがって、実際には異なるNNアーキテクチャで効果的に実験することはできません。Tensorflow:良い神経回路網/ハイパーパラメータを見つける方法?

おそらくあなたが知っているように、Joel GrusはテンソルフローのFizzBu​​zzで出てきました。 TLDR:数字の2進表現(すなわち、数字を符号化する12ビット)から4ビット(none_of_the_others、3で割り切れる、5で割り、15で割り切れる)を学習する。このおもちゃの問題では、異なるネットワークをすばやく比較できます。

私は単純なフィードフォワードネットワークを試していて、さまざまなアーキテクチャを比較するプログラムを書いています。 2隠れ層フィードフォワードネットワーク、3層、異なる活性化機能などのようなもの...ほとんどのアーキテクチャは、よく、吸う。彼らはあなたのトレーニングの程度に関係なく、どこかで50-60の成功率を達成し、そこにとどまります。

いくつかは本当にうまく機能します。例えば、23個のニューロンを有するシグモイド活性化二重隠蔽層は、それぞれ実際に良好に機能する(2000年の訓練時代後に89〜90%正確である)。残念ながら、それに近いものはどれも悲惨に悪いです。 1つ目のニューロンを2番目のレイヤーまたは1番目のレイヤーから取り出し、30%の確率で落とします。最初の層からそれを取り出すのと同じ...単一の隠れた層、20個のニューロンが活性化されたタンはかなりよく機能します。しかし、ほとんどの人はこのパフォーマンスの半分を少し上回ります。

現実の問題では、私は実際には異なるアーキテクチャのこれらの種類の研究を行うことはできませんが、良いアーキテクチャが動作することを保証する方法はありますか?

答えて

2

ハイパーパラメータとその設定の詳細については、Practical Recommendations for Gradient-Based Training of Deep ArchitecturesのYoshua Bengioによる論文をご覧ください。

保証がより保証されている設定を特に求めている場合は、バッチ正規化についてお読みください。私はそれが学習率と体重の初期化の悪い選択の失敗率を減少させることがわかります。

sigmoid()やtanh()のような非線形性の使用には、勾配の消失の問題があるため、使用をお勧めしない場合があります。

関連する問題