Bonanza
以下、第11回 ゲーム・プログラミングワークショップ 2006にて発表されたVer. 2時点でのアルゴリズムに基づく。
各盤面の判断となる評価関数が、強い棋士が実際に指した手と同じになるようなパラメータを探索する。以下の誤差関数Jを最小にするパラメータvを最適化問題として探す。
J ( P 0 , ... , v ) = ∑ i = 0 N − 1 ∑ m = 1 M T [ ζ ( p m , v ) − ζ ( p m = 0 , v ) ] + λ M 1 ( v ) + ω M 2 ( v ) {\displaystyle J(P_{0},\ldots ,\mathbf {v} )=\sum _{i=0}^{N-1}\sum _{m=1}^{M}T[\zeta (p_{m},\mathbf {v} )-\zeta (p_{m=0},\mathbf {v} )]+\lambda M_{1}(\mathbf {v} )+\omega M_{2}(\mathbf {v} )}
右辺2項は過学習を防ぐための正則化項。N は学習データの局面数(対局数×手数)、 P i {\displaystyle P_{i}} は局面、M はその局面の合法手の数。T は T(0) 近辺で傾きが最大になる適当な関数(シグモイド関数など)。 p m {\displaystyle p_{m}} は一手先の次の局面で、 p m = 0 {\displaystyle p_{m=0}} は実際に強い棋士が指した手の局面。
保木は当初コンピュータ将棋ではなく、コンピュータチェスの論文をベースとして思考ルーチンの基本部分を作成した。ベースとなるデータは、インターネットなどで入手できた6万局に及ぶ将棋の棋譜データを元にしている。
この大会では、総計17台132コアのコンピュータによる並列処理を行い、うち1台はこれまで搭載していなかった長手数の詰将棋専用のルーチンを搭載して即詰みに対応した。また、保木以外に3チームがBonanzaライブラリ採用のソフトで参加した。
2012年5月の第22回世界コンピュータ将棋選手権では、保木は前年を上回る総計26台288コアのコンピュータを用意し、前年から取り組んでいる「合議法、クラスター並列探索、詰将棋専用マシンによる疎結合並列化」を推し進めたが、二次予選で9位となり、Bonanzaは初めて大会の決勝に残ることができなかった。この大会では6チームがBonanza6.0のライブラリを採用し、ボンクラーズから名称を変更した「Puella α」が2位に入った。
2013年5月の第23回世界コンピュータ将棋選手権では、保木は31台388コアのクラスタ構成で大会に臨み、前年は通過できなかった二次予選を4位で通過した。8チームの総当りで行われる決勝では6回戦を終えて4勝2敗となり、最終7回戦は5勝1敗の首位で前年の優勝チームであり、直前に行われた「電王戦」で三浦弘行八段を破ったGPS将棋との対局となった。対局は途中でBonanzaに即詰みが発生する必敗の局面となったが、25分の持ち時間を使い切ると即敗退となる制限時間のルールにより、GPS将棋が詰みを逃し持ち時間を使い切ったことでBonanzaが逆転で勝利。7回戦を終了して5勝2敗でBonanza、ponanza、GPS将棋の3チームが並んだが大会の順位決定規定によりBonanzaが2006年の初優勝以来7年ぶり2度目の優勝を果たした。
これは保木の本業である化学反応の制御理論を応用したものである。保木自身の棋力ではコンピュータを強くする設定を行うことができず、既存の機械学習で成果を上げたプログラムがなかったため、制御理論をもとに自作することにしたという。
Bonanzaは元にした6万局の棋譜データから、評価関数のパラメータを自動生成している。他のソフトは開発者がパラメータを定めた評価関数を用いているため、開発者の固定観念や棋力の影響を受けることがあった。ただし、パラメータは自動生成だが、何を評価するかは保木自身が決めている。棋譜からパラメータを自動生成することで、開発者の主観を排除した評価関数は強みでもあるが、同時に弱みでもある。当初、Bonanzaは序盤で大駒を切ることが多かったが、これは大駒の点数が他のソフトに比べて低く設定されているためであり、人間の感覚に反するこの設定は、自動生成に由来するものであった。後述の渡辺との対局でも、この特性を利用した角銀交換を迫られたが、その時には既に極端な大駒切りに関しては対策されていたため、交換はしなかった。
保木は後に、Bonanzaがコンピュータ将棋界に与えた影響について「目的関数の最小化を、状態遷移の拘束条件(化学ではシュレーディンガー方程式、将棋ではミニマックス原理)と適切な正則化条件の下で真面目に行なうという点が、思考ゲームの分野にもたらしたブレイクスルーだったのではないか」と振り返った。
作者は公開当時カナダ在住だった日本人の化学者保木邦仁。作成当時は将棋についてはほとんど知らないことも話題となった。2007年に刊行した著書では、自らの棋力を「11級」と評した。
2005年6月にver.1.0が公開。その棋力の高さは公開直後から渡辺明が自身のブログで「プロが平手で餌食になった」「奨励会有段者クラスがコロコロ負けているらしい」とたびたび話題にし、渡辺自身も「10秒将棋だと10回に1、2回はやられる」と述べた。また、コンピュータらしくない自然な手を指すとの評が確立した。棋力の指標となる将棋倶楽部24でのレイティングは2006年当時で2400以上(アマチュア五段相当=主要アマチュア棋戦の県代表争いレベル)に達した。
メジャーアップデートされたver.2.0は2006年5月に行われた第16回世界コンピュータ将棋選手権大会にBonanzaとして初出場し、歴戦の将棋ソフトが居並ぶ中で初優勝した。高性能なワークステーションで参加する者も多い中、Bonanzaは一般向けのノートパソコン (VAIO SZ-90S)、筐体を冷却するのは小型USB扇風機と、低スペックの環境での優勝であった。この赤い扇風機は、後に市販された初回限定版に同梱されるなどBonanzaの象徴となり、後述する渡辺との対局でも、Bonanzaのシンボルマークとして筐体の上に設置された(風は送っていない)。既に草創期を脱し強豪ソフトが固定化されてきた中、初出場での優勝、ノートパソコンでの優勝、フリーウェアの優勝という三重の「初づくし」は、コンピュータ将棋界に巨大な衝撃を与えた。