AlphaGo Zeroのニューラルネットワークの学習の最適化に使用されているモーメントありSGDを将棋AIで試してみた。
以前に、最適化手法を比較した際、Adamのような学習率を自動で調整する手法よりSGDの方が学習効率が高かった。
AlphaGo FanバージョンでもSGDが使われている。
AlphaGo Zeroでは、SGDにモーメントを付けた、モーメントありSGDが使われている。
そこで、SGDとモーメントありSGDの比較を行った。
SGDとモーメントありSGDの比較
測定条件
average train loss
※policyとvalueの損失の合計
test loss
※policyとvalueの損失の合計
test accuracy policy
test accuracy value
考察
比較結果から、モーメントありSGD(MomentumSGD)の方がSGDより、policy、valueともに学習効率が高いことがわかった。
電王トーナメント向けに35.8億局面学習したモデルでは3エポックの途中でtest accuracyが飽和したが、モーメントありにして3エポックをやり直したところ、SGDで飽和した値より学習が進むようになった。
現在、policyの一致率:46.1%、valueの一致率:78.2%になっており、約0.1%程改善している(学習継続中)。
SGDでは3エポックの途中で飽和した後さらに学習を続けると発散したが、モーメントありSGDでは発散していないので、間に合えば4エポック目の学習もできそうである。
※追記
とおもったが、やはり3エポック目の途中で飽和した後、発散した。