今日までの分を反映
全然関係無い話から入りますが、今月入った辺りから鋼鉄の咆哮3ってゲームにハマってて、開発そっちのけでした。
おおざっぱに書くと「戦艦や空母を設計して、その艦を使って戦う」ってゲームなんですが、やってて思った事が一つ。
足し算で設計する…って言えばいいんでしょうか、「アレの為にコレが必要で、コッチの弱点を補うのにソレが必要で」って感じで設計してると、不必要に複雑になっちゃうってのに気付きました。艦でもプログラムでも。
という訳でコンピュータ将棋の話に戻りますが、この前保留と書いたメタ強化学習は、不要であれば実装しない方向で。無くても良いなら無い方が良いんじゃないかと思い直しました。
あー、それから、一応11月中の目標までは完了。最終日にギリギリってのが、夏休みの小学生みたいでアレですが。
リバーシでの予備実験TDLeaf(λ)実装。TDLeaf(λ)を方策オフに修正。
- 将棋の学習関連
- TDLeaf(λ)エージェントを再実装。
- 方策をエージェントから独立させる。
- 学習中の各種統計情報の収集・表示ルーチン実装。
- std::vectorあたりを勉強しとくこと。
- 王手将棋での予備実験。
- 対局部分の並列化。
- 他のソフトとの連続対戦アプリ実装(勝率での検証用)。
- 評価関数でのstd::mapの使用をやめる。
- ひょっとしたらテンプレートを使用する必要があるかも。ここら辺は要検討。
- 評価関数の修正。
- 王将との相対位置の評価。
- ピンの評価。
- ハッシュ表の再実装。
- MTD(f)再実装。静止探索部分でもハッシュを使用する。
- 将棋のルールの細かい部分の実装。
- シンプルなメタ強化学習でメタパラメータの調整。
- クライアントサーバ方式なら、GAやUCB1部分はJavaでの実装がそのまま使えるかも。要検討。
- TDLeaf(λ)エージェントを再実装。
- floodgate参戦
- 選手権での対局用
- USIにちゃんと対応。
- MTD-∞の実装。
- 思考時間制御。
*1:http://shouchan.ei.tuat.ac.jp/~shougi/old_shougi/presentation/1999-10-07P.pdfの方式。実装理由については後日書きます。