電王戦 第四局 ツツカナ戦について思うこと


第四局は、将棋の内容的にも非常に素晴らしい戦いだった。両者の力が存分に発揮された白熱した戦いだった。矢倉の達人、森下卓先生に矢倉で勝つ。棋譜だけ見ればツツカナ側が森下先生ではないかと思ってしまうほどだ。


森下先生は事前対局はそれほどされていなかったようなのだが、ツツカナは比較的事前研究されると弱点が見つかりやすいのではないかと私は思う。ちょっと、私の考えの道筋だけ書いておく。


今回のような貸し出しアリのルールの場合、ファミコンのゲーム攻略のようにしてプロ棋士側が勝率を最大化しようと思ったときに、コンピューター同士対戦させるという方策がまず考えられる。どうせなら、本番と同じ持ち時間で対戦相手のソフトを一番強いソフトと対戦させておくほうがなお良い。これを最初に言い出したのはプロ棋士の西尾明六段だと思うので、ここではこれを西尾戦略と呼ぶことにする。



https://twitter.com/nishio1979/status/447558853253529600



https://twitter.com/nishio1979/status/447561125853290496



https://twitter.com/nishio1979/status/447573579261943808


ところが、よく考えると、序盤でコンピューター側の指し手がバラけると研究対象の局面が増えて損である。そこで、西尾戦略の前に、まずコンピューター側の定跡がどこまで入力されているのがその樹形図(初手からの定跡木)を作成したほうが効率が良い。


ソフトによってはある局面での定跡の指し手は1手しか入っていないことも多々あるし、今回のような貸し出しルールのもとでは、不利と結論の出ている局面まで進んでしまうことを開発者としては恐れるので、定跡を早めに打ち切っていることがある。だとすれば、先手側が人間であれば、樹形図を使えばソフト側の定跡を抜けた局面を数局面に限定することは十分可能である。


それらの局面を研究対象として研究するほうがはるかに効率が良い。そこで、それらの局面から強いソフトと本番の持ち時間で対戦させてみるという西尾戦略を採ることを考える。実際には西尾戦略と樹形図作成を交互に繰り返しながら、研究対象の局面の深さ(初手からの手数)をどんどん深くしていくと良い。


そうしたときに、ソフト側の指し手がバラけるソフトとバラけないソフトとがある。指し手がバラけるように調整しようと思うと、きつく乱数を入れないといけないので弱体化してしまう。ソフトが人間よりはるかに棋力的に上回っているなら、R50〜R100ぐらい弱くなっても誤差かも知れないが、まだそういう状況でもない。局後学習は、弱体化させずにランダム性を入れるという意味では面白いアプローチだが、本当にこれで事前研究を回避できるかは定かではないし、比較的実装が面倒なので私以外の開発者が進んでこれを導入するとはあまり思えない。


また、乱数調整をしていない場合、長い思考時間において指し手がどの程度バラけるのかという部分はあまり知られていない。一般的に言って思考時間が長いと、指し手は特定の指し手に収束する傾向がある。(例えば、終盤で羽生先生と激指の指し手一致率が90%を超えることがある) これは、思考時間が長いと棋力が高い人の指し手に近づき、そして、棋力が高い人にとってはそんなに指し手の自由度がないということなのだろう。


やねうら王の場合、同じ思考時間(例えば1手1分ぐらいの長さ)であれば、5〜10手に1手ぐらいしか指し手が変化しない。たぶん他のソフトも似た状況だろう。それでもこのときの指し手のバラけかたはソフトによって個体差がある。それが評価関数の差なのか探索手法の差なのかはよくわからないが、さまざまな要因で個体差がある。もしかするとツツカナは比較的指し手がバラけにくい部類に属するのではないかと私は思う。


と言うのもやねうら王のほうは序盤で自ら局後学習で定跡を作っているので、他のソフトと対戦されると意図せず相手ソフトにとって定跡外しのような進行になる。そのときに相手の指し手がどの程度バラけるかという尺度で見たときに、ツツカナはどうも同じパターンにハマりやすい気がする。今年の2月下旬にやねうら王をfloodgateに流していたとき、ツツカナと5回当たったのだがいずれも似た進行となり、5回とも勝たせてもらった。(だからこういう進行ばかりになるならfloodgateのレーティングを見てどっちが強いとか言ってもあまり意味のないことである。このへん、他の開発者にもいい加減わかってもらいたい。)


ツツカナが今回の電王戦版でどんな乱数調整がされているのか詳しくは知らないが、あまりきつい乱数を入れていないなら、もしかしたらまずいのではないかと私は思っていた。もちろん、西尾先生がおっしゃっているように人間側は「(そこまでやって)作戦勝ち或いは少し優勢な局面を作れるかなという程度」だと思うので、プロ側が事前に時間を大量に費やして、こういうのを狙ってやるほどの価値はないのかも知れない。


また、私が考える究極のアンチ将棋ソフト戦略は、
1. 研究対象の局面を限定する(初手からの樹形図を書いて、研究対象の局面を絞っていく)
2. 入玉狙いにする(まだソフトの入玉は大変弱いので)
3. ソフトの評価値がおかしい局面に誘導する(棋譜からの学習は実戦例が少ない局面が苦手)
という3つだが、これらを同時に満たすのが故米長邦雄先生が対ボンクラーズ戦で見せた後手6二玉なのである。あれこそがアンチ将棋ソフト戦略の極北だった。米長先生の戦略は、2年前にしていまよりさらに3年ぐらい先を行っていた。トータルで5年ぐらい先を行っていたことになる。


それと言うのも、米長邦雄先生の将棋倶楽部24でのレーティングはおそらく(いまの将棋倶楽部24換算で)R2800前後、米長先生は引退されてから長かったのでトッププロと比較するとR300〜400程度の差はあったと思われる。一方、ボンクラーズのRは(米長先生と対局時のPC構成において)R3200前後だと思うので、10回やって2回勝てるかどうかぐらいの差があったのだろう。それくらいの差において勝率を最大化しようと思うと、もはやアンチ将棋ソフト戦略以外に他ないと米長先生は判断されたのだろう。


今回の電王戦では出場ソフトとプロ棋士の棋力はそこまで大きく乖離していないので、プロ側も米長先生のような戦い方をすることもないのだろうが、もっと大差になってくるとそういう戦いが現れるのかも知れない。


さて、少し話を戻して、初手からの樹形図についてもう少し考えてみる。


連珠では、初手は天元(中央の星)に打ち、2手目は天元から1目離れた場所、3手目は天元から2目以内の離れた場所に置かなければならない。このため、3手目までが対称形を除くと26通りあり、これらを珠型(しゅけい)と呼ぶ。


将棋でも、今回の電王戦のような貸し出しルールのもとで序盤に対して樹形図が得られている場合、人間側は好きな(自分の得意な)珠型(開始局面)を選択することが出来る。


そこで、樹形図を自動生成するソフトなんてのも作ろうと思えば作れるわけだ。対戦相手のソフトと、一番強いソフトとを自動対戦させて樹形図を作成する。「この3つの局面のいずれかに進行する確率(80%,10%,10%)、この4つの局面のいずれかに進行する確率(60%,20%,10%,10%)で、前者と後者とどちらを選択するか」なんてのを人間が選び、一番自信のある進行で戦う。


まあ、「自信のある進行」とは言っても局面的にはほとんどの場合、ソフト側によほどの穴がない限りは形勢的にはほぼ互角であるだろうから、そこから勝ちきるのは実力である。また、ソフト開発側としては、こういう形の事前研究で欠陥が露呈しないように対策しないといけない。お互いに苦労が絶えない。誰得な感じもする。