2017-02-19 25 views
0

トレーニング/検証の喪失時に何をすべきかについて、ここでいくつかの記事を読んでいます。私は誰かが一見見ることができて同意しないかと思っていますが、私の問題は十分に崩壊していないと思っています。Tensorflowトレーニング/検証の損失の問題

私はすばらしいブログ投稿hereに従っていますが、テンソルフローで実装しています。モデルを変換するのはかなり簡単ですが、運動量と学習率はやや厄介ですが、それは問題だと思います。私は損失が跳び上がるまでに多くの時代にしか行くことができない問題を抱えています。私が使っているモデルは、ブログチュートリアルのnet4/5と同等でなければなりません。

... Epoch /Time/Train Loss/Valid Loss/Learn Rate 
Epoch[ 900]0:14:11 0.000116 0.001566 0.027701 
Epoch[ 910]0:14:20 0.000107 0.001565 0.026593 
Epoch[ 920]0:14:29 0.000098 0.001564 0.026593 
Epoch[ 930]0:14:39 0.000088 0.001567 0.026593 
Epoch[ 940]0:14:48 0.000080 0.001567 0.026593 
Epoch[ 950]0:14:58 0.000069 0.001578 0.026593 
Epoch[ 960]0:15: 7 0.000072 0.001600 0.026593 
Epoch[ 970]0:15:17 0.000105 0.001664 0.026593 
Epoch[ 980]0:15:26 0.000221 0.001799 0.026593 
Epoch[ 990]0:15:35 0.000456 0.002045 0.026593 
Epoch[1000]0:15:45 0.000955 0.002473 0.025530 
Epoch[1010]0:15:54 0.002148 0.003415 0.025530 
Epoch[1020]0:16: 4 0.008455 0.009337 0.025530 
Epoch[1030]0:16:13 0.009042 0.010412 0.025530 
Epoch[1040]0:16:22 nan nan 0.025530 

私はこれを見て、その時点で学習率を下げる必要があるように思えます。それは心配していますが、チュートリアルの数字とよく一致しません。

ブログ投稿の次のステップは、ドロップアウトを追加することです。私はすでにモデルに実装しています。ここでは、テンソルブールを渡してトレーニングの有無を伝えるだけです。ドロップアウトが有効になっているので、私は150エポック未満の人になってしまい、問題が何であるか分かりません。それはシステムを正式化することになっているので、私はこれが起こることを期待していませんでした。

... Epoch /Time/Train Loss/Valid Loss/Learn Rate 
Epoch[ 0]0: 0: 1 0.025211 0.025614 0.045000 
Epoch[ 10]0: 0:11 0.003496 0.004075 0.045000 
Epoch[ 20]0: 0:22 0.003202 0.003742 0.045000 
Epoch[ 30]0: 0:32 0.003169 0.003712 0.045000 
Epoch[ 40]0: 0:42 0.003084 0.003605 0.045000 
Epoch[ 50]0: 0:53 0.002976 0.003507 0.045000 
Epoch[ 60]0: 1: 3 0.002891 0.003437 0.045000 
Epoch[ 70]0: 1:14 0.002795 0.003381 0.045000 
Epoch[ 80]0: 1:24 0.002648 0.003317 0.045000 
Epoch[ 90]0: 1:34 0.002408 0.003181 0.011250 
Epoch[ 100]0: 1:45 0.002267 0.003107 0.011250 
Epoch[ 110]0: 1:55 0.001947 0.003003 0.011250 
Epoch[ 120]0: 2: 6 0.004507 0.005768 0.011250 
Epoch[ 130]0: 2:16 nan nan 0.011250 

ドロップアウトを有効にすることで問題になる可能性のあることについて考えてみましょうか?私は全く同じモデルafaikを作りましたが、ナノの問題がなくても私の損失はそれほど良くありません。

マイコード:https://github.com/sdeck51/CNNTutorials/blob/master/7.%20FacialFeatureDetection_Tutorial/FaceDetector.ipynb

EDIT:

だから私は私の畳み込み層が誤って設定しています。私はこれを持っているチュートリアルを終えました。

InputLayer   (None, 1, 96, 96)  produces 9216 outputs 
Conv2DCCLayer   (None, 32, 94, 94)  produces 282752 outputs 
MaxPool2DCCLayer  (None, 32, 47, 47)  produces 70688 outputs 
Conv2DCCLayer   (None, 64, 46, 46)  produces 135424 outputs 
MaxPool2DCCLayer  (None, 64, 23, 23)  produces 33856 outputs 
Conv2DCCLayer   (None, 128, 22, 22)  produces 61952 outputs 
MaxPool2DCCLayer  (None, 128, 11, 11)  produces 15488 outputs 
DenseLayer   (None, 500)    produces  500 outputs 
DenseLayer   (None, 500)    produces  500 outputs 
DenseLayer   (None, 30)    produces  30 outputs 

と私はちょうど更新したので、今は同じだと思います。

conv: input size: (?, 96, 96, 1) 
pool: input size: (?, 94, 94, 32) 
conv: input size: (?, 47, 47, 32) 
pool: input size: (?, 46, 46, 64) 
conv: input size: (?, 23, 23, 64) 
pool: input size: (?, 22, 22, 128) 
fc: input size before flattening: (?, 11, 11, 128) 
fc: input size: (?, 15488) 
fc: input size: (?, 500) 
fc: input size: (?, 500) 
out: (?, 30) 

まだ動作しません。畳み込みレイヤーと最初に完全に接続されたレイヤーでドロップアウトが有効になると、モデルは50エポック以下で続き、エラーは屋根を通過します。非常に小さな学習率でも、問題は依然として発生します。

Epoch[ 0]0: 0: 1 0.029732 0.030537 0.030000 
Epoch[ 10]0: 0:11 0.004211 0.004986 0.030000 
Epoch[ 20]0: 0:20 0.003013 0.003530 0.004500 
Epoch[ 30]0: 0:30 5.250690 5.426279 0.004500 
Epoch[ 40]0: 0:40 nan nan 0.000675 

そして、それは> _> ...

EDIT非ドロップアウト方式が壊れているように見えると同じことをやって:私は、私は問題を考え出したと思います。私は時間の経過と共に勢いを増す運動量最適化アルゴリズムを使用しています。私はそれが少し増えてオーバーシュートを起こしていると思います。現在、ドロップアウトなしで動作していますが、一定の勢いを持つことで、以前よりも良い結果が得られます。私は1000エポックを実行した後、私はドロップアウトでそれをチェックしようとしています

ドロップアウトで今実行しているので、私は問題を修正したと思います。

+0

私のモデルでは大きな問題が見つかりました。私は畳み込みレイヤのパラメータを正しく設定していないので、パスを取ってそれらが正しいことを確認してから、同じ問題がまだ起きているかどうかを確認します。 – Exuro

答えて

0

問題は確かにオプティマイザでした。私はMomentumオプティマイザを使用しています。私はそれを最初に.9に設定しました。それは、そのエポックサイクルの終わりに向けて.999になるはずです。なんらかの理由で、余分な勢いが空ロケットの損失を引き起こしています。これを.9としておくと、問題が解決されます。

関連する問題