色々な特徴量を使用したNNUE評価関数ですって

tttakさんは以前より様々な独自改良を加えている人のひとりだ。今回色々とリリースされたのでざっくり触ってみる。

 

github.com

 

まずはベンチマークだろう。

基本をKristallweizenとする。

手持ちのRyzen 1700(GL702ZC)で約480knpsである。デスクトップCPUだがノート用に若干デチューン(省電力化)されている。

8コアあるので次々やってるので細かい精度は気にしない。

 

今回ではなく前回リリースのやつから

NNUE-HalfKPE9 360knps

HalfKP-KK 430knps

HalfKP-PP 85knps

HalfKP-GSGS 370knps

HalfKP Distinguish Golds 480knps

HalfKP GamePly40x4 460knps

HalfKPKfile 440knps

HalfKP-KingSafetyはドキュメントに記載されているがバイナリファイルが同梱されていなかった。

 

昨年(と言っても一昨年の末くらいかも)選手権前に色々と実装して捨てたものに近いのが二つほどある。

KP特徴のベクトルをKKP特徴に置き換えたものを作った。入力が81倍になる。ファイルサイズは5GBを超える。これはelmoの滝澤さんも今年アピール動画に乗せていた。

上記には和算で加えたものが入っている。

 

また,成金を区分したものもテストした。KPP時代の名残であるがBonaPieceと言われる長さの二乗でパラメータが増えるので成金を全部統一値にしていた分を再度分解した形だ。学習コストはかかるが見ての通り探索速度は下がらない。だが実際学習させてみても,選手権前時点でこれが有効になるほどの効果は見られなかった。

成金が様々な位置にいる教師データ不足と言っていいかもしれない。

 

実際に実験してみると分かるが探索速度が落ちた場合その分を評価関数の精度で勝るのは実は非常に難しい。とはいっても失敗大半の試行錯誤から色々と新しいものが生まれるので有望そうなら片っ端から試してみる姿勢は重要である。

探索速度派の私はHalfKP Distinguish Goldsに一票と言ったところか。