UEC杯の振り返りと今後の予定
振り返り
UEC杯ですが、GA将?は大きなトラブルは無く、無事指し終える事が出来ました。強いて言えば、2日目開始前にPCのコンセントが半分抜けかかっていて、突然電源が落ちる事があった位ですかね。まぁ、これも対局前に気付いたんで、大きな問題にはなりませんでした。
棋譜とかログとかの分析はまだしていませんが、負けた将棋(対Shokidokiと対Fairy-Stockfish)を覚えている範囲で検証してみました。
対Shokidoki
まずShokidokiですが、かなり広くて深い定跡を持っています。GA将?と当たった時は、20数手と45手程度まで定跡でした。
なんで、Shokidokiの定跡を抜けた段階で、形勢はほぼ互角で残り時間がGA将?6~7分・Shokidoki 20分とかって感じでしたね。読みの深さ的にはShokidokiはGA将?と大差無い感じでしたし、評価関数もやや不正確なんじゃないかと思います*1ので、定跡にやられた感が半端なくあります。
今回の大会では、初手から4四金4五角2五飛*2とした形が結構現れましたが、Shokidokiの定跡は当然その形も入っていました。しかも、玉が敵陣付近まで上がる展開まで定跡内でしたので、どんだけ深いんだと。
大会の棋譜が公開されたら、Shokidokiの負けた対局を見て、どういう展開が良いのか分析する必要が有りそうです。
対Fairy-Stockfish
次にFairy-Stockfish。ひたすら探索が速かったです。PVの長さで言えば、GA将?の1.5倍は行っています。
ただ、序盤で飛車をぶった切って攻め込もうとして、それが敗着になった対局があった様ですので、評価関数の精度的にはつけ込むスキが有りそうな感じです。
GA将?対Fairy-Stockfishでは、中盤まではほぼ互角だったのが、ジリジリと差を付けられてそのまま押し切られた感じでした。
なんで、こちらの手としては評価関数の精度を更に上げてそっち方面で勝負するか、探索ルーチンの改良をして読みの深さを互角まで持って行くかの二択になるかと思います。
その他全般的に
broaden_55の中屋敷さんや他の方にも指摘されたのですが、GA将?は序盤に時間を使いすぎる傾向がありました。
今回のGA将?は8クライアントで合議を行い、票の割れ具合に応じて5秒・60秒・120秒の3段階で思考時間を決めていました。
序盤は「現局面での指し手がクライアント毎に違うけど、PV通りに進めばどの手でも同一局面に合流する」というケースが有るので、そういう場合に無駄に長考してしまったのが原因かと思います。
んで、例えば「序盤は最大10秒までしか考えない」とかってのも一つの手ですが、そういうヒューリスティックは極力避けたいです。
なんで、「各クライアントのPVの10手先で同一局面に合流するか」で思考時間制御をするとか、そういうロジックを組み込みたいです。
あと、先後同型になってお互い相手の出方待ちの局面が結構あったので、そういう場合に積極的に動いていける工夫もしたいですね。
これは、強化学習時に割引率を適切に設定してやれば、短手数で勝てば割引報酬が大きくなるので、それで解決出来そうな気がしています。
来年に向けて
やりたい事
まず、スパーリングの相手がsspでは正確な棋力が測れなくなった感じがあります。という事で、Fairy-StockfishやShokidoki・Lima等の公開されている強豪ソフト相手に連続対局出来る環境を構築したいです。
それから、棋力の向上は主に評価関数の精度向上と探索ルーチンの全面見直しで行う予定。
評価関数については、PGQという強化学習のアルゴリズムを実装出来る程度には理解した*3ので、これを使って何とかしようと思います。
探索は、全幅探索ベースでゴリゴリ枝刈りするか、実現確率探索を実装するかの二択ですが、こっちはまだ迷っています。まぁ、後1年あるので両方やってみて、強くなった方を採用でも良い気がしています。
多分やらない(やれない)事
定跡の自動構築。Shokidokiと同じ土俵で戦っては勝ち目が無いと思いますので、これには手を出さないつもりです。仮にやるとしても、序盤10手に限定するとかその程度になるかと。
それから、深層強化学習も興味深くは有るんですが、それは他の人に任せて、私は線形の評価関数+αβ探索で行く予定。