(第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と比較すると 信頼性が高くなっていることが実感できると思います。

-------------