IT

【Optimizer】hyperasでパラメーターチューニングをしてみる-part3

こんにちわ。toruです。

 

この記事では前回に引き続きhyperasを使ってディープラーニングモデルのパラメータチューニングしてきます。今回はoptimizerで試してしたいと思います。

 

それではいきましょう!

 



早速最適化アルゴリズムを自動で求める

hyperasのやり方などは前回、前々回と説明しましたので省略させていただきますが、もしやり方がわからない方はこちらをご覧ください。

■第一回目

【Dense】hyperasを使ってパラメータチューニングする-part1こんにちは。Toruです。 今回はディープラーニングで必要不可欠とされるパラメーターチューニングを勝手にやってくれるhyperas...

 

■第二回目

【Dropout】hyperasでパラメーターチューニングをしてみる-part2こんにちわ。Toruです。 今回は前回の続き、hyperasでパワメータチューニングをしてみる回です。今度はDropoutのチューニン...

 

今回hyperasには、最適化オプティマイザーのSGD, Adam, Nadamの中から最適なものを選択させます。

有名なSGD(確率的勾配降下法オプティマイザ)はさておき、AdamとNadamはあまり馴染みがない人もいるかと思いますので、簡単に説明すると、

RMSPropとmomumtumを組み合わせたのがAdamで、RMSPropとNesterov momentumを組み合わせたのがNadamです。

 

 

コンパイルレイヤーはこのように書きます。optimizerのところで3種類の最適化アルゴリズムから最適なものを選ばせます。

ちなみにhyperasでは最適値として出力される番号は0から始まります。今回で言うと、SGDが0、Adamが1、Nadamが2になります。

 

実行してみる

そして、これの実行結果が下記になります。

 

 

{'optimizer': 1} と出力されましたので、Adamが最適な値だと言うことがわかりました。

 

いよいよ最後の集大成

それでは第一弾、第二弾で求められたパラメータと組み合わせたモデルで、学習させてみましょう。組み合わせたプログラムがこちらになります。

 

 

実行した結果がこちら。

 

 

第一弾でパラメータを何もチューニングしない状態でAccuracyが97.85%だったので、今回で約1%上がりました。まあこんなもんか。



まとめ

このシリーズではhyperasを使ってどれだけAccuracyを上げることができるかについて書いてきましたが、自分が想像していたより結果が出なくて少し悲しいです。

 

しかしhyperasの使い方はだいぶ理解できたのでこれを他のプログラムで応用できると思います。よかったら皆さんもhyperasを試してみてください。また、「ここ、こうしたほうがいいよ」的なのがあったら教えてください。

 

 

参考サイト:

https://qiita.com/wataoka/items/f46224ccccc5321543bd

https://qiita.com/FukuharaYohei/items/c8cc9d80452350b449eb







ABOUT ME
Toru
24歳。会社資料の文章力を鍛えるためにブログ開設。機械学習・ディープラーニング勉強中。プログラミング、デバイス、PC、ガジェット類について紹介していきます。

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です