将棋の四強の実力関係を推定してみた

この記事を書いている2021/6/30現在、将棋界では「棋聖戦」と「王位戦」という二つのタイトル戦が進行中である。
どちらも保有しているのは藤井聡太二冠で、棋聖戦は渡辺明名人(三冠)、王位戦は豊島将之竜王(二冠)が挑戦している。
名人と竜王というのは8つのタイトルの中でも最上位に存在しており、まだ十代である藤井二冠に最強の二人が挑戦したと言ってよいだろう。
またこの3人に永瀬拓矢王座を加えた4人が現在の将棋界四強と言われていて、この4人でタイトルを分け合っていることから名実ともにプロの中でも抜け出している存在である。

そんな四強であるが、実は奇妙な相性関係が存在している。
それぞれの勝敗を示したのが以下の表である(2021/6/30現在)。

画像1

例えば、渡辺名人は豊島竜王に21勝14敗と勝率60%を記録しているが、藤井二冠には1勝7敗と殆ど歯が立っていない。
しかし一方で藤井二冠は豊島竜王にこちらも1勝7敗と全然勝てていないのである。
永瀬王座を交えても同じような関係があり、藤井二冠に負け越している永瀬王座に対して豊島竜王は僅差とはいえやはり負け越しているのである。

つまり、この結果だけを見ると「結局誰が一番強いの?」という極基本的な疑問に対して答えを出すのが難しいのである。
誰が一番強いのかもわからなければ、その実力差がどのぐらいなのかもやっぱり分からない。
今後この四強同士でもっともっと対局を重ねていけばある程度見えてくるかもしれないが、今現在で何か推定できないだろうか・・・ということでやってみたという記事である。

レーティングのお話

実力はレーティングという数値で測られることが多い。
レーティングが高いほど強く、低いほど弱い。そしてレーティングの差から「期待勝率」(つまりそれぞれがどのぐらいの確率で勝つのか)を計算でき、対局の結果によって値が更新されていく。
勝てば上がるし負ければ下がるが、自分より強い(=レーティングが高い)相手に勝てば大きく上昇し、逆に自分より弱い(=レーティングが低い)相手に勝ってもあまり上がらない。
負けた時はその逆で、お互いのレーティングの増減の和がプラマイゼロになるように計算されている。

このレーティングは将棋界では公式のものではないが、対局結果から有志によってレーティングが計算されて公開されている。例えばこのサイトでレーティングのランキングを見ることが出来る。

このレーティングを見れば、誰が一番強いのかも、それぞれの実力差も明確じゃないか、ともいえる。
確かにそうなのだが、このレーティング自体は四強以外の多くの棋士との対局も含まれての結果である。
極端な話ではあるが、仮に四強にはほとんど勝てなくても他の棋士には全部勝つような棋士が居たら、四強との対局数によっては上位のレーティングになることだってあり得るわけである。
(そういうことがあるとそもそもレーティングというものの前提が崩れてしまうし、この後の議論も意味を成さなくなってしまうのだが、一旦目を瞑ろう)

ということで、仮に四強同士の対局だけでお互いのレーティングを計算したとしたらどうなるか、というのが知りたいと思った。
そしてその方法として「最尤推定」というのを行ってみた。

最尤推定とは

最尤推定というのは統計学なんかでよく使われる手法である。
通常、まず四人のレーティングというパラメータが分かった状態で、前述のような結果が出る確率はどのぐらいか、というように考えるわけであるが、最尤推定では逆のことをする。
つまり「どんなパラメータの時に、実際に観測された結果が最も出やすいのか」を考えるのである。

例えばある1枚のコインがあったとする。このコインは表と裏が出る確率がそれぞれ1/2であるとは限らないとする。
そのコインを100回投げたところ、表が60回出た。さて、この時このコインの「表が出る真の確率」はいくらだと考えるのが良いだろうか?

例えば表が出る真の確率を1%~99%まで1%刻みで仮定して、それぞれの時に実際に表が60回出る確率を計算してみる。
想像してみれば、表の出る真の確率が1%であるコインでは100回中60回も表が出ることはほとんどないだろう。2%や3%でも同様である。そして計算していくと、どうやら真の確率が60%の時に表が60回出るという現象が最も起こりやすいと計算できる。

とすると、逆に考えて、表が出る真の確率が1%だと考えるよりは60%だと考える方が「もっともらしい(尤もらしい)」と言えるわけである。
このように「最も尤もらしい」パラメータを推定するから、この方法を最尤推定(もしくは最尤法)という。

四強のレーティングの最尤推定

今回の問題である4人のレーティング推定も同じようなことをする。
まず4人のレーティングをランダムに仮定する。この時、レーティングは「差」のみが意味を持つので、4人のレーティングの和が0になるように設定した。
そして4人中2人のレーティング差から勝率を計算し、その勝率の際に実際の勝敗結果が得られる確率を計算する。
4人の総当たりでは6通りの組み合わせがあるので、その6通りについてそれぞれ実際の結果が実現する確率を求め、その積を取れば「仮定したレーティングにおける実際の結果が実現する確率」を求めることが出来る。
4人のレーティングを様々に仮定してこの計算を行い、最も実際の結果が実現する確率が高くなったレーティングこそ、4人のレーティングとして「最も尤もらしい」と考えるわけである。

さて、この計算には以下のようにいくつか仮定を置いている。

・4人のレーティング関係はこれまで変化していないとする。実際は棋力の変化があるだろうが、藤井二冠のデビュー以来4人とも同じペースで推移している(=4人の間の差は変化していない)と仮定する。

・相性の存在を無視している。つまりあくまでレーティング関係のみから算出される勝率に基づいて結果が観測されているだけであり、渡辺名人は藤井二冠を苦手にし、藤井二冠は豊島竜王を苦手としているということは無い(=偶然勝敗が偏っただけ)と仮定する。同様に先後の差も一切考慮していない。

また計算にはpythonのOptunaというパッケージを利用した。
4人のレーティングが仮に±200の範囲に分布するとし、その中を1刻みで全パターンを確かめていく場合、組み合わせは401^3=64,481,201通りにもなる(和が0になるようにするので、4人目のレーティングは自動的に決まり自由度は3)。
この全パターンを試すのはかなり時間がかかってしまうので、より効率的な探索が必要である。
Optunaはそれを実現してくれるパッケージで、簡単に言えば「良い結果が得られそうなあたりを重点的に探索する」ということをしてくれる。
これによって比較的短い時間で精度の良い結果を得てくれる。普段は機械学習のハイパーパラメータ探索なんかによく使っている。
(実際には解析的に解いたり、こういう問題に適したソルバがあるのかもしれないが、お遊びという事で使い慣れているOptunaを手軽に使ったという感じである)

レーティングの推定結果

最尤推定を行った結果が以下である。
なお前述の通り、4人のレーティングの合計が0になるようにしている。

渡辺明 :+42
豊島将之:-2
藤井聡太:+49
永瀬拓矢:-89

実際の結果(以下再掲)から計算するに、このレーティング関係が最も尤もらしいということが分かった。

画像1

概観すれば、勝率が高い渡辺名人と藤井二冠のレーティングが高く、勝率がほぼ五分である豊島竜王はレーティングも平均である0に近く、そして勝率で劣る永瀬王座がレーティングも低く出ているということで、傾向としては納得できる結果が得られた。
そしてこの四強だけで考えるならば、渡辺名人と藤井二冠が最強を争っていて、豊島竜王が追随、永瀬王座はやや苦戦という感じだろうか。

先述の棋士レーティングでは2021/6/30現在で以下のようになっている(リンク先より引用)わけではあるが、四強だけで計算すれば藤井二冠がここまで突き抜けているわけでもなさそうであり、また永瀬王座は四強内ではやや苦戦気味だという推定結果が得られたことになる。

画像3

注意点

今回の計算結果は、あくまで前述の通りいくつかの思い切った仮定の下に得られたものである。
実際は特に藤井二冠が急激に成長していたり、渡辺名人が不調から復帰したりといった棋力の移り変わりはあるだろうし、相性の影響も全くの0ではないだろう。加えてトップクラスほど先後の差は勝率に効いてくると言われており、それを無視するのもよくない。

またそれぞれの対局数がまだまだ少なく、それこそ1勝の増減で大きく推定結果が変わるものと思われる。つまり、仮定が正しかった場合であってもなお計算結果の信頼性は低いという事だ。

要は今回の計算はあくまでお遊びなので、そういうつもりで見てねという事である。
豊島藤井12番勝負(王位戦+叡王戦)も決まったし、今年度もまだまだ四強同士の対局は行われるだろう。
誰が抜け出すのか、もしくはニューヒーローが現れるのか、楽しみに観戦しよう。個人的には豊島ファンなので、豊島時代の到来を心待ちにしているのであるが。

この記事が気に入ったらサポートをしてみませんか?