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

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

適格度トレースの実装完了

 意外と早く終わった理由は、λ収益の計算が不要になった(割引率1・対局途中の報酬0なので、λ収益=末端の評価値になる)ので、実際のコーディングの量が減ったとかが大きいですね。後、何度も実装したアルゴリズムなんで、意外と慣れてて速かったってのもありますが。

 んで、実際の効果は三目並べ・4x4のリバーシだと3〜5倍程度の高速化。あくまで「ざっと動かしてみた感じ」で、厳密に収束速度を計測した訳ではないですが。

 まぁ、大分効果はあったし、将棋だともっと手数が長くなるので効果が大きいはずと信じて、まずはこのコードで行こうと思います。

 そういう訳で現状の構成。

  • TDLeaf(λ) (ただし、探索が0手読みなので実質TD(λ)と同等の動作)
  • ソフトマックス方策
  • テーブル形式の評価関数
  • 自己対戦の結果から学習
  • ゲームの種類は三目並べとリバーシ

 これからは将棋の局面クラスとかを実装して、評価関数・探索ルーチンを作れば、前バージョンと同じ機能は揃います。あ、後、並列化も必要だった。

 局面クラスは利きの差分計算は必要だし、評価値も最終的には差分計算がしたいので、その辺の実装がしやすい構成にしようかと検討中。大体の設計は終わってる(ハズ)ですので、後の細かい所は現物あわせでやっていきます。