elmo型学習の特徴と短い持ち時間で強くない理由 in elo河童理論

# elmo-qhapaq将棋理論。略してエロ河童理論ですね

elmoの学習部が公開になりました。秘密にしておけば次の大会でも勝てる見込みが高いにも拘わらず、公開してくれた開発者の方には感謝してもしきれない気持ちでいっぱいです。

 

さて、elmoの学習部の特徴はやね師匠のブログ(elmoがもたらしたオーパーツについて | やねうら王 公式サイト)などでも言及されている通り、浅い局面での評価値を、従来の深い局面での評価値ではなく、深い読みの評価値と、その局面から指させた時の勝敗を使って補正することにあります。

 

開発者の多く(?)が数式を見て最初に思ったのは「勝率の補正項大きいなあ」であったことでしょう。また、elmoの評価関数は浮かむ瀬に比べレート+200程度と強烈に強いにも拘わらず、持ち時間0.1秒の将棋などではあまり強くならないという特徴があります。

 

こうした不思議はなぜ起こるのか、elmoよりも強い関数を作ろうとするなら、まず知っておきたいことです。今回は特別に(?)私が導き出したelmo学習部の理論的な側面を解説していきます。

 

1.真のゴールは各局面の勝率を教師にすること

評価値とはつまるところ、詰みを読めなかったから嫌々呼び出している値に過ぎません。「詰みが見えれば勝ちだけど、それは出来なかったから局面の勝ちやすさを点数にして、高得点な局面に誘導しよう」と呼び出されるわけです。

評価関数が強いとは、この勝率の予想が正確であることを意味します。欲を言えば不完全情報ゲームの神のように、XX必勝とか引き分けとか言ってほしいのですが、それもできないことなので、嫌々何らかの方法で局面の勝率を定義します。

深い読みの評価値に浅い読みの評価値に近づける手法(雑巾絞り)は、歴史的には評価関数のブレを減らすためのものだといいますが、上記観点に於いては、深い読みの評価値の方がより真の勝率に近い値を出してくれているから、それに近づけていると解釈することが出来ます。

しかし、深い読みが浅い読みに比べて常に正確である保証はありません。同じ評価関数で長い持ち時間と短い持ち時間で対局させても、長い側が必勝とはならないですし、幾つかの戦型(例:qhapaqの対藤井システム)では広範囲にわたって評価値が勘違いをしていることがあります。

 

すなわち、elmo学習の真髄は実際に指し継がせた場合の勝率を教師にすることで、大局的な誤差を補正することにあるといえます。

 

# 指し継がせた勝率が深い読みの評価値より教師として適切であることは、実は自明ではないのですが、elmoが強くなっている以上、正しいと見なすことにします。

 

2.それならなぜ、勝率補正だけでやらないのか

勝率ベースの学習が深い読みよりも正確に学習できるのだとしたら、なぜ、elmoは未だに深い読みの評価値を加えているのでしょうか。

なんのことはない。その方がより真の値に近づくからです

 

以下、ちょっと面倒な数学的導出:

特定の局面xについて、指し継がせることによって得られた勝率をp(x)、深い読みから得られる勝率をq(x)、真の勝率をP(x)とします。q(x)P(x)の間には評価関数の勘違いに由来する誤差が、p(x)P(x)の間には測定回数の不足に由来する誤差が生じています。

我々はp(x)q(x)を使ってできるだけ正確にP(x)を復元したいとします。すなわち

 \sum_{x} ( P(x)-\alpha p(x)-(1-\alpha) q(x) )^{2} ..★

を最小にしたいわけです。p(x)は測定誤差であるため、ガウス分布に従う乱数であることが予想されます。一方、P(x)-q(x)は局面に応じて変化する何らかの(恐らく、なだらかな)関数であると予想されます。

一つ、シンプルなケースを考えてみましょう。とある戦型について、P(x)-q(x) = aである(評価関数が戦型の価値を一律で勘違いしている)としましょう。

問題を更にシンプルにするためにP(x)-p(x) はaか-aを等しい確率でとるとします。このとき、p(x),q(x)を単体で使った場合、P(x)に対する誤差の2乗期待値はa^2になります。

しかし、(p(x)+q(x))/2を使えば、誤差の2乗期待値は0.5a^2になります。複数の情報を用いた合議制を行うことで、より正確に真の値を見積もることができるわけです。

 

3.エロ河童理論によって予見されるelmoの現象論と今後の開発指針

elmoは持ち時間が長いほど強くなることが知られていますが、これは深い読みの評価値から得られる勝率q(x)は教師とした棋譜に似た局面(=短い持ち時間でよく出る局面)のほうが正確である(従来手法でも十分な教師が得られるため)からと思われます。

深い読みの評価値が正確であるなら、深い読みの評価値のウエイトを大きくしたほうがその局面の最終的な誤差は減るのですが、恐らく、elmoは教師とした棋譜からは遠い局面での学習の正確さを優先したのだと思われます。

また、指し継がせて得られる勝率p(x)の誤差の大きさは、教師データの数に依存します。★式からわかるように、教師データ数が少ないうちは、勝率の含有率を下げたほうが全体の誤差は下がるので、少ない局面で試し撃ちする場合は、配合率を徐々に上げるなどの調整をする必要があるはずです。elmo理論を改良して強くする場合は注意したほうが良い(複数の配合率で試したほうが良い)でしょう。

# ガウス分布に従うと考えれば、適切な含有率は教師局面の数の平方根に依存するはずですぞ...