2つ前の記事で、「将棋ソフトでは、2倍の思考時間を使うとR200程度上がります。R200は勝率で言うと約76%。」というのを人間にも当てはめたのですが、それは人間では成り立たないのでは?という意見が散見されるのでこれに対して私の考えを書いておきます。
まず、最初に一つだけお断りをしておくと、同じソフト同士の場合と異種ソフト同士の場合とでは読み筋が違うので、2倍の思考時間にしたときのレート(棋力)の向上度合いは異なります。前者はBonanza以降のソフトだとR200程度ですが、後者については実際のところよくわかっていません。そういうデータを事細かに計測した人もおそらくいません。また定跡との相性などもあって異種ソフトの棋力差を正確に計測すること自体が難しいです。R100程度上がることは間違いないですが、R200よりは低い値になると予想されます。まあそれに関してはR100以上、R200未満ぐらいの感じの理解でお願いします。(この意味で、本記事で「R200」と書いてあるところは、厳密には「R100以上、R200未満」と読み替えたほうが良いかも知れません。)
さて、「将棋ソフトでは、2倍の思考時間を使うとR200程度上がる」という理論的なバックボーンについて。なぜ上がるの?この部分をはっきりさせておかないとこの理論を人間に適用できるかどうかが変わってきます。
思考時間が2倍あると何が出来るのか。単純には2倍の局面が読めます。これはCPUのコア数が倍になったときとは話が違います。CPUのコア数が倍になった場合、実際は2倍の時間があるときほどは強くなりません。(これは複数コアの時は投機的に局面を調べているので並列化の効率が悪いためです。本記事で言う「2倍の局面」は、CPUのコア数が2倍になったのではなく、シングルコアのまま「2倍の局面」を読むときの話です。)
では、2倍の局面が読めると2倍でないときと比較して何手先まで読めるようになるのでしょうか?
将棋のゲーム木(game tree)の、各節点(各局面のこと)は、終盤にいくほど細かく枝分かれしています。これは終盤は手駒が豊富になり、駒打ちがあるため、各節点での平均分岐数が上がるためです。
しかし、終盤は最善手以外は悪い手であることが多く、見かけほど選択肢は多くありません。Bonanza(2005年)のときですら、序盤は時間が3倍あれば1手深く読めて、終盤は時間が5倍あれば1手深く読めるとされていました。[GPW2006発表資料]
現代の将棋ソフトでは、もう少し効率は上がっていますが、X手深く読もうと思うと指数関数的に時間がかかることは変わっていません。逆に言うと、時間がN倍になれば、その対数に比例する手数分だけ先を読めるようになるということです。
将棋は囲碁などに比べて終盤で頓死しやすいゲームです。5手先まで読めるプレイヤーは3手詰みを回避できます。まあ、3手詰めをどうやっても回避できない局面に至ることもありますが、詰みに限定せず、もう少しマクロな視点で捉えれば、1手でも深くまで読んでいるプレイヤーのほうが先に勝ち筋を見つけやすいというのは正しそうに思えます。
いま、各局面で平均3手先まで読んでいるプレイヤーと平均4手先まで読んでいるプレイヤーとのレーティングの差をaとします。平均4手先まで読むプレイヤーと平均5手先まで読むプレイヤーとのレーティング差もaに近いと予想されます。同様に平均X手先まで読むプレイヤーと平均(X+1)手先まで読むプレイヤーのレーティング差もaの値に近いと予想されます。
ゲームによってはこれが成り立つかどうかは自明ではありませんし、将棋でも成り立つかどうかは自明ではありません。しかし、同じ将棋ソフト同士で片側を1手1秒、もう片側を1手2秒にして対局させてみるとR200程度の差が出ます。これは1手2秒と4秒や、4秒と8秒、8秒と16秒などでもおおよそ同様です。
つまり、このことから「平均X手先まで読むプレイヤーと平均(X+1)手先まで読むプレイヤーのレーティング差」は、Xが多少大きくなっても(将棋ソフトが15分切れ負けの対局で読める20手~40手程度の範囲では)ほぼ一定なのではないかという将棋というゲームの性質が見えてきます。
将棋ソフトや評価関数を変更すると多少の差はあるのですが、Bonanza以降のソフトであれば、思考時間が2倍になればR100~150は上がりますし、時間を倍々にして行くときのレーティング差(1倍と2倍との対局や、2倍と4倍との対局、以下略)は、ほぼ一定です。
そんなわけで、この話を人間にもそのまま適用はできそうで、同じような大局観(評価関数)の持ち主同士で、読みの量が2倍になれば、R200程度あがる…いや、このR200の部分は実際は局面を記憶しておけるのかだとかそういった問題もあるので将棋ソフトと同じように考えるわけにはいきませんが、R200がそこまで外れた値ではないであろうことは、予想がつきます。
なぜなら、読みの量が2倍になったときにそのプレイヤーが相手より先に勝ち筋を見つける確率は、ソフト同士の対局のときとほぼ同様の議論が成り立つと考えられるからです。
素朴な疑問として例えば序盤で40手先まで読んで
やねうら王『敵は美濃囲いか矢倉囲いで来る!』
と予想したけど、実際は敵は穴熊囲いで来た。
この時41手まで読んでたら、その1手分強いのだろうか?
PVが1手深く読み進めてもその展開にならなければ直接は役に立たないですけども、しかしそのときのleafでの評価値が得られて、nonPVでそれを上回りそうにないことをNull Window Searchで調べた結果、nonPVではなくいまのPVのほうが良いと判断しているわけですから、1手分だけ強くなっていると言えます。
伊藤果さんが詰将棋10問を出題
藤井聡太さんが全て解くのに2時間かかった難問ぞろいです。
今回はやねうら王開発者のやねうらお氏の
2倍の思考時間を使うとRが200上がるという考えを
証明する為のニコ生企画
やねうらお 詰将棋全部解くまで帰れま10です。
果たしてやねうらお氏は何日間で家に帰れるのか?
それではやねうらお氏にインタビューしてみましょう。
インタビュアー「どうですか?今回の意気込みは?」
やねうらお「死にそう」
では早速企画開始しましょう。
みたいな妄想楽しい。
そもそも、人間は将棋で何を読んでるんですか?
自分が勝つパターン、あるいは、相手が負けるパターンに、如何にしてバレないように誘導するかという感じですか?w
人間はわりとMCTSに近い感じではないでしょうか。
人間は基本的に人間という最善手を出してくる相手から学習していくから、強くするためにほぼ全ての状態を力技で総当たりしていくコンピュータより効率が良いとか、ある状態では最善手では無くても、自分の勝ちが確定するところに合流するという複数の道筋を、多く知っている人間ほど強いということなのか、うーん。
本題から少し外れますが、自己対戦の場合、相手より常に同じ読み筋で1手先を読んでるのにR200しか上がらんのは不思議ですね。
在る意味御釈迦様と孫悟空の勝負なのだから、御釈迦様が後手の場合が半分あるとしても、勝率90%くらいになっても良さそうな。
なぜそうならないかというと、評価関数の精度が悪いから。勝ち筋、もとい負けない最善応手の筋と思ってたらおっとビックリ緩手悪手だったということが少なくないからでしょう。
評価関数が全くあてにならん場合は1手先を読んでもとんちんかんで勝率寄与は極小でしょうから…
そうすると、評価関数の精度が上がれば、自己対戦時の1手先読み時のレート上昇幅は上がると予想されるのでは。
自己対戦でない場合は上昇幅は縮まりますが、精度が上がれば同じ傾向のはず。
そして本題に戻ると…最上位棋士の静的評価関数はKPPTやNNUEの静的評価精度を越えている…たぶん…と思われるので、
そうすると、最上位のプロ棋士の1手先読み時のレート上昇幅はR200を越えているのでは。
しかし、山下論文によると、早指しと2日制の指し手品質の差はR200程度。
うーん…
> 同じ読み筋で1手先を読んでるのにR200しか上がらん
そこまで同じでもないと思いますけどね…。
> 最上位棋士の静的評価関数はKPPTやNNUEの静的評価精度を越えている…たぶん…と思われるので、
私のざっくりとした計算ではプロ棋士とAlphaZeroとはほぼ同じぐらいかなという感じですね。1局面の評価の精度がKPPTのdepth 9-13の探索相当ぐらい。