パターン認識は、局面中の駒の配置や関係から意味のある形を捉え、評価や判断に使う考え方である。 将棋AIでは、手作り評価の特徴量設計からNNUEの入力表現まで、広い形で関わっている。
単純な駒得だけでは局面の良し悪しを十分に表せない。 たとえば、
といった「形」は重要である。
こうした形を抽出して評価へ反映するのが、パターン認識的な発想である。
古典的な将棋AIでは、
などを特徴量として定義し、重み付きで評価することが多かった。
これは広い意味でのパターン認識とみなせる。
学習評価では、人手で形を直接列挙する代わりに、 ネットワークが中間表現としてパターンを獲得することがある。
その意味で、
と見ることもできる。
単純化した例では、特定の形を検出してボーナスを与える。
int patternScore(const Position& pos) {
int score = 0;
if (isMinoCastle(pos)) score += 120;
if (hasOpenRookFile(pos)) score += 80;
if (isWeakKingZone(pos)) score -= 150;
return score;
}
実際には、個別の if よりも大量の特徴量テーブルや学習済み重みを使うことが多い。
将棋は盤面構造が豊かで、
など、形の認識が非常に重要である。 そのためパターン認識は、古典的手作り評価にも現代的学習評価にも共通するテーマである。