Testを行って損失が最小となるときの学習率を初期値として決定して良さそう。前書き山岡さんの『ディープラーニングによる将棋AIの作り方3』を読んでいて、floodgateの2017年、2018年の棋譜もhttp://wdoor.c.u-tokyo.ac.jp/shogi/x/から入手できることを知った。2015年から2018年までの棋譜をダウンロードし、R2800以上のソフト同士が投了で終了したものだけを残したところ約1千万局面ほどになった。データ数としては足りないのだが、簡単な検証をする分には十分な量なのではないかと思ったのでしばらく教師あり学習で遊んでみたい。どのような実験をするにしても学習率を自動決定できれば嬉しい。Testが学習率の決定に利用できるのではないかと思ったので実装したみた。実のところ元論文はほとんど読んでおらず、やを読んでそれっぽい実装をしてみただけとなる。倍していき、学習時の損失を記録してくものとなっている。コードはMiacisのlearn.cppにある通りとなる。して各バッチサイズについてそれぞれ10回試行して平均を取った結果を示す。0.020484となっている。この結果をそのまま採用するならバッチサイズが小さくなったときに最適な学習率が大きくなるということになってしまうが、個人的には違和感がある。最下点あたりでの誤差で多少ぶれがあるのでもう少し試行回数を増やした方が良いかもしれない。経験的にはバッチサイズ4096ならば学習率を0.1〜0.2にしても学習は進む。学習率の上げ方が細かすぎて、良い学習率に到達する前に学習が進みすぎているのかもしれないと考え、学習率の上昇率を1.2倍にして同じ実験を行った。して各バッチサイズについてそれぞれ15回以上試行して平均を取った結果を示す。大きく結果が変わるわけではなかった。0.0304772となった。試行回数を増やした影響かバッチサイズの大小と最下点での学習率の大小が連動しており、こちらのほうがもっともらしい結果だと感じる。最下点での学習率を良い学習率として採用して良いのかという問題はあるが、みたところ最下点での学習率もそこまで大きいものではないし、学習中にいくらか学習率は減衰させるので初期学習率は(発散しない程度ならば)多少大きくても良いのではないかと勝手に考えるものとして、とりあえずは最下点での学習率を初期値としてやっていこうと思う。Rateの手法自体も実装してみたい。持ち駒は正規化した方が良さそう。今までは再現性や比較の観点から毎回ランダム初期化したパラメ...2019-04-10小さいバッチサイズに対する学習率設定Miacisではバッチサイズ64で学習を行っている。月別アーカイブはてなブログをはじめよう!tokuminiさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。