(第12回)ハイパーパラメーター最適化
重みやバイアス以外のパラメーターである学習率やWeighDecayのλ、DropOutRatioなどのハイパーパラメータを最適化 します。MNISTのデータセットを用いて、どのように最適化していくのか調べていきます。
<その1>
WeightDecayのλをハイパーパラメータとして最適値を探します。
下のプログラムを実行します。(第10回と同じディレクトリに保存して実行します)
実行するとパラメーターの探索を実施します。最後に正解率が高い物から15個取得して、グラフにします。
Best-1は
Best-1(val acc:0.76) | lr:0.00866728, weight decay:6.98663388e-05
ですので、これを学習に利用してみます。
<その2>
DoropOutのRatioをハイパーパラメータとして最適値を探します。
下のプログラムを実行します。(第10回と同じディレクトリに保存して実行します)
同じような出力がされます。
Best-1は
Best-1(val acc:0.78) | lr:0.00964039, dropout ratio:1.60053373e-05
ですので、これを学習に利用してみます。
<MNISTによる学習>
上で実行したその1とその2のハイパーパラメーターを利用して、学習をして、手書きの文字を認識してみます。
下のプログラムを実行します。(第10回と同じディレクトリに保存して実行します)
学習が完了すると、「MyNetwork_weight_decay.pkl」「MyNetwork_dropout.pkl」の2つが出力されます。(それぞれ数分かかります)さらに以下を実行すると 「test.png」のファイルにある手書きの文字を認識します。
何度かMNISTを実行してきましたが、いろいろな方法を使う事で、良さそうなモデルができました。第6回のMNISTと比較すると 信頼性が高くなっていることが実感できると思います。
-------------