このページの本文へ

開発者の山本一成・下山晃の両氏に聞く

プロ棋士に連勝!将棋ソフト「Ponanza」はなぜここまで強いのか

2016年06月21日 17時00分更新

文● 川島弘之/TECH.ASCII.jp

  • この記事をはてなブックマークに追加
  • 本文印刷

屈辱の逆転負けを経て

 「計算資源が足りない。どこかに落ちてないかな」。2014年5月頃、山本氏はそうツイートした。伸び悩んでいた時期だった。そんなツイートをたまたま目にした須藤氏が「貸しましょうか?」と声をかけた。それまで面識はなかったそうだが、そこから異色のパートナーシップが始まる。

 さくらインターネットからどんな環境を提供するか。試行錯誤を経て、8月末から次々とマシンの提供が開始された。200を超えるCPUコア、50TB以上のストレージなど、個人では手の届かなかった計算資源を手に入れたが、これらはすべて「『さくらのVPS』などの余剰リソース」(須藤氏)だったという。

 「ホントに助かりましたね。この頃は自宅でPCを動かしていたんですけど、電気代がヤバいし、嫁の目も怖いし、辛い時期でしたから(笑)」(山本氏)

 その後も少しずつリソースを増やしながら、マシンはフル回転を続けた。目標は2014年秋の将棋電王トーナメントで勝つことだ。「でも、この時は間に合いませんでした。コンピュータリソースをどう活かすべきか、方向性もまだ明確になっていなくて」。

 結果、この大会も2位に終わる。準優勝が続いたことから「シルバーコレクター」と揶揄されることもあった。

 ところが、ここからPonanzaの躍進が始まる。

 将棋電王トーナメント直後の11月3日に、山本氏と須藤氏の間でこんなやり取りがあった。「負けました。悔しすぎます。もしよかったら、引き続き資源を貸してください。勝手なことを言うと、10倍くらいあると助かります」と山本氏。「アプローチは間違ってなくて、単純にリソース不足という認識でしょうか?」と須藤氏。「確証は持てないのですが、同じ方法でやっている別のチームはかなり大規模にやっているので、おそらく正しい方向なのだと考えています」。

さくらインターネット クラウド開発室の須藤武文氏

 将棋プログラムとコンピュータ処理能力の関係には、2つの側面があるという。1つは、対局中に将棋ソフトを稼働させるコンピュータの処理能力だ。たとえば、春の世界コンピュータ将棋選手権は投入できる計算資源に制限がないため、文字通り、並列処理による物量勝負になりやすいという。

 一方、秋の将棋電王トーナメントはあらかじめ大会で規定された1台のマシンしか利用できないため、より将棋プログラムの優劣が問われる。そこで重要なのが、日頃からのトレーニングだ。

 すなわち、Bonanzaから学んだ「機械学習」である。

機械学習でメキメキと棋力向上

 山本氏と下山氏は次のような仕組みを開発した。

 さくらインターネットより提供された計算資源による並列処理で、将棋の局面ごとにあらゆる手を試行する。従来は3手先までの探索が可能だったが、計算資源が増えたおかげで、6手先までの探索が可能となった。人間は「読み」と「大局観」で手を絞り込んでいくものだが、Ponanzaは考え得るすべての手を検証する「全幅探索」を行なう。

 6手先までの考え得るすべての手。そのパターンは80億にも及ぶという。そうして辿り着いたそれぞれの局面が、結果として良かったのか悪かったのか、評価関数によって数値化する。その結果を「この機械学習のために独自開発したデータベース」(山本氏)に蓄積・解析し、再び機械学習にフィードバックする。処理を繰り返すほど、Ponanzaは賢くなっていくのである。

 山本氏によれば、機械学習は並列処理の効果がキレイにでるという。「対局中のマシンを増強するのは一時的なドーピングのようなもの。それよりも日頃の機械学習に計算資源をつぎ込んだほうが効果が高い。ただ、必要な計算資源に上限がなくて、あればあるほど良いので、欲望に限りがなくなるのが困りもの」と山本氏。実際、機械学習を繰り返したPonanzaは、2015年に入るころにはメキメキと強くなっていた。

 「他にも何かできないか試したんですけど、機械学習に勝るものはなくて。この時期は、コンピュータを回しておけば、あとは放っておいても強くなる夢のような時期でしたね(笑)」(山本氏)。

 それとは別に、自己対戦も繰り返した。調整を加えた「改良版Ponanza」と数千回~1万回と自己対戦させる。そして、改良版Ponanzaの勝率が一定以上ならコミットする。大抵はそううまくはいかずにリジェクトされるそうだが、「そんな地道なことを繰り返して、ぞうきんをさらに絞るように、細かなパラメータ調整を行なっていく」という。ここでは下山氏の技術力が活かされたそうだ。

下山氏

 その結果が、春秋のコンピュータ将棋大会3連覇だ。プロ棋士と覇を競う「第1期 電王戦」でも山崎叡王を破り、まさに向かうところ敵なしの状況である。

 須藤氏は「将棋プログラムに計算資源が必要なのは間違いありません。ただ、それだけで強くなれるかというとそうではなく、それを活かしてどうプログラムを強くしていくか、両名ともそのスキルが高いんですよね。機械学習中のマシンの稼働率を見ると、余剰を出すことも過負荷に陥ることもなく、高い効率でひたすら動き続けていました。マシンのポテンシャルを使い切る努力をされていました」と、Ponanzaの好成績の理由を語る。

 山本氏は「運も大きかったですけどね」と謙遜しつつも、眼に強い光を宿していた。それもそのはず。今後の流れによっては、羽生善治名人との対局が実現するかもしれないのだ。

開発者の生の声を聞く『熱量IoT』