人間を手本から独自進化へ

将棋ソフト「ponanza」の開発者である山本一成氏(写真左)と、西尾明六段(同右)

―― 3月から、いよいよ将棋電王戦FINALが始まります。人間対コンピュータ5対5のラストとなりますが、どんな戦いになるでしょうか。

西尾 今回は、人間側が与えられたルールの中でいかに勝率を最大化させることができるか、という部分に注目しています。日本将棋連盟としては、前回以上に気合が入っていることは間違いありません。どの程度やれるのかは分からないですけど、面白い五番勝負になるだろうとは思いますね。

山本 西尾さんが出場棋士にアドバイスしたりしているのですか?

西尾 私はコンピュータ将棋の全体的な傾向などを教えたり、フラッドゲートの棋譜をピックアップして渡したりしています。ただ、今度の山本さんのプログラムは、以前の物とだいぶ感じが変わったような印象を持ったのですが、気のせいでしょうか。

山本 あっ、分かってもらえましたか? 実は人間でいう大局観にあたる評価関数を、いままでは棋士の手(棋譜)を正解(手本)として作っていたのですが、今回はソフト自身が考えた手を教師にしてそれをフィードバックさせるようにしました。いうなれば独自進化でしょうか。その進化が正しい方向に行けるかどうかは分からないんですけど。

西尾 なるほど、そういうわけだったのですか。

山本 意外に思われるかもしれませんが、プログラマーって、ソフトが何でそういう動きをするのかを把握しきれていないところがあって、プログラムの考えが、指し手としてどう表れるかの推測は人間には難しいんです。ただ、ソフトの挙動が分かるようでは強くないともいえます。つまり、開発者である私の理解を超える挙動をしてもらわないと困るのです。自分で考えるという行為は、人間なら自然にやっているので、将棋ソフトもようやくそういう段階にこられたのかなという話です。たとえば、羽生名人があれだけの強さをどうやって保っているのかを考えてみましょう。もちろん、若手の棋譜などの情報を見て吸収することも多分にあるのだとは思いますが、最終的には過去の体験から学習し、自分自身でよく考えることで強くなっているのではないでしょうか。だからコンピュータ将棋も、上の教師がいないなら自分で評価関数を作るようにしなければと思っています。

西尾 確かにそうですよね。山本さんの話にもうひとつ付け加えると、人間には直感という能力があって、それはいかにして育まれるのか。たとえば初めて目にする局面があったときに人間はどう考えるかというと、いままで自分が培ってきた親しみを持つ要素をつかんでいって比較することで、それまで自分が慣れ親しんだ形に対してここに長所がある、短所があるっていうふうにして直感を使っているんだと思います。

新たなブレイクスルーはあるか

―― そういった人間の思考プロセスというのは、コンピュータ将棋に応用できるのですか。

山本 コンピュータだって、似てる形を見つけて点数をつけているわけですからね。点数がついている形をポンポンとつけているだけなんです。でも人間はもっと大きなパターンで把握できるじゃないですか。耳にしたことがあるかと思いますが、コンピュータは評価関数を作るときに、「3駒の関係」や「玉を含んだ関係」など、基本的に小さなパターンでしか見てないんです。せいぜい3、4個。ところが人間は、もっと大きく見て判断することができる。脳の作りなどが関係するのでしょうけど、人間はそういうことが得意ですよね。本当はコンピュータも「40駒間の関係」ぐらいできれば問題は解決するのですが、それに正しく点数をつけるのはかなり難しいことなのです。ただ最近は、ディープラーニングという人工知能の手法を使うことで実現できつつありますけど。

西尾 ディープラーニングというのは、機械学習の分野でいま大きく注目されている技術のことですね。従来難しかった画像認識や音声認識に応用され始め、これから言語に向かうのではないかといわれているとか。私もとても興味を持っているのですが、将棋プログラミングではどういった刺激があるのかお聞きしたいところです。

山本 実は囲碁では、このディープラーニングを使ったソフトがようやくできました。棋力もけっこう強いんですよ。ただ残念なことに、1局面を評価するのに0.01秒といったレベルで、コンピュータの世界では信じられないくらいの遅さなんです。これがもう4桁くらいスピードが速くなったら、猛烈に強くなると思いますね。私もその手法を将棋に使いたいと思っているんですけど、1個1個の処理速度が遅すぎて、まだ現実的ではありません。

ポナンザとの名コンビで将棋電王戦タッグマッチを制した西尾六段(2014年10月12日)

―― 話を将棋電王戦ファイナルに戻します。今回のポイントは?

山本 先ほども言ったように、今回はソフト自身を教師にして評価関数を作るということを大きなテーマにし、エネルギーを使いました。少しは成果が見られていますが、まだちゃんと離陸できてない感じです。序盤の最初の部分はプロ棋士の知恵が詰まった棋譜から評価関数を作っているので、全くのゼロからというわけではないんですね。そのほうが絶対に速いので、そこは依存してます。本当はゼロからできたほうがすごいことなんですけど、もともとある評価関数からスタートして手を考えさせたほうが効率がいいと思っています。人間も最初は人の真似をして、ある程度できるようになったら自分で考える量が増えてきますから。それと同じですよね。

―― 模倣と創造のバランスが重要だということですね。

山本 自分だけを教師にしていると変な方向に突っ込んでしまうときがあるから、本当は他流の血が入ったほうがいいのですが、難しいんです。なぜかというと、同じような強さのソフトが少ないから。そういう意味で、トップってつらいんだなと思いますね。目印がないからどこへ進んだらいいのか分からない。それってすごくエネルギーがかかる状態なんです。将棋ソフトを強くする指針は昔はあったのですが、いまは高速道路が整備されているので、強いソフトがあっという間に、しかも簡単にできるようになりました。ただし、そこから先が分からない。だから私も手探りでやっているんですけど。