##Deep Learning 重みの更新について
今回は私がtensorflowでDeep Learningのコードを書いていた際に困った重みの更新についての問題について書きたいと思います。
今回起きた問題は以下のようなものです。
epoch数が8000回前半で学習がやや落ちていき、その後学習が出来なくなると行ったものです。
初めは学習回数が多いため、メモリがいっぱいになったことが原因であると考えましたが学習を分割して行なった際も同じ現象が起きたためメモリの問題でないことは分かりました。
次に考えたのは重みの更新が間違っているのではないかと考えました。
重みに正しい値が入らないことによって学習が出来なくなることを防ぐために重みの更新の部分のコードを以下のように訂正しました。
・訂正前
tf.log(output)
・訂正後
tf.log(tf.clip_by_value(output,1e-10,1.0))
訂正前のものでは重みの値の範囲が指定されていないため重みの値に正しくない値が入ってしまうことがあります。
しかし、訂正後のものでは重みの値に範囲を指定しているため重みに正しくない値が入ることを防ぐことが出来ます。
訂正後の結果は以下のようになった。
この結果の画像だけでは信憑性に欠けますが、重みの値を更新する際に範囲を指定することによって途中で学習が出来なくなることはなくなりました。
使っている教材としてオライリー・ジャパンのDeep Learningシリーズや初めてのtensorflowなどを使用しています。