【将棋】bona6.0の評価関数

前回も張ったけど、bona6.0の▲金のKPP値。

見ると分かるけど、相手玉の周辺に大きな評価値がついている。
評価値の意味は、探索を行って、駒の取り合い(静止探索)を
行った結果、金がこの位置にいれば(詰めに近い状態?)400点くらい得になることを意味する。
bonaの終盤の寄せが強力なのは、このためだろうか。

KPPの評価は(A)KPP[自玉][駒1][駒2]-(B)KPP[相手玉][駒1'][駒2']で与えられる。
(B)は(A)の評価関数をひっくり返して同じものを使う。
基本的には自分の玉からの相対位置関係しか見ていない。

評価値を解析するために、(A)のみを表示してみた。

(A)の場合の▲金の価値


自分の玉周りに味方の金がいると30点くらい得。
相手玉の位置は見えていないのだけど、
とりあえず上部に▲金があればいいと思っている。

(A)の場合の△金の価値


逆に、自分の玉周りに相手の金がいると300点くらいマイナス。
かなり玉の危険度を評価している。これを反転して使うと
最初に説明した相手玉への寄せの評価となる。

考察:どうすると上記のようになるのか

(A)の場合の▲金の価値

最善手を進めると玉の周りに▲金がいることが多く、
それ以外を指すと▲金と玉が離れているとこうなる。
でも大体、序盤中盤の駒組の段階で玉の周りに金が
いることが多いので、そこまで差がつかない。

(A)の場合の△金の価値

最善手を進めると玉の周りに△金がいない(侵入を阻止)
それ以外を指すと△金に侵入されるとこのようになる。
△金が来るのは終盤から。
終盤ではちょっとした一手でこのような事態が生じることが多いため
これだけ評価値に差をつけないと、侵入を許してしまう。

クマ将棋の学習結果

クマ将棋の学習結果と比べていると上記のようにはならず、
自玉周りの▲金はよく評価するが、△金の評価値が低かった。
終盤弱いのはこのためだと思う。
原因を調べているけど、オンライン化もあるけど、
やはりバグがあったり、静止探索をstockfish流(成+玉移動)に
しているので多少結果が異なるようだった。
損失関数をL2ノルムにするかL1ノルムにするのは、
大まかな傾向でそれほど差がでるとは思えない。