2016-09-29 7 views
0

テンソルフローでは、指定されたエポック間隔の数の後に、一定のエポック数でcnnラーニングを実行し、その間にチェックポイントを保存しました。モデルを評価するために、チェックポイントが復元され、検証データセットの予測が実行されます。CNNラーニングを終了するタイミング

固定エポックを使用する代わりに、学習プロセスを自動化したいと考えています。ミニバッチを上回る損失値を停止点の決定にどのように利用できるか説明してください。また、テンソルフローの学習率減衰を実装するのに役立ちます。より良い一定の減衰または指数関数はどのように減衰係数を決定するか?

答えて

2

最初に反復回数を指定すると、バッチでの損失が改善されなくなった場合、つまりバッチ変動を減らすために2回の損失値AVERAGEDの差が所定のしきい値未満の場合にトレーニングを終了できます。

しかし、スレッショルドもハイパーパラメータであることに気がつきました。 実際にMLを完全に自動化する試みはかなりありますが、あなたが何をするにしても、いくつかのハイパーパラメータで終わります。

第2に、喪失が改善しなくなったと感じたときに使用され、あなたが地方の最小値にあり、実際に入ることなく井戸の内外を振動すると思うときに使用されます(この比喩は2私はそれがまだ役に立つと思う)。

ほぼいつもそれは手作りであるように見えます:200エポックを訓練するように、それは高原に達したので、ステップ関数であなたのlrを減らします(引数staircase = True in TF)そしてもう一度。

一般的には、学習率を10(指数関数的減衰)で除算することですが、それは非常に恣意的です。

TFで学習率減衰を実装する方法の詳細については、this SO questionでdgaの回答を参照してください。 これはかなり簡単です!

あなたが使用するスケジュールや値に役立つものは、クロスバリデーションですが、あなたの損失を見て手で行うことができることがよくあります。

徹底的に学習するにあたって銀色の弾丸はありません。試行錯誤です。

+0

あなたの問題を解決したと思われる場合は、それをアップアップすることができればそれを受け入れることができます。 – jean

+0

ジーン、あなたは他の停止基準を提案することができますcnn学習に役立つ損失機能のほかに?私はトレーニングと検証の精度の差のようなものを見てきました。 –

+0

また、最も重要な停止基準は、妥当性検査の損失が減少しなくなったり、それが上昇し始めるとすぐに過大評価の兆候であるため、訓練を絶対に止めなければなりません。 – jean

関連する問題