今年の方針
もう日付変わっちゃいましたが、一年の計は元旦にありという事で今年の方針をば。
まず、一気に複数の事に手を付けると収集つかなくなるので、やる事とやらない事を大雑把に。
- 【最優先でやる事】自己対戦の経験をもとにした評価関数パラメータの学習。
- 【最優先じゃないけどやる事】αβ探索の効率化。
- 【余裕があれば、上記2つの後にやる事】合議を用いた学習・対局。
- 【やらない事】線形近似にかわる、新しい評価関数の枠組みの構築。
- 【やらない事】新しい探索ルーチンの実装。
- 【やらない事】探索ルーチンのパラメータ学習。
んで、やる事をさらに詳細に。
- 自己対戦学習。
- アルゴリズムの候補は三つ。
- PGLeaf
- PG行動期待値法
- TDLeaf(λ)
- シングルエンジンか合議かによって更に三つに分岐。
- シングルエンジンでの学習。
- 互いに独立して学習する複数エンジンでの合議。(評価項目は複数の異なるものを使用する。)
- 合議を前提に学習する複数エンジンでの合議。(同上)
- アルゴリズムの候補は三つ。
- 探索の効率化。ただし、「既存の強豪ソフトが既にやっている事」だけに限定し、それより先には行かない。
- 枝刈・打ち切り深さの短縮。
- LMR
- null move pruning
- Futility Pruning
- アルゴリズムレベル・実装レベルでのチューニング。
- 枝刈・打ち切り深さの短縮。
- 合議関連。
- まずは多数決合議。
- 余裕があれば、エンジンごとの固定重み付けをした合議。
- 更に余裕があれば、局面からエンジンごとの重みを計算する関数の実装。
- 重み関数のパラメータは学習によって調整する。
- 合議クライアント間での情報共有による強化(以前書いた幾つかの手法)。
新しい探索ルーチンに関しては、NegaMax探索とSoftMax方策を組み合わせたアルゴリズムがアイデアとしてあるんですが、評価関数の学習と同時にはやりたくないんで今年はパス。
当面はPGLeafでシングルエンジンの学習を10月中に完成させるのを目標とします。
んで、学習させつつ探索の効率化をはかり、ある程度深い(3〜5手程度の)学習に成功したら合議に取り組む予定。
学習・選手権での使用マシンとしては、Ivy Bridge-EPデュアルの24コアマシンを当面のターゲットとしています。
ものすごく大雑把ではありますが、大体こんな感じで進めていきます。