CHANGEMAKER #03 将棋プログラムponanza開発者 山本一成

山本一成写真

CHANGEMAKER #03

コンピュータ将棋をひたすら強くしてみたら
ひとの思考が、みえてきた。

将棋プログラムponanza開発者

山本一成

YAMAMOTO issei

2015. 10 .20 公開

interview : SAKIYA miho 
photo : KIM yongduck

1

人工知能の一分野として開発が始められ、いまや人間を超えつつある将棋プログラム。
プロ棋士と将棋ソフトが対戦する「将棋電王戦」で実力派棋士に次々と勝利し、当代最強の将棋プログラムとの呼び声も高いのが「ponanza」。
開発者である山本一成さんは、自らもアマチュア将棋の有段者。コンピュータ将棋と人間の将棋の世界の両方を行き来しながら、コンピュータと人とを、将棋というゲームの場で対峙させる。
人工知能の「こころ」がわかる山本さんが、最初につくったのは、とてつもなく弱い、誰にでも負けちゃう将棋プログラムでした。

自信をもってつくった将棋プログラム第1号は、すさまじく弱かった

── 山本さんは、なぜコンピュータ将棋の開発を始めたのですか?

写真

実は、大した理由、なかったんですよ。出身は愛知県なんですが、受験をがんばって大学に入ったら目標がなくなって、五月病をこじらせて。ぼーっとしている間に、そのまま留年(笑)。 このままじゃまずい。何かしなければ。
そう思った時、せっかくなら自分が苦手なことに挑戦しようと決めました。
コンピュータプログラミングです。
それまで、僕はパソコンにほとんどふれずに来てしまって、苦手意識を持っていました。「ショートカットキー」も使えないし、「ファイル」だの「フォルダ」だのも意味がわからない。エクセルなんて怖くていじることもできない。
とまあ、理系に進んだのにそこまでコンピュータ音痴っていうのもいかがなものかな、と。
じゃあ、いっそのこと「コンピュータといえばプログラミングだ」と耳にしていたので、とりあえず『はじめてのC』という本を買い、見よう見まねでC言語のプログラミングを自学自習し始めた。
やってみると、意外とできたんです。エクセルはいまでも全然扱えないけれど(笑)、プログラミングは性にあった。たぶん数学が得意だったせいかもしれません。プログラムって、数学と通じている部分があるんですよね。

── そこから、「コンピュータ将棋」にはどうやってたどりついたのでしょうか。

子供の頃から将棋、やっていたんです。きっかけは、小4のときに目の病気になって運動が制限されてしまったこと。運動ができないなら、代わりになにやろうか、というのでたまたま選んだのが将棋でした。
その後、中学、高校と将棋部に入って、そこそこ強くなったんです。大学でも将棋部に所属しました。自分としては、あんまり芽がでなかったな、と思っています。プロになれるほどではなかったので。

写真

プログラミングの話に戻ります。
プログラミングの本を読んでいたら、「探索問題」というのが出てきました。「探索」というのは、しらみつぶしにいろんな場合を調べて、正解を見つける、ということです。
そこで、チェスの話があったんです。チェスの譜面を探索して正解の手を見つけるプログラムを書く。すぐにためしてみて、ピンときました。
これ、将棋でもできるぞ。
将棋もさまざまな手をしらみつぶしに探していけば、正解、つまり必勝の手にたどり着けるはず。
じゃあ、将棋を指すプログラムをつくっちゃおう。

今から考えると、このとき、僕はちょっとうぬぼれてたんです。
自分はけっこう将棋がわかるから、すごく強い将棋プログラムができちゃうんじゃないかって。
というわけで意気揚々とできたプログラムを試してみました。
結果としては……驚くほど弱かった。
弱いなんてもんじゃない。こちらが飛車、角行、桂馬、香車、銀、金……ここまで取って互角くらい。つまり、こちらは王将と歩の駒だけでも、勝てたんです。
いや、けっこう考えてつくったんですよ。自分なりに「こうしたら強くなるんじゃないか」と工夫もしました。しかも、コンピュータの計算の速さは、プログラミングを勉強するなかで実感していました。足し算だったら、1から1億まで順に足させても数秒で答えを出しますからね。

── 落ち込みましたか?

いえ、むしろちょっと感動しました。これだけ計算の速いコンピュータが、将棋をやらせるとこんなに弱いのかって。まあ、いつでも感動しているだけじゃ前に進まないので、僕のとったのは「自分で考えるのをやめる」でした。いまの自分のやり方だと永遠に「弱いプログラム」しかできないだろう。さっさと過去の文献をあたっちゃおう。
そこで出会ったのが、将棋プログラムに革命を起こした「Bonanza」。このソフトの、思考ルーチンが公開されていたんです。

将棋のプログラムというのは大きく分けて、「探索」、つまり先の指し手を読む力と、「評価」、その手がいいのか悪いのかを判断する力によって成り立っています。
それまでの将棋プログラムって、自然な指し手を重視して探す「選択探索」が主流だったのですが、Bonanzaはその局面ですべての指し手を評価する「全幅探索」を採用していました。 こういった考え方は、将棋ではなくコンピュータチェスの論文をベースとしていたからできたことなんだと思います。Bonanza開発者の保木邦仁さんは、将棋についてはほとんど知らなかったそうです。それが逆に功を奏したんですね。人間が考えた将棋の発想にこだわっていたら、思い至らなかったかもしれない。

写真

それまでの将棋プログラムは、この局面がいいか悪いかを判断する「評価関数」を、開発者が「こうしたらいいんじゃないかな」と自分で決めていました。でもBonanzaはインターネット上で入手した約6万局の将棋の棋譜を読み込んで、そこから評価関数のパラメータを自動生成していたんです。
これが画期的でした。今話題の「機械学習」のはしりとも言えます。
このBonanzaのソースコードを全部読んで、自分の開発している将棋プログラムに取り入れていったんです。

で、そろそろ種明かしをすると、この頃に自分の将棋プログラムの名前を決めたんですよ。
そう、Bonanzaをもじって「ponanza」って。
あんまり弱いから、Bonanzaにあやかろうかな、くらいで深く考えていなかったんです。
今となっては後悔しています(笑)。
ほかにも、コンピュータチェスのソースコードを読んだり、機械学習全般について勉強したりもしました。
文献を読んで、考えて、咀嚼して、それを適用させていく。それで、ponanzaはメキメキ強くなりました。

1

CLÉ DE CARTIER ─ SIMPLE IS AN ART ─

Movement

最新の自社製ムーブメント

CLÉ DE CARTIER写真

キャリバー1847 MC, 自動巻, 23石。2万8800振動/時。
パワーリザーブ約42時間。

Movement

最新の自社製ムーブメント

「CLÉ DE CARTIER」に搭載されている、最新の自社製ムーブメント「Cal.1847MC」には、カルティエが培ってきた技術力と専門的な知識が遺憾なく発揮されている。
メゾンの創業年である「1847」が冠されているだけあって、その完成度は高く、カルティエのタイムピースの将来を担うものになることを予感させる。

ゼンマイの動力を蓄える香箱の回転数を上げる技術により、動力伝達上の無駄を省き、精度を安定させる設計となっているが、これは無駄を排してデザインされたケースの構想にも通底するものだ。自動巻きローターが、いずれの方向に回転してもゼンマイの巻き上げが可能となるよう、独自のレバーシステムによる双方向巻き上げ式となっており、パワーリザーブは約42時間。
日付表示も、深夜0時を迎えるのとほぼ時を同じくして、瞬時に切り替わる。

こうした優れた機構のみならず、ムーブメントに施された見事なコート・ド・ジュネーブ装飾も、その価値を高めている。

CLÉ DE CARTIER クレ ドゥ カルティエ

─ Cartier - カルティエ オフィシャルサイト ─