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

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

プラン再構築

メタ強化学習関連をざっくり削除。「ニューロ評価関数+メタ強化学習で、動的にノードの追加・削除を行う」ってプランがあったのですが、それに関しても後で検討する事にします。

それから、リバーシ用の線形評価関数はイマイチ能力的に怪しい部分があるので、線形評価関数が絡む予備実験は王手将棋でやります。

強くなってるかどうかの検証に関しては、以前学習用マシンで使ってたCore 2 Extreme QX6700が余るんで、そっちで24時間フルにやる事にします。1局平均100秒として24時間で800局チョイ、これならそこそこ信用出来る値が出るんじゃないかと。

  • リバーシでの予備実験
    • TDLeaf(λ)実装。
    • TDLeaf(λ)を方策オフに修正。 ← 11月中には最低ここまではやる
  • 将棋の学習関連
    • TDLeaf(λ)エージェントを再実装。
      • 方策をエージェントから独立させる。
    • 学習中の各種統計情報の収集・表示ルーチン実装。
      • std::vectorあたりを勉強しとくこと。
    • 王手将棋での予備実験。
      • εグリーディーとソフトマックス手法の比較。
      • TDLeaf(λ)とTD(λ)の比較。
      • 評価関数を非線型に修正*1。 ← 年内にはこの辺まで
    • 対局部分の並列化。
    • 他のソフトとの連続対戦アプリ実装(勝率での検証用)。
    • 評価関数でのstd::mapの使用をやめる。
      • ひょっとしたらテンプレートを使用する必要があるかも。ここら辺は要検討。
    • 評価関数の修正。
      • 王将との相対位置の評価。
      • ピンの評価。
    • ハッシュ表の再実装。
    • MTD(f)再実装。静止探索部分でもハッシュを使用する。
    • 将棋のルールの細かい部分の実装。
    • シンプルなメタ強化学習でメタパラメータの調整。
      • クライアントサーバ方式なら、GAやUCB1部分はJavaでの実装がそのまま使えるかも。要検討。
  • floodgate参戦
  • 選手権での対局用
    • USIにちゃんと対応。
    • MTD-∞の実装。
    • 思考時間制御。

*1:http://shouchan.ei.tuat.ac.jp/~shougi/old_shougi/presentation/1999-10-07P.pdfの方式。実装理由については後日書きます。