コンピュータ将棋基礎情報研究所

コンピュータ将棋に関する基礎的な情報を収集し、分析し、発表する所です。英語名称はLaboratory for Fundamental Information on Computer Shogi (LFICS)。

2016年01月

このシリーズでは、擬似乱数を用いたシミュレーション計算により、イロレーティングの詳細な性質を解析していきます。ここで、擬似乱数というのは「コンピュータ上で生成される擬似的な乱数」のことであり、厳密には乱数ではないものの実用上は乱数として取り扱うことができる数列のことです。擬似乱数には様々なものがありますが、ここではRKISSを使います。

一般的に、乱数を用いた計算手法のことを、カジノで有名なモナコ公国の地区名にちなんで、モンテカルロ法と言います。モンテカルロ法は物理学や工学等の分野で盛んに使われている手法であり、モンテカルロ積分、確率過程の計算、アニーリング最適化など、様々な用途のものがあります。本シリーズで用いるのは、各対局を勝率による確率過程とした時のシミュレーション計算です。

今回は、まず手始めとして、最も理想的な世界を考えてみましょう。すなわち、全ての勝率はイロレーティングの式:\[E(dR) = \frac{1}{1 + 10^{- dR / 400}}\]からレート差dRのみで決まっており、さらにレートの情報がみんなに正確に共有されている「“実力”レート=“表示”レート」という世界です。

ある人(イロ教授にちなんでE君としましょう)がこの世界にやってきて、多数の対局を行ったとします。E君は外から来た人なので、例外的に実力レートと表示レートが異なっていてもかまいません。この時、E君の表示レートの動きはどうなるでしょうか? 表示レートはイロレーティングによって決定されますので、その動きを観測すれば、イロレーティングの性質をうかがい知ることができるかもしれません。

このように「一人のテスト者の動きを観察することによって世界全体の仕組みを考察する」という手法は理論物理学などでよく用いられます。例えば、物質の中の一つの粒子の運動を微視的な物理法則に従って理論的にシミュレートすることで、その物質の性質を分析できるといったような具合です。

今回の場合には、実力レートから勝率を算出して、擬似乱数によって勝敗をシミュレートしていくわけですが、その前に一つだけ、対局相手をどのように選ぶのかという規則を決めなければなりません。今回は「E君の実力レート±S」の範囲内の表示レート(理想世界では実力レートに等しい)からランダムに選ぶことにします。範囲を定めるSの値は100と400の2パターンで計算して比較してみましょう。

E君の実力レートについては、対局相手に困らないのであれば、どの値であっても同じ結果が得られます。なので、ここでは仮に1500としておきます。ただし、今回の対局相手の選び方では、E君のレートが世界の上限や下限の境界に近い場合に相手がうまく選べないという問題が発生してしまいます。この境界にまつわる問題に関しては、ここではスキップして、後で非理想世界を考える時に改めて取り扱うことにします。

イロレーティングのシステムでは、表示レート\[R_{W}\]の対局相手に対して表示レート\[R_{E}\]のE君が勝つと、\[K~ E(R_{W} - R_{E})\]だけE君の表示レートが上がり、負けると、\[K~ E(R_{E} - R_{W})\]だけ下がることになります。このルールに従って、多数の対局をシミュレートして、E君の表示レートの動きを観測します。

まずは、軌跡の頻度分布を下図に示します。頻度の分類のやり方は、各対局終了時の表示レートの小数部を四捨五入することで整数値として分類しています。対局数は1億、Kの値は16であり、頻度分布の規格化(すなわち、縦軸のスケール)は任意です。

iw_hindo_r-h

上図の頻度分布は、Sが100の場合、400の場合共に、誤差の範囲内でほぼ正規分布になっています(2次と4次のモーメントの関係性から確認)。誤差を除けば、分布の形は対局数には依りません。標準偏差は、S = 100の時は約37.7、S = 400の時は約37.5です。標準偏差に僅かな違いはありますが、大雑把に言えば、Sに依らずに大体同じ分布になると考えることができるでしょう。そもそも理想世界を考えている時点で大雑把なモデルなので、ここではあまり細かなことにこだわっても益はありません。

次に、分布の標準偏差とKとの関係性を下図に示します。これも対局数は1億です。

iw_k_k-d

Sが100の場合、400の場合共に、おおよそ平方根になっています(青線は最小二乗曲線)。この関係性も、誤差を除けば、対局数には依りません。また、ここでは詳細は記しませんが、Kの値に依らずに誤差の範囲内でほぼ正規分布になっていることも確認できます。

この結果は、一見すると、「Kはレートの移動の“歩幅”を決めている量であるため、Kが大きくなるほど、レートが大きく揺らいで、分布の標準偏差が大きくなる」と解釈できそうですが、実際にはそんなに単純ではありません。というのは、一回の対局の平均移動距離はSの値にも依っており、Sが100の時には約7.79、400の時には約5.70となっているのですが(対局相手とのレート差が離れているほど平均移動距離が少ないため)、Kと違ってSの方は標準偏差に与える影響は小さく、単純に「平均移動距離によって標準偏差が決まる」というわけではないのです。従って、この標準偏差のK依存性はイロレーティングの仕組みを直接的に反映したものであると考えることができます。

以上まとめると、理想世界の散策では、軌跡の頻度分布はほぼ正規分布(中心極限定理)となり、その標準偏差はおおよそKの平方根に比例するということが分かりました。大雑把に言うと、標準偏差は、K = 16の時には37.5程度、K = 32の時には53.5程度です。これらのことは、イロレーティングというものをよく知る上で最も基礎的な知識の一つとなります。

さて、今回は「実力レートと表示レートが一致している理想世界」を考えましたが、実際には両者は必ずしも一致していないのが普通です。次回は「表示レートにゆらぎのある非理想世界」を考えてみましょう。

コンピュータ将棋の世界では、棋力を表す指標として“レート”という数字がよく使われます。また、コンピュータ将棋に限らず、ネット対局においても、“レート”というのは“身近な数字”、あるいは人によっては“とても気になる数字”になっているのではないしょうか。

この“レート”という数字の基礎になっているのが、イロレーティングというシステムです。このシステムの基本的な事柄については、

の解説記事にまとめましたので、そちらをご参照ください。ただし、これらの記事では基本的な原理の説明と数式を示したのみで、それが実際にどのように機能するのかについてまでは記しませんでした。また、ネット上を眺めても、その辺の詳細な情報は少ないようです(2016年1月現在)。

このシリーズでは、その点に踏み込んで、“イロレーティングの世界”を様々に散策することにより、イロレーティングの詳細な性質を明らかにしていきたいと考えています。特に、擬似乱数を用いたシミュレーション計算(モンテカルロ法)を活用することによって、実際の数字が見える形で解析を進めていく予定です。

本シリーズが“レート”という数字をより深く理解するための一助となれば幸いです。

目次

以前のコラム記事「棋士の粘りと棋力:強い人は粘らせない?」では、各棋士ごとに平均手数を算出してレートとの相関関係を解析し、棋力には相手の粘りを抑える作用があるかもしれないという可能性を示しました。今回の記事では、さらに踏み込んで、棋士の棋譜におけるレート差と手数との間の相関関係を解析します。もしも両者に強い相関があるのであれば、平均手数から棋力を推測するなんてこともできるようになるかもしれません。

今回の解析で用いるのは、棋士棋譜集(2015年11月版)です。この棋譜集の詳細については「棋士の棋譜整理とレート算出:棋士棋譜集(2015年11月版)」をご参照ください。

まずは直接的にレート差と手数との間の相関係数と線形回帰の計算をしてみましょう。外れデータを弾くため、30手以上200手以下の投了決着の棋譜に限定し、さらに、レート値が必要であるため、両対局者共にリストにある棋譜に限定して解析を行います。レート差については、勝者のレートから敗者のレートを引いた差を用います。相関係数と線形回帰については以下の解説記事をご覧ください。

結果として、相関係数は-0.1114となり、回帰直線は\[T = -0.02403 dR + 115.8\]となりました。ここで、Tは手数、dRはレート差です。相関係数の絶対値は大きくはないですが、サンプル数が47021であることを考えると、相関がないとは言えません。勝者と敗者のレート差についての負の相関ですので、「強い方が勝つ時は手数が短い」「弱い方が勝つ時は手数が長い」という直感に合致した結果になっています。レート差100ごとに手数が2手強くらい変わるというのは、以前のコラム記事の結果ともおおよそ整合しています。

もう少し詳細に見るために、レート差を0を原点にして10刻みの区間に区切って、その中で手数とレート差のそれぞれ平均を取るという“疎視化”を行ってみることにします。こうすることで、雑音的な細かな情報が平均化されて消えて、本質的なことが見やすくなります。ここで注意してほしいのは、レート差の区間の刻みを10としたこと(つまり疎視化のやり方)には人為性があり、この値を変えると以下の結果の詳細が変わってくるということです。ただし、詳細にこだわらなければ、大まかな結果としては変わりません。

疎視化された平均手数と平均レート差(黒点)を下図に示します。

rate-tesuu_m_151124

図を見るとレート差があまり大きくない範囲では強い負の線形相関が見られます。実際にレート差が-200以上200以下の範囲で線形回帰を行ってみると、相関係数は-0.9434となり、回帰直線(青線)は\[T = -0.02604 dR + 115.8\]となります。レート差100に対して手数が2.5手程度というのは疎視化前の結果とおおよそ一致しています。

レート差が200以上の領域では、平均化の時のデータ数が減るためにばらつきが大きくなっていますが(ただし、表示しているのはデータ数が10以上のもののみ)、回帰直線(青線)の外挿でも当てはまりはそんなに悪くはなさそうです。この図から「強い方が勝つ時はレート差分だけ手数が短い」という傾向が見て取れます。

一方で、レート差が-200以下の領域については、少し事情が異なっています。この領域は「レート差が離れた弱者が勝つ」という「番狂わせ」の領域であり、データ数も少なく、ばらつきは大きいのですが、それに加えて回帰直線(青線)の外挿よりも全体的に手数が下がっており、単純に「弱い方が勝つ時はレート差分だけ手数が長い」とは言えなくなっています。もしかすると「番狂わせ」の対局は、強者側の大ポカ等、通常の対局とはやや異なるメカニズムで決着していることが多いのかもしれません。

以上まとめると、レート差が-200以下の「番狂わせ」の領域を除くと、レート差と手数との間には負の相関があることが分かりました。大雑把に言うと、レート差100ごとに平均手数は2.5手くらい変わってくるようです。自分より少し強い人と対局すると、負ける時はあっさり負けるのに、勝つ時には粘られて中々勝てないというのは我々もしばしば体験することでありますが、棋士の棋譜にもそういう傾向が見られるというのは興味深いですね。

このページのトップヘ