専門外の人から見るBonanza。

 先日、将棋の渡辺竜王とコンピュータ将棋Bonanzaの対局がおこなわれ、Bonanzaが負けた。ニュースではBonanzaの惜敗であるということになっているが、いろいろとネットを見て回ったところでは「惜敗ではなく大差だ」との主張もあるようである。私は将棋については駒の動かし方が分かる程度なのでそのあたりの見解には何も口を挟めないし、またコンピュータ将棋についても全くの門外漢であるので学術的なコメントはできない(だから間違っていたらごめんなさい)。ただ、ミーハー的に興味があったので、2007年3月24日(土)に開催された「エンターテイメントと認知科学シンポジウム」*1に行ってきた。そこで、Bonanzaの作者を交えてのパネルディスカッションがあったので見学してきた。なかなか面白い話が聞けたので、その一部を書く。また、家に帰ってきてからBonanzaの公式サイト*2を見に行ってそこにあった発表資料*3を読んだので、その感想も書く。

 なお、本日の日記の題名の「専門外の人」というのは私のことである。それから、本日の日記に出てくるBonanzaに関する記述には裏話は含まれておらず、全て公開されている話であるので、倫理的な問題はないはずである。あるとしたら取材に来ていたテレビ局の方の情報占有度が減るくらいであろうが、本当にわずかなことしか書かないつもりであるので誤差の範囲として見逃していただきたい。

 まず、パネルディスカッションでは、Bonanzaの設計のシンプルさに驚かされた。私もK-shogiというソフトをダウンロードしてきて遊んだことがあるのだが*4、思考ログを見てみると「序盤・中盤・終盤」の判断であるとか、囲い方の判断であるとか、詰みがあるかどうかの探索であるとか、そういった細かいことをいろいろとしていることが分かった。そのときには、なるほどこうやって将棋のソフトはできているのかと感心し、また設計方針に納得もした。要するに、私がK-shogiで遊んだときには造りの丁寧さを感じたのである。ところが、Bonanzaのウェブ掲載されている発表資料を読んで驚いた*5Bonanzaの設計方針で勝てるとは思わなかったからである。

 YSS(AI将棋)の作者によれば*6、コンピュータ将棋というのは「読み」と「局面判断」と「読みの深さ」というのが三大要素であるらしい。私の言葉で語り直せば、先の局面がなるべく自分に有利になるような手をしらみつぶし且つ効率的に探すということである。この三大要素にはいろいろとテクニックがあるのであるが、私の感想では、「局面判断」に将棋ソフトの個性が如実に出てくるのではないかと思えた。「読み方」と「読みの深さ」の性能はハードウェアの性能が上がれば自動的に上がるものであるが、「局面判断」はハードがどれほど頑張っても性能が上がらないからである。そしてBonanzaの資料を見てみると、Bonanzaは局面判断を序盤から終盤までずっと同じ基準でおこなっているように見える。序盤はどうやら定石に基づいているようであるが、定石から外れたらその大雑把とも思える局面の判断方法を用いている。

 Bonanzaは盤面の評価をシンプルに「自分の駒の数」「駒の連携」「駒の利き」を数値化することによっておこなっているようである。歩が一枚あったら106点、角が一枚あったら617点*7、玉の右横に金があったら*点、角が利きが*マス通っていたら*点といった具合である。これと似たようなことはおそらくほかの将棋ソフトでもやっていると思われるが、資料を見たかぎりではBonanzaは序盤から終盤までこの「点数表」を変更することなく盤面評価をおこなっている。ただし、先ほど「大雑把」とは書いたが、ある意味では相当細かく盤面評価をおこなっている。Bonanzaが盤面を評価するときには、10000以上の観点からおこなっているそうである。おそらく、これがほかの将棋ソフトにはない強みとなっているのではないかと思われる。

 Bonanzaのことを多少調べたことのある人なら「人間の対局六万局を参考にしているらしい」ということを知っているかと思う。Bonanza制作過程ではその局面一つずつを「自分の駒の数」「駒の連携」「駒の利き」など数値化できる要素に変換する。その数値化した局面から10000以上の観点の「点数表」を作っている*8。そして要素を「点数表」にあてはめて、盤面の評価値を計算する。人間がこの10000以上もの数値からなる「点数表」を手作業で設定していたらあっという間に数年経ってしまうので、自動的に「点数表」を機械に作らせている。その結果、「歩と金の点数を足したらおおよそ角の点数」になっている。また、「銀の斜め後ろに金がいるとよい」ということも自動的に機械が人間の棋譜から学んだことである。Bonanzaの差し手は人間のようだと評されることが多いらしいが、それはこのあたりの事情に由来している。

 乱暴な言い方をしてしまえば、Bonanzaというのは人間の棋譜を六万局観戦して「盤面に対する価値観」を学び、その価値観に従って駒を動かしているということになる。そう言い表してしまうと人間とほとんど同じことをしているようにも思えるが、Bonanzaにできないことというのが存在する。例えば人間は、「相手が美濃っぽいから船囲いにしようか」などと「戦略」を立てるのが普通であるが、Bonanzaはそもそも「相手が美濃っぽい」ということを認識することができない。また、「船囲いを作っている」という自覚もない。比喩的にいえば、盤面に無秩序に置かれた駒を見て「天性の勘」と「読みの速さ」を武器にして駒を動かしているだけである。ボールが来たらばーんと打ち返せばいいんですよと言いそうな人の感覚と同じである。Bonanzaは盤面を「理解」することができない。

 この「理解・認識」に関する問題は将棋に限らず人工知能の分野全体の課題である。そもそも、「理解・認識」がどういったものかが工学的に分かっていない状況である。Bonanzaはその「理解・認識」をまるで放棄しているという意味で、非常にコンピュータらしいソフトに思える。そのようなソフトが「人間らしい手を指す」というのは非常に興味深い。



 最後にどうでもいい話をするが、Bonanza竜王との対局中ずっと「7一角」を指したがっていたそうであるが我慢していたらしい。ロースペックのマシンだったら読み切れずに実際に指してしまっていただろうとのことである。

*1:エンターテイメントと認知科学シンポジウムhttp://minerva.cs.uec.ac.jp/~ito/entcog/

*2:Bonanza公式サイトhttp://www.geocities.jp/bonanza_shogi/

*3:Bonanza発表資料http://www.geocities.jp/bonanza_shogi/gpw2006.pdf

*4:K-shogiでは私は八枚落ちのコンピュータに負けた。

*5:学会での話は勝又六段がツッコミでBonanza制作者がボケの役割に徹していたので学術的なことはあまり分からなかった。

*6:YSS制作者は学会ではあまり喋らなかった。

*7:Bonanzaが角を切るのが好きなのは、この角の点数の低さに由来する

*8:学術的にはこの「点数表の作り方」が面白いはずである。