オープンソースシステム科ブログ

日本電子専門学校「オープンソースシステム科」の最新情報を発信しています

2009年07月17日

カテゴリー: イベント

「Bonanza」の作者、保木さんにインタビュー!(前編)


こんにちは、みなさんいかがお過ごしでしょうか。
出張取材担当のNでございます。

東京はいつの間にか梅雨が明けて、
亜熱帯の夏を迎えました。まさに猛暑です。

私は炎天下の東京から逃げるようにして、
涼しい東北地方まで足を伸ばし、
とある研究者の方にインタビューをして参りました。
今日はそのご報告をさせていただきます。

DSCN1609_U.jpg


インタビューのお相手は、保木邦仁さんです!

DSCN1565_U.jpg


保木さんは現在東北大学大学院理学研究科で
助教を務めておられます。
ご専門は物理化学ですが、その分野で用いられる制御理論を、
なんとコンピュータ将棋プログラムに応用してしまい、
2006年には世界コンピュータ将棋選手権で
並み居る強豪たちを次々に倒して
初出場初優勝を達成してしまったのです。
そのプログラムは「Bonanza(ボナンザ)」と言います。

Bonanzaがデビューしたときの衝撃は大きく、
当時のWeb記事上にその様子が表れています。
その後Bonanzaは2007年に渡辺明竜王と対戦し
敗れはしたものの、
最高レベルのプロ棋士との対戦でも
終盤途中まで互角の戦いをしたということで
また注目を浴びることになりました。
この模様はNHK衛星第2放送のドキュメンタリー番組として放送され、
将棋ファン以外にもBonanzaの名前を知らしめることとなりました。

もともとBonanzaはフリーウェアで誰でも入手可能だったのですが、
なんと保木さんは2009年1月にそのBonanzaのソースプログラムを
公開してしまったのです。そして誰でもそのプログラムを
自分のプログラムに取り入れる事ができるようにしてしまったのです。
つまりオープンソースなのです!

さあ大変、それから他のコンピュータ将棋プログラムも
続々とBonanzaのプログラムを取り入れて、
どんどん強くなっていきました。
業界ではそういったプログラムの事を
「Bonanzaチルドレン」と言うのだそうです。
そして今年2009年の世界コンピュータ将棋選手権では、
Bonanzaチルドレンたちが親のBonanzaを
打ち破っていったのです。Bonanzaは結局5位でした。

そんな状況の中、本家の作者保木さんは、
「いやあ、みんなBonanzaを採用してくれて嬉しいです!」
とさわやかな笑顔です。保木さんすごい!

さて、そんなBonanzaを作った、そして公開してしまった
保木さんとはどんなお方なのでしょう。

結論から言えば、真摯な研究者であり、かつ
「すがすがしいエンジニア」だったのです。
TV放映後に「保木ファン」が生まれたのも納得!
こんなエンジニアになれたらいいなあ、という
ある種の理想形みたいなエンジニアです。
私のインタビューからそのお人柄が少しでも伝われば幸いです。



N.「いきなり土曜日におじゃましてしまってすみません。
   いつも土曜日も大学で研究ですか?」

保.「そうですね、土曜日でも半分くらいの人たちは
   研究室にいますね。」


東北大学青葉山キャンパスは山の上、見晴らしも素晴らしく、
この静けさ、空気の良さなら研究にも思う存分打ち込めそうです。


N.「さて、保木さんはいつごろからプログラム開発に
   興味を持ち始めたのですか?」

保.「小学生の頃からパソコンには興味があったのですが、
   高校生になってやっと買えました。
   確かPC-9801シリーズで、3.5インチフロッピーが
   使えるやつでした。」

N.「懐かしいですねえ(笑)、N88-BASICとかですか。」


古い話になるとどうしても止まらないのです。
保木さん、ごめんなさい。


保.「えーと、よく覚えてないですねえ。
   あ、だんだん思い出してきました。
   BASICよりC言語やアセンブラが好きでした。」

N.「そうですか! すごいですね。」

保.「あ、パソコンの前にポケットコンピュータで
   LISPでプログラミングしてました。」

N.「LISPですかあ。やっぱり違いますね。
   普通ならアセンブラなんかだと
   プログラミングが大変で、
   そのうち簡単に画面効果が得られるような
   高級言語の方に流れていくと思うんですけど。」

保.「アセンブラだとコンピュータが動作する仕組みが
   わかるので面白かったですね。」

N.「パソコンそのものがお好きだったのですか?」

保.「ハードよりもソフトの方が好きです。
   パソコンやOSは『そのまま』の状態で使います。」


実は世界コンピュータ選手権で初出場初優勝した時、
Bonanzaはノートパソコン上で動いていたのです。
ライバルのプログラムはフルタワー型や
ラックマウント型の大きな大きなPC上で動いていて、
さらに発熱がすごいので大きな扇風機で
冷却していたのだそうです。
その中でBonanzaはごく普通のノートパソコンと、
ちっちゃな赤いUSB扇風機で、巨大(?)なライバル達を
破っていったのです。


N.「大学時代はパソコンの方はいかがでしたか?」

保.「大学時代は・・・他の事ばかりしてました。」

N.「え? どんなことですか?」

保.「バンドでドラムやってました。ロックとかジャズです。」

N.「え! そうですか! どんな曲を?」

保.「ジャズだとマイルス・デイビスとか、キース・ジャレットとか」

N.「ええーっ、すごいですねえ! じゃあ・・・(以下かなり略)」


すみません、また私の「ツボ」にはまってしまいました。
この後コンピュータとも将棋とも何も関係ない音楽の話が
延々と続きまして、約10分後、


N.「でも早熟なプログラマの保木さんが、
   大学時代にあまりパソコンを
   やっていらっしゃらなかったのは意外です。」

保.「やっぱりコンピュータばかりだと飽きちゃいますよお(笑)。」

DSCN1565_U.jpg


屈託のない微笑みから、無邪気さえ感じさせる保木さんは、
実年齢よりぐっと若く見えます。
失礼ながら日本電子の学生と話しているような感覚に
なってしまいました。


N.「いやあ、親近感を覚えます。
   保木さんがぐっと近づいたいた感じです(笑)。」

保.「コンピュータの勉強があんまり役に立たないなあという・・・」

N.「(笑)こんなこと記事にしていいんでしょうか(笑)」

保.「Excelでいいじゃん(笑)、わっ、ペーストできて簡単(笑)」

N.「確かに・・・(笑)。
   さてさて大学院ではどうだったのでしょう?」

保.「化学反応が楽しいと思いました。
   なぜ楽しいのかとよく訊かれるのですが・・・
   うーん・・・、まだ誰も知らないことがあるという・・・
   まず自分が最初に見つけようという・・・
   だから別に化学じゃなくても良かったんでしょうね」

N.「なるほど」

保.「でも、化学という対象は非常にいいです。
   まだわからないことだらけですから。」

N.「ああ、わからないからいいんですね。」

保.「例えばコップの水をとってもわからないですよねえ。」

N.「そうですかあ、水がわからないですか。」

保.「水分子1個はわかるようになったんですが、
   それがずいぶんたくさん集まってコップの中に
   ちゃぷちゃぷしてるんですね。
   で、そういう状況になると別のものを入れた時に
   水の中だと空気中と違うことが起きる。
   料理する時でもそうですよね。
   お味噌汁作る時も水がちょっかい出しているわけですよ。
   その様子がわかんないですね。
   どうしてそうなるかがわからない。」

N.「あのう、保木さんが料理すると
   時間がかかりそうですね(笑)。
   ずーっと煮汁を見ている(笑)。」

保.「あ、料理はしません(笑)。」


日常のちょっとした出来事から新たな謎を見いだす。
まさに科学者としての姿勢ですね。
料理も化学実験になってしまう。
確かにそれじゃ料理はできませんね(笑)。

さてここからはいよいよコンピュータ将棋の方に
話題が移っていきます。


N.「さて、ゲームのプログラムですが、
   最初はチェスですか?」

保.「オセロでした。日本語の文献を読んで、
   すぐに強いプログラムができました。
   そこで終了(笑)。」

N.「あっけないですね(笑)。
   将棋のプログラムはいつ頃?」

保.「これはもう、トロント大学に行っている時、
   本当に1年で集中して取り組みました。
   その時にはもうオセロからチェスから
   将棋から囲碁まで全部網羅的に
   調べる知識が身についていました。」

N.「なるほど、その時は既にチェスは
   コンピュータが人間の世界チャンピオンに
   勝ってしまっていましたから、
   やはり極めるなら将棋、ということに
   なったのでしょうか。」

保.「そうですね、将棋はいい対象なんですね。
   まだ作り方がわかってなくて。」

N.「あ、わからないのがいいんですよね。
   日本からの情報は?」

保.「論文は読めましたが、その他の情報は
   あまり入ってきませんでした。」

N.「将棋プログラムの難しさというのは?」

保.「局面を評価するのが難しいんですよ。
   その手法がなかった。」

N.「チェスとかの手法が応用できると
   思われたんですか?」

保.「いや、それが全然ないんですよ。」


さてさてここでコンピュータにゲームでの最善の手を
選ばせることの難しさについて、ちょっと解説します。

まずここでいうゲームとは、
・2人で、
・どちらかが勝てば相手は負ける、
・偶然の要素が入り込まない、
・全ての情報が完全に公開されている、
などの特徴を持ったゲームを指します。
こういうのをゲーム理論では
「二人零和有限確定完全情報ゲーム」
というのだそうです。すごい名前ですね!

種類としては今まで出てきた
オセロ、チェス、将棋、囲碁などがあります。
麻雀だと4人ですし、相手の牌は見えない、
偶然の要素があるということで、
この仲間には入ってきません。
トランプゲームも大半はそうですね。

さて将棋などのゲームでは、
一般に次の手の可能性が多いほど、
しらみつぶしに手の良し悪しを評価するのが
難しくなっていきます。

オセロの盤はマス目が8×8、チェスも8×8です。
将棋は9×9マス。囲碁は線の交点に打つのですが、
なんと19×19箇所も打つ場所があります。
スーパーコンピュータを持ってしても、
必勝の手順を読み切ることはできません。
6×6マスのオセロなら、後手必勝という
結論が出ているのですが、8×8になったとたん、
計算量が膨大になって結論が出ないのです。

それでもオセロとチェスは
コンピュータの急激な性能向上のおかげで
既にコンピュータプログラムが
人間の世界チャンピオンを破っています。
将棋はまだ人間のトッププロ棋士には勝てませんが、
近いうちに名人を破るのではないかと
言われるようになってきました。
プログラマから見れば、
今は将棋がいちばん「熱い」のです。

将棋はチェスに比べて1マスしか増えていないのですが、
一度取った駒を再利用できるので、
終盤になっても手の可能性が減るどころか
逆に増えることもあり、
コンピュータには難しいといわれます。

そんな中、保木さんは全く独自のアプローチで
強いプログラムを作り上げたのです。


N.「将棋というゲームの他との違いは?」

保.「将棋は難しい方の部類に入りますね。
   囲碁もそうですが、計算機的に難しい。」

N.「チェスとの違いは?」

保.「局面の良し悪しの判断が難しいんです。
   チェスの方が簡単なんです。」

N.「どうしてなんでしょう?
   マス目の数は1つしか違わないのに。
   チェスは駒の働きが強力ですけど・・・」

保.「はい、そこがすごく関係があります。
   チェスはひとつの駒がたくさん動けますよね。
   だから場所があんまり重要じゃないんですよ。」

N.「なるほど! 駒がどこにいるかは重要じゃない、
   どの駒がいくつ残っているかだけでいいんですね。」

保.「唯一チェスではポーンという、将棋の歩のような
   ひとつずつ前に進んでいって敵陣深くまで行くと
   『成れる』駒があるんですけど、
   これらは取られない様に隊列の形作りが戦術上重要で、
   位置関係が大変重要なんですけど、
   そこだけですね、チェスで難しいのは。」

N.「あと将棋の方が取った駒が打てるので
   終盤になっても手の可能性が減らないんですよね。」

保.「そうですね、ゲームを解くということに関しては、
   大変複雑になりますね。
   あと、将棋の強い方の局面評価って抽象的ですよね。
   『手厚い形になった』とか『局面がはっきりした』とか。
   そういう概念ってコンピュータにはできない。」

N.「あの、ちょっと失礼なのですが、
   確か保木さんってチェスとか将棋は
   あんまりお強くないんですよね。」

保.「ええ、まあチェスなんか『その辺を歩っている人』
   には勝てると思いますが(笑)。」

N.「『その辺をあるっている人』(笑)ですか。
   じゃあ、
   『私はチェスを趣味にしていて週に一度は対局しています。』
   という人なら?」

保.「もうぜんぜん敵いませんね(笑)。」

N.「では先ほどの難しい局面評価の問題を、
   将棋がそれほどお強くない保木さんが
   どうやって乗り越えていかれたのでしょう?」

保.「私は専門分野の化学に関連して、
   『制御理論』というものにかなり詳しいわけでして、
   それを将棋でやればいい、と思いました。
   化学において核とか量子などの運動で、分子を作って、
   それで化学反応が起きる、それを取り扱う手法が
   制御理論なのですが、その大きな概念的な狙いが
   そのまま将棋でうまく行くんじゃないか、
   と思ったのです。
   もうちょっと詳しく言うと、
   局面のパターン認識において、みんなは
   形の良い悪いを認識させる方向に行っていたんですが、
   私はそんなの全然興味がなくて、
   将棋を指すプログラムの仕組み全体、つまり
   システム全体を制御して、強い人と同じ手を指させようと
   思ったのです。これが正攻法だと信じてました。」

DSCN1573_U.jpg


N.「それが『自動学習法』という保木さんの
   圧倒的なオリジナリティなのですね。」

保.「そうです。
   あ、あと『評価以外は全部チェスの技術の応用でO.K.』
   というのも私のオリジナルです(笑)。」


他のコンピュータ将棋プログラムは、
将棋の強い人が作っている場合が多く、
中にはプロ棋士六段が開発に参加している
プログラムもあります。
そういったプログラムでは、局面評価にしても、
各プログラマの独自の工夫が盛り込まれているようです。

保木さんは自分が局面評価できないのなら、
コンピュータにやらせればいい、ということで、
『自動学習法』を完成させてしまったのです。


N.「でも今までも多くの人たちが
   自動学習に挑戦したんですよね。
   保木さんがそれに最初に成功したのは・・・」

保.「やっぱり全然別の分野にいたからでしょうね。」

N.「化学と将棋の幸せな出逢いでしたね。」

保.「そうですね(笑)。」



さあ、ついに保木さんは「誰も知らないこと」を
「自分が最初に見つけ」てしまいました。
そしてついに最強のコンピュータ将棋プログラム
「Bonanza」を生み出したのです。
誰にもできなかったことを実現したのですから、
ずっと独り占めしたいはずですが、
そこをなんと保木さん、今年の1月に「オープンソース」に
してしまったのです。どうしてなんでしょう。
自分のプログラムが勝てなくなるかもしれないのに。

その秘密は次回です。お楽しみに!