評価関数をブリードすると何故強くなるのですか?

評価関数を合成するのが流行っている。ここで言う合成とは、2つの評価関数のそれぞれのパラメーターを足して2で割ることである。ブレンドと呼ばれている。

1:1でブレンドする以外にも比率は自由に変更できる。また「ブレンド」という用語は、ダビスタになぞらえて「ブリード」とも呼ばれている。

しかしブリードすると何故強くなるのかについてはよくわからない。

そもそも足して2で割ってそれぞれの良いとこ取りなんて都合よくされるはずがない。しかし強くなっているのは厳然たる事実である。

例えば、elmo(WCSC27)とrezero8をブリードするとelmo+R100ぐらいの評価関数が出来る。rezero8単体ではelmoより明らかに弱いにも関わらずだ。これをどう説明するのか?

一つの仮説としては、Aperyの学習部とやねうら王の学習部とで何かが違うのではないかということだ。

elmo(WCSC27)はAperyの学習部を用いて学習させたものである。
rezero8はやねうら王の学習部を用いて学習させたものである。

例えば、「双方の学習部にバグがあり、Apery側で学習できない何かが、やねうら王側では学習できる。その逆もまた真である。」というケース。

これを検証するには、やねうら王の学習部を用いて、elmo(WCSC27)と同じ条件で教師局面を生成して浮かむ瀬から追加学習させてみる必要がある。

ただ、Aperyのdepth 6とやねうら王のdepth 6とは探索の性質が異なる。やねうら王のほうが長時間では強いが、その分、枝刈りが激しかったり、短時間では弱い可能性がある。枝刈りが激しいとしたら、Aperyのdepth 6のほうが手広く読めていて、同じdepth 6同士の比較だとAperyのほうが良い探索である可能性がある。

そこはさておき、とりあえずそこ以外は(だいたい)同じ条件でやってみる。elmoは初期局面から6手がランダムムーブで評価値3000が投了スコアなので、やねうら王では以下のようにコマンドを打てば同等のはずである。

BookMoves 0
gensfen depth 6 eval_limit 3000 random_move_minply 1 random_move_maxply 6 random_move_count 6 random_multi_pv 1 loop 5000000000

さて、これで生成した50億局面から学習させるとelmoと同等になるのだろうか?

つづく


評価関数をブリードすると何故強くなるのですか?” への3件のコメント

  1. 良くも悪くも、平らに均されるということですよね?
    相手に対して自分の評価が良過ぎた手は評価が下げられて使われにくくなるとか、自分が知らなかった手を相手が良い評価をしていたら自分もちょっと良い方向に評価してちょっと使ってみるかみたいなことが起こるようになるとか。

コメントを残す

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