ある関数fによる換算値を“勝率”と定義して、意味は後で検証する。1つ目の考え方は、モンテカルロ囲碁などで採用されている考え方です。定義はシミュレーションの手法に依存しますので、シミュレーションを1つの評価関数とした時の評価値と考えるのが妥当かも知れません。形勢判断の精確性もシミュレーションの精確性に依存します。将棋では、現在はモンテカルロ法は有効ではないされているため、この考え方は非常に少数です。2つ目の考え方は、棋譜集内の局面の評価値と勝敗結果を結び付けたものであり、最も一般的な手法です。「勝率に基づく評価関数の評価と最適化」の論文では、将棋倶楽部24の棋譜9万局を用いて(ただし、勝敗判定には対局者自身の投了の他に簡単な詰め判定も併用)、当時のGPS将棋の静的評価値と勝率との関係を算出しています。この手法は棋譜集に大きく依存し、精確性を追求するには高品質な棋譜が大量に必要となります。3つ目の考え方は、2つ目の考え方の亜種であり、棋譜集の代わりに自己対局の棋譜を用いるというものです。評価値は基本的に自分自身で使うためのものであるため、短時間の自己対局の勝率を用いるのは合理的です。自己完結した手法であるため、きれいな結果も得られるようです(参照:Ponanzaによる結果)。この手法は探索局面数/深さに依存します。現実的な対局時間よりも遥かに少ない時間での自己対局の場合には、実質的には1つ目のシミュレーションによる勝率に近くなっていると考えられます。以上の3つの考え方は、評価値が表している形勢判断について、検証的な視点が暗黙的に盛り込まれています。実際に、詳細な定義を行えば、関数fを統計的に推定することもできますし、評価値と勝率の整合性を確認することもできます(関数が単調にならなかったり、滑らかにならなかったりすると非整合的)。発展させて、整合性がよくなるように強化学習を行ったり、学習時の教師局面の精査を行ったりすることも可能です。一方で、4つ目の考え方は、評価値に完全に従属したものであり、自然科学でよく使われる手法です。定義と検証を分離することで理論の整備がしやすくなります。600}}\]という仮定をしているようです(参照)。この関数はシグモイド関数と呼ばれるもので、自然科学一般でよく使われます(これを見て「フェルミ分布」と言うのは物理学だけでしょう)。一般論として、関数f(V)はどのような形になるべきなのでしょうか?例えば、酔歩模型ではどうなるのかを見てみましょう。酔歩模型については「将棋は酔歩ではない?:酔歩模型と手数分布」の記事をご参照ください。棋士棋譜集(2015年11月版)とfloodgate棋譜集(2012~2015年版)で調整された変数を用いて、シミュレーションした結果を下図に示します。棋士棋譜集(黒点)とfloodgate棋譜集(青点)共に、各点1000万回の結果です。結果を見ると、変数の詳細には関係なく、ほぼ比例関係になっています。変形評価値が±1のところで跳んでいるのは模型の問題です(ギリギリでも引き返して逆転する可能性があるため)。F(V)}{2}\]という近似関係式が成立していることになります。u})\]というような関数でした。u}}\]となり、シグモイド関数になります。ここで、uは評価値のスケールを決める変数です。上記のPonanzaの例では600点(おそらくセンチポーンで)でした。具体的に、シグモイド関数というのは下図のような関数です。酔歩模型に依れば、評価値と勝率との関係はおおよそ上図のようになると考えられます。この結果は記事の最初に紹介した様々な結果とおおよそ整合的です。シグモイド関数はイロレーティングでも使われています(参照:「イロレーティングにおけるレート差と勝率との関係」)。\frac{V}{u}\]という比例関係の近似式が導けます。600の場合には、比例係数は0.29程度になります。評価値とレート差との間の対応がつくと、棋力差、局面の形勢、持ち時間、平均誤差等が全てレートに統一的に換算できることになります。時間などの様々な状況ごとにレートを詳細に推定したり、評価値だけではなく全体のレート差を最適化するような指し回しをしたりするようなことも可能になるかもしれません。以上、今回は、将棋の評価値を“勝率”やレート差で表現することを考えました。酔歩模型に依れば、評価値はレート差とおおよそ比例関係になることが示されます。レート差への換算係数は、“勝率”の定義やソフトの詳細に依存しますが、思いっきり大雑把には0.3程度になりそうです。この辺の詳細な研究は今後の課題だと言えるでしょう。最新コメント「最新トラックバック」は提供を終了しました。