GA将?開発日記~原点回帰~

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

今年の方針

 もう日付変わっちゃいましたが、一年の計は元旦にありという事で今年の方針をば。

 まず、一気に複数の事に手を付けると収集つかなくなるので、やる事とやらない事を大雑把に。

  • 【最優先でやる事】自己対戦の経験をもとにした評価関数パラメータの学習。
  • 【最優先じゃないけどやる事】αβ探索の効率化。
  • 【余裕があれば、上記2つの後にやる事】合議を用いた学習・対局。
  • 【やらない事】線形近似にかわる、新しい評価関数の枠組みの構築。
  • 【やらない事】新しい探索ルーチンの実装。
  • 【やらない事】探索ルーチンのパラメータ学習。

 んで、やる事をさらに詳細に。

  • 自己対戦学習。
    • アルゴリズムの候補は三つ。
      1. PGLeaf
      2. PG行動期待値法
      3. TDLeaf(λ)
    • シングルエンジンか合議かによって更に三つに分岐。
      1. シングルエンジンでの学習。
      2. 互いに独立して学習する複数エンジンでの合議。(評価項目は複数の異なるものを使用する。)
      3. 合議を前提に学習する複数エンジンでの合議。(同上)
  • 探索の効率化。ただし、「既存の強豪ソフトが既にやっている事」だけに限定し、それより先には行かない。
    • 枝刈・打ち切り深さの短縮。
      1. LMR
      2. null move pruning
      3. Futility Pruning
    • アルゴリズムレベル・実装レベルでのチューニング。
  • 合議関連。
    1. まずは多数決合議。
    2. 余裕があれば、エンジンごとの固定重み付けをした合議。
    3. 更に余裕があれば、局面からエンジンごとの重みを計算する関数の実装。
      • 重み関数のパラメータは学習によって調整する。
    4. 合議クライアント間での情報共有による強化(以前書いた幾つかの手法)。

 新しい探索ルーチンに関しては、NegaMax探索とSoftMax方策を組み合わせたアルゴリズムがアイデアとしてあるんですが、評価関数の学習と同時にはやりたくないんで今年はパス。

 当面はPGLeafでシングルエンジンの学習を10月中に完成させるのを目標とします。

 んで、学習させつつ探索の効率化をはかり、ある程度深い(3〜5手程度の)学習に成功したら合議に取り組む予定。

 学習・選手権での使用マシンとしては、Ivy Bridge-EPデュアルの24コアマシンを当面のターゲットとしています。

 ものすごく大雑把ではありますが、大体こんな感じで進めていきます。