Hand-Crafted Evaluation(HCE)は、 人手で特徴量と重みを設計する評価関数である。 NNUE 以前の主流であり、 今でも小型エンジンや教育用実装では重要である。
HCE では、 開発者が
を設計する。
典型的な要素は、
である。
int evaluate(const Position& pos) {
int score = 0;
score += material(pos);
score += pieceSquareTables(pos);
score += kingSafety(pos);
score += mobility(pos);
return score;
}
実際には phase に応じた重み付けや、 多数の pattern feature を加えることが多い。
将棋では、
という流れがある。
HCE はその出発点であり、 現代的な学習評価を理解するためにも土台として有用である。
また、将棋では
などをどう表現するかが設計の肝になる。
NNUE は学習評価だが、 差分更新を重視する点や高速評価を目指す点では、 HCE と連続した発想を持つ。
そのため HCE の知識は、 NNUE を理解したり、補助評価を設計したりするうえでも役立つ。