前回の記事の最後にFail Lowという言葉がでました。コンピュータ将棋はある局面を探索するときに、評価値をある程度予想して、その予想を元に探索をします。予想値の下限をアルファ、予想値の上限をベータといいます。よく聞くアルファベータ探索のアルファとベータはここから来てます。評価値がアルファより下の場合Fail Low、評価値がベータより上の場合はFail Highといいます(第1図)。Fail Lowが起こる時は予想より実際の評価値が大きく下回る場合で、かなり良くない状況です。Fail Lowがおこった場合は、アルファとベータの予想値を再修正して探索し直します。
第1図 難解な局面では予想が難しいので、Fail Low(↓)やFail High(↑)することがよく起こる。評価値に矢印をつけるのはPonanza独自の拡張. Fail Lowは業績下方修正、Fail highは業績上方修正のようなもの
第2図は局面が進んだところ、後手Ponanzaが△7九銀と打ち込んだ所である。この手はなんとFail Lowしたまま最大考慮時間まで評価値が確定せずにしかたなしに打ち込んだ指し手である(実際のログは下)。コンピュータが負けるとき、Fail Lowしたまま指した手で負けるというのはよくあることだ。しかも読み筋も王手の連続、こういう手はかなりの確率で水平線効果だ。
info score cp 208↓ time 49509 nodes 169726369 nps 3428K depth 19 seldepth 36 pv △79銀打▲97玉△96歩打▲96玉△95歩打▲95玉△94歩打▲96玉△68成香▲86香打△73玉▲79金△79成香▲84銀打△64玉▲66歩△55金▲81成香△83歩▲39桂打△38角成▲68飛打△49馬▲65歩△54玉▲66桂打△43玉▲71成香△84歩▲44歩△33玉▲43歩成△43銀▲31飛打△22玉▲61飛成
第2図 屋敷九段がひと目有難いと言った△7九銀打 コンピュータ将棋開発者ならひと目水平線効果に見える
進んで第3図、意外なことにPonanzaが致命的に悪いという感じではないようだ。しかしログを見ても評価値はほぼ互角、ここに来ては一時+600点以上つけていた、Ponanzaの評価関数が間違えていたと言わざる得ないと思う。
第3図 一時+600点以上あった評価値はほぼ互角に。人間側の評価能力を見せつけられる結果に
更に進んで第4図、先手は▲8一成香と桂馬を取った所なのですが、コレが悪手。すかさず△8三歩と突かれ銀の進退を問われ困ってしまった。ここでは▲8一成香では、▲6六歩や▲4九飛と指すべきと対局後屋敷九段が仰ったように(ちなみにPonanaも同意見)指さないといけないらしい。10時間を超えたその状態でもう一回中盤に戻るような、容易に崩れない指し回しを要求する将棋というゲームの容赦なさを感じた。情けないことに指し手を入力するだけだった私はすでにクタクタである。
第4図 ここまで対局開始から10時間超、ついに悪手が出てしまった。将棋は人間に無限の体力を要求するのか?
以下はバタバタと進み、評価値もぐんぐん上昇してきた。屋敷九段は最後どうやって形をつくるのか?どこで投了するのかを考えていたように思える。前回の第二回電王戦で佐藤慎一四段と闘ったときも同じような時間が流れた。私はただじっとしていることしかできない。第5図で屋敷九段は投了された。幸いなことに投了図は一手違いにはなっており、またPonanzaの最終手もそれなりに鮮やかになったのでよかった。
第5図 同玉でも同竜でも詰み 最後の指し手はPonanzaが指したのではなく、屋敷九段が誘導したのである
Ponanzaを開発して五年以上が経過した。開発時間は延べ3000時間は優に超える。Ponanzaの指し手のほとんどはすでに私の理解を超え、ついにトップのプロ棋士レベルに到達しつつある。本当にここまでよく来た。しかし今度5月に行われる世界コンピュータ将棋選手権で、Ponanzaは優勝どころか三位に入れるのもそれなりに大変だ。また頑張ろう。たどりきて未だ山麓というやつだ。
追記
電王戦のMVPを習甦の竹内さんが取ったということに、私は軽い衝撃と喜びを覚えている。将棋棋士だけではなく、プログラマも評価される土壌ができたことに、なによりの感謝を。戦ってくれた棋士さま、将棋連盟さま、ドワンゴさま、関係者の皆さま、そしてニコニコ動画視聴者さま、改めて感謝を。そして竹内さんおめでとうございます。ちなみに来年の電王戦、Ponanzaはもっともっと強くなって現れる予定なので皆さま楽しみにしててください(`・ω・´)