GA将?開発日記~王理のその先へ~

ネタ勢最強を目指して絶賛開発中。

選手権終わったらやりたい事

 カブロボに手を出すのはやめて、当分コンピュータ将棋に集中します。

  • 一からコードを書き直す(現在も進行中)
  • 三目並べ・リバーシ・将棋を一つの強化学習エージェントで学習可能にする
  • 評価関数は差分計算を基本にする
  • 評価項目の追加
    • 二駒の絶対位置関係
    • ひょっとしたら王将・大駒・金駒の三駒の位置関係はやるかも
    • 他にも色々要検討
  • ABC探索
  • Ponderの実装
    1. とりあえず普通の
    2. 相手番に、対局中の局面から学習してみる
  • 序盤はUCTで学習するのを試す
  • アンサンブル学習っぽい事
  • 全自動で連続対戦して強さの評価をするルーチン作る

 基本は重めの評価関数になっても良いので精度優先、速度は差分計算で稼ぐ方向で。速度の目標は全幅2手+静止探索で1日100万局。無謀か。

 アンサンブル学習っぽいのは、この間の合議制みたいなのをやれないかと。例えば、評価項目が違う複数の評価関数(駒割+位置評価だけで軽いのや、全部入りで精度重視とか)を強化学習で作って、それぞれの評価関数の指し手から多数決で指し手を決めれないかな、と。

 単純に一つの評価関数を使って並列化した場合より強くないと無意味ですけど、上手く行けば強化学習の強みを出せますし、一つの方向性として検討中です。

 もう一つの方向性は、単一の評価関数をひたすら重く&高精度にしていく方向ですけど、こっちはどういう評価項目を追加すればいいのか悩んでます。のびしろやら学習し易さやら計算速度やら考え出すと、なかなか理想的なのが無くて困ってます。

 まぁ、ひょっとしたら三駒の位置関係が劇重になってアンサンブルに回す時間が無い、ってパターンもあり得ますし、その辺は流動的に。

// 2009/05/01 22:16追記

 書き忘れてましたが、次のバージョンでは序盤・中盤の強化が主目標になると思います。現状では終盤はまぁまぁで、序盤がボロボロですから。

 んで、まず経験を受け取る側として、評価関数の精度向上と探索を深くするのを考えています。送り側はUCTしか思い付かなかったんですが、何か良い手が無いか検討中。探索深くしても多少マシにはなるでしょうし、それで何とかなればラッキーですが。

 とりあえず、そんな感じで検討中です。