鶴岡慶雅さん

鶴岡慶雅先生

古来より日本で遊ばれ、高い知名度を誇るボードゲームである将棋。現在に至るまで新戦術の開発などにより進化を続けてきましたが、近年では技術の発達によりコンピュータが将棋を指すようになりました。

今回はコンピュータ将棋ソフトウェアの1つである『激指』を開発された鶴岡慶雅先生(東京大学大学院工学系研究科電気系工学専攻)に、『激指』や現在の研究についてお話を伺いました。


激指について

先生が『激指』を開発された経緯を教えてください。

当時僕は修士2年で、コンピュータ将棋選手権(編註:現在の世界コンピュータ将棋選手権)が毎年開催されていました。コンピュータ将棋のチャンピオンを決める大会です。その話をどこかで聞いて、何か面白そうだなと思って、先輩後輩を誘って4人で見に行ったんです。

見ていて面白そうだな、じゃあ作ろうかって言って、4人で作り始めたというのがきっかけですかね。

研究というよりは遊びに近い形でされていたということですね。

そうですね。研究とは全然関係ありませんでした。当時所属していた近山研究室(編註:近山隆先生の退職に伴い2014年4月から鶴岡研究室として活動)にはプログラミングが好きな人たちが集まっていたので、ちょっと腕試しという感じだったと思います。

『激指』は世界コンピュータ将棋選手権で合計4回優勝されていますが、他のコンピュータ将棋に比べてここが強いという点はありますか。

どうなんでしょうね。『激指』は「読み」に関して独自のアルゴリズムを使用しています。普通コンピュータ将棋では、何手先まで、というふうに読む手数を決めるのですが、僕らの場合はそうではなくて、この局面がどれくらい実現しそうかという確率を計算して、その確率に従って読む範囲を決めています。わりと人間的に、実現しそうな局面を深く読むし、そうでないところは浅く読むという、メリハリのある読みに特徴があります。それが強さに寄与していたかなと思います。

しかし最近は、皆さんコンピュータチェス由来の技術をどんどん使っています。そうすると結果的にさっき述べたような話と似たような振る舞いになるので、そういう意味で僕らのアドバンテージは大分消えているかもしれないですね。

チェスに比べて将棋は持ち駒が使える分とても局面数が多いと聞きました。

そうですね。実際そういうことがあるので全幅探索という可能な手を全部読むという手法は将棋ではうまくいかないとされていました。 それで、僕らみたいに絞って深く読むというのがうまくいっていたのですが、基本は全幅探索なんだれけどもより浅く深くのメリハリをつけるという技術がチェスのほうでも進歩してしまって。そういう意味では、チェス由来の技術だけれどもコンピュータ将棋でそのまま使えるみたいなものが、最近では多いですかね。

実際、トップクラスのコンピュータ将棋ソフトでも、チェスのオープンソース(編註:公開されていて誰でも利用可能なもの)のプログラムの大部分をそのまま使っているようなものも結構あります。だいぶ時代は変わってきていますね。

現在の研究について

先生は現在どのような研究をされているのですか。

鶴岡慶雅先生

広くいうと、AI(編註:人工知能。ここでは知的な処理をコンピュータが行うこと)に関する研究です。具体的なトピックとして、1つは自然言語処理、もう1つはゲームAIがあります。自然言語処理のほうは、コンピュータが人間の言葉を理解したり喋ったりできるようにしたいという話です。ゲームAIのほうは、コンピュータ将棋もありますが、他にも囲碁や麻雀などのAIを通して人工知能にアプローチをしていこうとしています。研究室の学生さんを見ていると、自然言語処理をやっている人とゲームAIをやっている人は半々ですかね。

ゲームAIというのはやはり、『激指』の開発と繋がっているのでしょうか。

繋がっているといえば繋がっているかもしれないですね。『激指』とかコンピュータ将棋に興味を持って研究室に入った学生さんもいるので。結果的に、研究室にゲームのAIの研究をする人がそれなりに多いのはそういうところから来ているかもしれないですね。

現在も先生の研究室のウェブサイトに激指という名前が載っていますが、現在でも『激指』は進化を続けているのでしょうか。

現在も一応世界コンピュータ将棋選手権に出てはいるのですが、将棋プログラムを強くするということと、研究として面白いことをやるということは、完全に一致はしないんです。というより、大分違うところもあって、特にコンピュータ将棋は理論的にはかなり成熟してしまっているので、研究として面白いことをやるのは難しくなっているんですね。

例えば機械学習(編註:人工知能の手法の1つで、コンピュータがデータをもとに動作を向上・改善すること)を使うというのも2005年くらいから始まって、みんなそれを導入して、ひと通り色々なことをやって、一段落ついたという感じです。

そういう意味で、研究としていい成果を出そうと思うと、将棋ではなく他のゲームをやるほうがうまくいきやすいですね。

しかし最近は「電王戦」(編注:株式会社ドワンゴ主催のコンピュータ将棋とプロ棋士が対局するイベント。2011年から始まった)などでコンピュータ将棋が注目を浴びていますね。

そうですね。その辺がちょっとズレのある所ですよね。コンピュータ将棋の業界的には一番盛り上がっていたのはもっと前だと思いますが、そういうふうにプロ棋士の方との対局イベントが始まって、世間的に話題になったのは割と最近です。業界としての盛り上がりと実際にニュース等で取り上げられるタイミングはちょっと違います。

最近はプロ棋士とコンピュータがいい勝負をしているようですが、それも研究の進展というよりはそれ以外の工夫の部分によるものでしょうか。

そうですね。ただ、研究と細かい技術とは完全に切り分けられるものではないです。ある種の工夫であっても今までと全然違う方法であれば、それはもちろん研究と呼ぶことができるし、逆にとても細かい工夫で、例えばプログラムの動作速度が5%上がりました、みたいなものは研究として発表するには弱いですよね。ただ、こういう細かい工夫と苦労を積み重ねるのも強さには繋がりますからね。それでプロより強くなっちゃうということもあり得ます。

先生の研究室にはコンピュータ将棋に興味を持って入ってくる学生さん方もいるということですが、そういった方たちは例えばどんなことをやるようになるのでしょうか。

ゲームAIをやる人は多いですね。最近だと麻雀をやっている人もいて、かなり強いプログラムになってきています。麻雀はコンピュータ的にもかなり難しくて、人間のトップとはまだ差がありますが、人間の平均よりははるかに強いというところまで達しています。そういう意味では、ゲームAIの分野では将棋より未開拓のゲームのほうが面白い成果を出しやすいですね。

まだまだ未開拓のゲームというのは沢山あるのですか。

あります。今は新しいゲームが次々と世の中に出ていますから。結局なんでゲームを研究しているかというと、何でもできる普通の状況でのAIを研究するのは難しすぎてとても無理なんです。だから、ある程度シチュエーションを限定しないと研究がやりにくいわけです。そういう意味で、将棋とか囲碁とかはルールがはっきりしているし、評価もしやすいし、題材として非常にいいわけです。

しかし、将棋や囲碁はやはりゲームなんですよね。日常生活とはかなり距離があるわけです。それが例えば麻雀になると、全部の情報が見えないという意味では現実に少し近くなるし、リアルタイムストラテジーなどはさらに複雑ですよね。色々見えないものがあるし、選択肢も多いし。そういうほうがやはり現実に近いわけです。だから、AIを考える上では現実に近い複雑なゲームのほうがより意味があるわけです。そういう方向にシフトしていくという流れは当然あると思います。

将棋やチェスだと、相手の予測は実は全く要らないんです。なぜ要らないかというと、相手が最強の手を返してくるという仮定に従って計算していれば自然に答えが出てしまうので、そもそも予測する必要がないんです。しかし、麻雀のような多人数のゲームになると、相手が最強の選択をしてくると仮定して計算した最適解というのが現実では勝ちには繋がらないこともあります。例えば変な癖のあるプレイヤーとか、弱いプレイヤーが中に入っていると、そいつを狙い撃ちにしないといけないわけです。このように、ゲームが複雑になることによって、考えないといけないことは増えていきますね。

もう1つの研究テーマである自然言語処理の方は、どのような研究があるのですか。

基本的な研究としては、文を解析するための様々なアルゴリズムや機械学習の手法などを考えるというのが1つですね。具体的には、文のそれぞれの単語がどの品詞であるか、文の構造がどうなっているか、どの単語がどの単語にかかっているかとか、そういうのを正確に精度よく解析しようとしています。2つ目は、その応用として機械翻訳、あるいは添削してくれるとか、そういう実際に役に立つアプリケーションの開発ですかね。3つ目としては、言葉の意味をコンピュータに理解させるにはどうしたらいいかという研究です。理解といっても、本当に人間のような理解は当然できないわけですが、そうはいっても表面に書いてある単語の並びだけでなくて、そこから分からないことでもある程度推論して判断してくれるという、そういうことをやり始めています。

基礎的な部分である文の構造の解析に関しても、まだ進歩の余地というのはあるものなのでしょうか。

大分成熟はしていますが、そうはいってもまだまだ結構間違うんですよ。品詞くらいだと、今97パーセントくらいの精度が出ていますが、例えば係り受けだと92、3パーセントとかなんです。一見高そうに聞こえますが、要は十何個に1回間違えるわけですね。そうなると1文に1個くらいは間違っているわけで、まあある意味でボロボロなんですよ。構文解析ですらそうで、例えばもうちょっと難しい照応解析、つまりこのitが何を指しているかを見つけるとかはもっともっとボロボロで、全然満足できるレベルには達していないですね。まだまだやることは山積みなんです。

先生は大学院を卒業された後他の大学等に行かれて、2011年に東大に戻られたとのことですが、日本の中でも東大の研究環境は充実しているのでしょうか。

ソフトウェアの研究は、極端にいえばどこでもできます。しかし東大の場合は、頑張って勉強している人が周りに自然に多くなります。先輩が研究室に行ってバリバリ頑張っていて、国際会議に出たりガンガン論文を書いたりしているとか、そういうのが相対的に多いですね。若い学生が一番影響を受けるのは教員よりも研究室の先輩だったり、同学年の友達だったりします。そういう意味で、研究環境として良いことが多いというのは確かだと思います。

最後に、学生に対してメッセージをお願いします。

うちの研究室はさっき言ったような、自然言語処理とか、ゲームAIとかをやりたい人であれば、ぜひ来てくださいという感じですね。好きなことをやれ、というのは皆さんおっしゃると思います。好きなことというか、興味があることをやるといいよ、というのはもちろんその通りなのですが、そうはいっても時間は有限ですからね。だから好きなことをやりつつも、戦略的に一石二鳥、三鳥を狙うような感じで頑張るといいんじゃないかと思います。

コンピュータ将棋なんかも、あれをやったことによってプログラミングのスキルも上がるし、アルゴリズムも色々分かるようになるし、機械学習もわかるし、一石三鳥みたいなところがありますよね。自分が将棋が好きであれば楽しむこともできるし。だから遊びにもなるし勉強にもなるし、僕らのときは市販化されて仕事にもなったし、そういう意味では一石三鳥だった_わけです。そういうことは色々あると思うし、限られた時間なので、うまくそういうのを見つけて頑張るといいと思います。

ありがとうございました。

プロフィール

鶴岡慶雅先生

鶴岡 慶雅 (つるおか・よしまさ)

東京大学工学部電気工学科卒業。東京大学大学院工学系研究科電子工学専攻博士課程修了、博士(工学)。科学技術振興事業団(現 科学技術振興機構)研究員、マンチェスター大学 Research Associate、北陸先端科学技術大学院大学 准教授を経て、2011年から東京大学大学院工学系研究科 電気系工学専攻 准教授。