elmoがもたらしたオーパーツについて

WCSC27で優勝したelmoがもたらしたのは、たった一行の革命だった。

交差エントロピーで勾配を求めるとき、普通は次式のようになる。

dsig = eval_winrate – teacher_winrate;

eval_winrateは、浅い探索(qsearch)の評価値を勝率に変換する関数(シグモイド関数を用いている)で変換したもの。
teacher_winrateは、深い探索(search)の評価値を勝率に変換する関数で変換したもの。

交差エントロピーで勾配を求める場合、上式のように差をとるだけだ。この式の導出については、第4回電王トーナメントのときの白美神のPR文書にある。

elmo式の雑巾絞りはこの式を次のように改良した。

dsig = (eval_winrate -t) + 0.5 * (eval_winrate – teacher_winrate);

tはこの局面の手番側が最終的に勝っているなら1(勝率100%)、負けているなら0(勝率0%)とする。

教師局面の生成時にはdepth 6以上の深さで探索をして、その指し手で局面を進めているのでゲームの結果である勝敗はそこそこ妥当な結果であるから、これを補正項として用いると過学習を避けられるようである。

もともと、ゲームの勝敗を用いて強化学習を行うというのは、他の分野ではdeep learning + 強化学習という形でdeep learningの入門記事にもあるような内容だし、将棋ソフトにおいてもなかったアイデアではない。どちらかと言えば、いまの雑巾絞りのようにRootStrapにするほうが特殊なアイデアである。しかし、RootStrapとして勝敗を用いるというのはなかったのではないかと思う。(Seleneが似たようなことをしていた気はするが) そして、elmoはそれがとてもうまくいくと実証したことも大きい。

興味深いことにelmo式で作成した評価関数は、以前の評価関数とは性質が異なるようで、短い時間(1スレッド1手1秒)では以前の評価関数に負け越すこともある。しかし長い時間になればなるほど以前の評価関数に勝ち越すようになる。(差が開くようになる)

また、elmo式で作成した評価関数同士の場合は、短い時間(1スレッド1手3秒)と、長い時間(1スレッド1手10秒)とで勝率にはそんなに差がないようである。

elmo式雑巾絞りが新たな扉を開いたことは間違いなさそうだ。

今年も電王トーナメントの開催が決定したが、elmoがライブラリとして使える以上、予選通過ラインがそのレベルになるだろう。将棋ソフト開発者は、いまそこelmo以上のオーパーツを未来から召喚するときだ。

elmoがもたらしたオーパーツについて」への9件のフィードバック

  1. ポナンザ一強となってつまらんくなるかと思ったその矢先のELMOの登場!全く最高ですね。コンピュータ将棋の世界の奥深さを感じます

    • 評価関数がわずかに変わっただけでレーティングが大変動する時代になってきましたね。スポーツカーの最高速度が10%高速化すると、最高速度は、時速何kmのupになるか?みたいな問題に似てます。

  2. ただ問題なのは、非公開勢力が同じことをもうやってたという可能性があるかもしれない点など。

    • 何が問題なのでしょう?elmoは、学習の更新式を公開して、かつ、それが非常にうまくいくことを大きな舞台で実証したことに意義があるのでは。

      • 既に存在していればオーパーツとは呼べないのではないかと思ったけど、オーパーツを使っている文明とか時間軸とかそんなものに手が届いたということであれば、それもオーパーツであって、あまり問題と言うほどでもなかったですね、すみません。

  3. なんとかちゃんねるでは、

    elmoの指し手は安全勝ちを目指しすぎ。非人間的で真似し辛い。お手本にしにくい。
    elmoは他ソフトより水平線効果が早く出る。(敗勢になる前の劣勢状態で)無駄な歩を打って先延ばしする。

    というような報告がありますね。私はスマホで短時間やってるだけで、上記の真偽わからないのですが。

      • 是非を問うわけじゃないんですが…。
        もし上記がelmoの特徴だとすれば、さらにelmoを絞って適切に深い読みをする評価関数ができた場合は、上記の傾向がさらに強まるかもしれない…と考えると面白くないでしょうか?

        先手26歩に、後手elmoは絶望して手数をのばすだけの玉上がりと右往左往を繰り返す、とか。
        まあ定跡あるし、offでも角頭は守るんでしょうが。

        悪いときは悪いなりに相手が間違うのを期待して指せ、という水平線対策の実装が、案外早く必要になるかもしれません。

        • 将棋においては手数を伸ばす指し手が最強の粘りであることが多いので、そのへん私は楽観してますね。

          自玉に即詰みがある状況で勝負手みたいなのを出せたほうが対人だと良いのかも知れませんけど、それはOM-searchみたいなことしないと…。
          http://ci.nii.ac.jp/naid/110006381102

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です