近年のコンピュータ将棋では,プロ棋士などの棋譜(5万局程度)を利用して,評価関数に含まれる特長ベクトルの重みが機械学習される.Bonanza が2006年のコンピュータ将棋選手権で優勝して以降,このような学習法の実装は各将棋プログラムに急速に広まった.
評価関数の機械学習は,最適化の枠組みで行われる.すなわち,プロ棋士の選択した手と,プログラムの選択した手の不一致度を測る目的関数を設計し,この目的関数を最小化する重みベクトルを求める.類似の枠組みは,古くは1982年,新しくは2001年のコンピュータチェスに関する文献にも見られるが[1, 2],2014年現在,将棋ほどの成功には至っていないようである.
Bonanza 法やBonanza メソッドという用語は,コンピュータ将棋の技術に関する解説にしばしば見られる.これらの用語は,時にはこのような枠組みで将棋の評価関数を機械学習するという広い意味で使われ,時にはバージョン6.0のBonanza のソースコードで実装されている方法という狭い意味で使われる.Bonanza で実装されている学習手法のうち主要なものは,文献[3]にて解析されている.
[1] T. Nitsche, A learning chess program, In advances in Computer Chess 3, pp.113-120, Pergamon Press(1982).
[2] G. Tesauro, Comparison training of chess evaluation functions, In Machines that Learn to Play Games, pp.117-130, Nova Science Publishers( 2001).
[3] K. Hoki & T. Kaneko, Large-Scale Optimization for Evaluation Functions with Minimax Search, Journal of Artificial Intelligence Research 49, pp.527-568( 2014).