1. AIの ちからは、先を よむ ことだけ?
1. 強さは「先読み」と「見立て」の2つでできている
1. 将棋・囲碁AIの探索と評価 ── 2つの仕事
しょうぎや いごでは、じぶんが 1手 うって、あいてが 1手 うって、と 先の ことを かんがえます。これを「先読み」と いいます。
でも、先を よんだ あとで、「この 形は どっちが よさそうか」と きめる 力も いります。これを「見立て」と 名づけます。
たとえば、かくれんぼで、いそがしい 子は ぜんぶの へやを あけて さがします。もう 1人は、「ここに いそうだ」と 見当を つけて から あけます。先読みが へやを あける こと、見立てが 見当を つける ことです。ただし ほんとうの AIは、へやではなく ばんの 上の 形を しらべて います。
この 2つを、だれが どうやって 作ったのかを、これから 見て いきます。
将棋や囲碁のAIの仕事は、大きく2つに分けて考えられます。1つは、自分が指し、相手が指し返し、とその先を読んでいく「先読み」です。もう1つは、読んだ先の局面が、どちらにどれくらい有利かを点数にする「見立て」です。専門的には、前者を探索、後者を評価と呼びます。この2つの分け方は、この記事が話を整理するために使う見方で、出典の用語の定義そのものではありません。
たとえば、かくれんぼで、全部の部屋を順にのぞく子と、「ここにいそうだ」と見当をつけてからのぞく子がいるとします。前者が先読みだけに頼るやり方、後者が見立てを使うやり方です。ただし、本物のAIがのぞくのは部屋ではなく、盤面の形です。
強さは、先読みの量で決まったのか、見立ての質で決まったのか。時代ごとに、重心が動いていきました。まず、先読みの量で勝った例から始めます。
ゲームAIの仕事は、大きく2つに整理できる。自分と相手の手を交互に先まで読む「探索」と、読んだ先の局面の有利不利を数値にする「評価」だ。この2分類は、話を整理するための本稿の見方であり、出典にある用語の定義そのものではない。
強さの源泉が探索の量にあるのか、評価の質にあるのか。以下で見るように、時代によって重心が移っている。力ずくの探索で勝った例(Deep Blue、1997)、棋譜から評価関数を調整した例(Bonanza、2006)、探索を絞る方策と評価の両方を学んだ例(AlphaGo、2016)、人の棋譜を使わなかった例(AlphaGo Zero、2017)の順に追う。
2. さいしょは、ものすごい スピードで 先を よんだ
2. 1997年、チェスの世界王者に勝ったDeep Blue
2. Deep Blue(1997)── 力ずくの探索とアルファ・ベータ法
1997ねんに、チェスの せかいの 王者、カスパロフさんに、コンピュータの「ディープ・ブルー」が かちました。6きょくの うち、3.5たい 2.5でした[1]。
ディープ・ブルーは、1びょうに 2おくの 形を しらべる ことが できたと いわれます。32この 部品を ならべて、いっしょに はたらかせて いました[1]。
ぜんぶを しらべたら、じかんが たりません。そこで、「これは わるい 手だ」と わかった 道は、そこで やめる やり方が 使われました。かくれんぼで、あいて いない へやは のぞかないのと おなじです[2]。
1997年、IBMのコンピュータ「Deep Blue」が、チェスの世界王者ガルリ・カスパロフと6局を戦い、3.5対2.5で勝ちました[1]。
強さの中心は、計算の速さでした。Deep Blueは1秒に約2億の局面を評価でき、32個のプロセッサを並列に使ったと説明されています[1]。
ただ、全部の枝を読んでいては間に合いません。「アルファ・ベータ法」という、この先は読んでも結果が変わらないと分かった枝を読まずに済ませる方法が、探索の基本にあったといわれます[2]。Chess Programming Wikiに基づく説明なので、細部は断定しません。
ここでの見立ては、人が作ったものでした。次の章の主役は、その見立てを、AIが自分で調整し始めた将棋ソフトです。
1997年、IBMのDeep Blueは、チェス世界王者G.カスパロフと6局を戦って3.5対2.5で勝った。1秒に約2億局面を評価でき、32基のプロセッサを並列に使う力ずくの計算力に支えられていた[1]。
探索の基本は、アルファ・ベータ法だった。不要な枝を読まずに済ませる枝刈りつきの先読みで、探索のむだを減らす手法だ[2]。ただし、この点はコミュニティ運営の解説(Chess Programming Wiki)による説明で、一次資料では確かめていない。
探索は速さと枝刈りで攻めた。評価関数は、人が設計し、改良を重ねたものだった。将棋では、その評価関数を棋譜から自動で調整する特徴をもつソフトが2006年に現れる。
3. 「見立て」を、おてほんから まなんだ ボナンザ
3. 2006年、棋譜から見立てを学んだBonanza
3. Bonanza(2006)── 棋譜から評価関数を調整する
2006ねん、コンピュータ将棋の せかいの たいかいで、ボナンザと いう ソフトが、はじめて 出て、いきなり ゆうしょう しました。つくった 人は、ほきくにひとさんです[3]。
おどろくのは、ふつうの ノートパソコンで うごかした ことです。あつく ならないよう、USBの ちいさな ファンで ひやしたと つたえられて います[3]。
ボナンザは、プロの 人たちが 指した 手を たくさん 見て、「こう 指す 人が 多い」に あうように、見立ての 数字を じぶんで なおして いきました。人が ひとつずつ 数字を きめる のでは ありません[4]。
ほきさんは、この やり方を 公開しました。その あと、たくさんの つよい ソフトが まねを しました[3]。
2006年5月、第16回世界コンピュータ将棋選手権で、保木邦仁さんが作った「Bonanza」が、初出場で優勝しました。普通のノートパソコンに、USBファンをつけて冷やしながら動かしたと伝えられています[3]。
Bonanzaの新しさは、見立てを人が決めなかった点にあります。局面の形ごとに有利不利の重みを決める「評価関数」の数字を、プロ棋士の棋譜約3万局と、オンライン対局サイト「将棋倶楽部24」の棋譜約3万局から、自動で調整しました。指し手が棋譜の手と一致するように、探索の結果を合わせていく方式です。調整した数字は約1万個で、これは保木さん本人の資料(2008年)にある値です。ソフトの版によって数は変わります[4]。
保木さんは、2006年11月にアルゴリズムを公開し、ソースコードも公開しました。棋譜から評価を機械学習する方法は「ボナンザ・メソッド」と呼ばれ、以後、多くの強い将棋ソフトが取り入れました[3]。
2006年5月の第16回世界コンピュータ将棋選手権で、保木邦仁(ほきくにひと)作の「Bonanza」(ボナンザ)が初出場優勝した。市販のノートパソコン(VAIO)にUSBファンを付けて冷やしながら動かしたとされる[3]。
要点は評価関数の作り方だ。保木の講演資料によれば、プロ棋士の棋譜3万局と将棋倶楽部24の棋譜3万局(主に入玉局)を使い、静的評価関数のパラメータ約1万個を調整している。手法は、探索して選ばれる手が棋譜の手と一致するよう最適化するものだ[4]。約1万個は資料の時点(2008年)の値で、版によって変わる。
アルゴリズムは2006年11月に公開され、ソースコードも公開された。この方法は「ボナンザ・メソッド」と呼ばれ、多くのソフトに採り入れられた[3]。ソース全体の公開年には資料により違いがあるため、年は挙げない。
4. 人と ソフトの しょうぶ「でんおうせん」
4. 電王戦 ── プロ棋士に勝ち、負け、名人に勝つまで
4. 電王戦(2013〜2017)── 現役プロ棋士との対戦の推移
「でんおうせん」は、将棋の プロと ソフトが たたかう しょうぶです。2013ねんの たいかいでは、5たい 5で たたかい、ソフトが 3かち、プロが 1かち、1ひきわけでした[5]。
この とき、ポナンザと いう ソフトが、げんえきの プロに、きまりどおりの しょうぶで かった はじめての れいと されて います[5]。
ところが、2015ねんの たいかいでは、プロの がわが はじめて かちこしました。3かち 2まけです[5]。ソフトが かちつづけたわけでは ありません。
2017ねん、ポナンザは、そのころの 名人に 2かい つづけて かちました[6]。この たいせんで、6ねん つづいた でんおうせんは おわりました[6]。
「電王戦」は、将棋のプロ棋士とコンピュータ将棋ソフトが対戦する企画です。2013年の第2回は5対5の団体戦で、プロ棋士側の1勝3敗1引き分けでした。「Ponanza」が佐藤慎一四段に141手で勝ち、正式ルールの現役プロ棋士との対局でコンピュータが初めて勝った例とされています[5]。
ところが2015年の電王戦FINALでは、プロ棋士側が初めて勝ち越し、3勝2敗でした[5]。ソフトが一方的に強くなり続けたわけではなく、行ったり来たりしています。
2017年の第2期電王戦では、Ponanzaが当時の名人だった佐藤天彦さんに2連勝しました。第2局は5月20日に姫路城で行われ、94手でPonanzaが勝っています。2012年から6年続いた電王戦は、この対局で終わりました[6]。
2013年4月の第2回将棋電王戦(5対5)は、プロ棋士側の1勝3敗1引き分けだった。Ponanzaが佐藤慎一四段に141手で勝ち、公式ルールの現役プロ棋士との対局でコンピュータが初めて勝った、とされる[5]。「初」の範囲は、公式ルール・現役プロという条件つきだ。
2015年の電王戦FINALでは、プロ棋士側が初めて勝ち越し、3勝2敗だった[5]。結果は一方向に進んだのではない。
2017年の第2期電王戦では、Ponanzaが佐藤天彦名人(当時、叡王も兼ねる。呼称は出典で揺れる)に2連勝した。第2局は5月20日、姫路城で94手。電王戦は2012年から続いてきたが、この対局をもって終了した[6]。
5. いごは 先が ふえすぎて、むずかしかった
5. 囲碁の壁を越えたAlphaGo(2015〜2016)
5. AlphaGo(2015〜2016)── 方策・価値ネットワークと探索の組み合わせ
囲碁は、「見立て」が とくに むずかしい ゲームと されて きました。かんがえる 手が ふえすぎて、どちらが よいか きめにくいからです[7]。
そこで 作られた AIが「アルファご」です。2つの しくみを 使いました。1つは「どの 手を 見るか」を えらぶ しくみ。もう 1つは「いま、どっちが よいか」を 見立てる しくみです[7]。
この 2つを、人の 対局から まなび、つぎに じぶんどうしで たくさん 対局して、つよく しました[7]。
2015ねん10がつ、ヨーロッパの 王者、ファン・フイさんに 5たい 0で かちました[8]。2016ねん3がつ、ソウルで イ・セドルさんと 5ばん しょうぶを して、4かち 1まけでした[9]。
囲碁は、AIにとって古典的なゲームの中で最難関とされてきました。読む手の選択肢が非常に多く、局面の有利不利の評価も難しいからです[7]。
2016年1月に『Nature』で発表されたAlphaGoは、2つのニューラルネットワークを使いました。手を選ぶ「方策ネットワーク」と、盤面を評価する「価値ネットワーク」です。どこを読むかと、今どちらが有利かを、それぞれが受け持つ形で、先読み(木探索)と組み合わせています。訓練は、人間の棋士の碁からの教師あり学習と、自己対戦の強化学習の組み合わせで行われました[7]。
2015年10月、欧州王者のファン・フイさんに5対0で勝ち、ハンデなしの19路盤でプロに勝った初のプログラムとされています。他の囲碁プログラムには99.8%の勝率だったと報告されています。この数字は、人間相手ではなくプログラム相手のものです[8]。
2016年3月9日〜15日、ソウルで李世ドル九段との五番勝負が行われ、AlphaGoの4勝1敗でした[9]。
AlphaGoの論文(Silver et al., Nature, 2016年1月28日)は、囲碁を、探索空間が膨大で局面評価が難しく、AIにとって古典ゲームで最難関とされてきたと位置づけている[7]。
方式は、局面を評価する「価値ネットワーク」と、手を選ぶ「方策ネットワーク」(価値=かちねっとわーく、方策=ほうさくねっとわーく)を、人間の棋士の碁からの教師あり学習と、自己対戦の強化学習で訓練し、木探索と組み合わせるものだ[7]。
2015年10月に欧州王者ファン・フイに5対0で勝ち、ハンデなしの19路盤でプロに勝った初のプログラムとされる。他の囲碁プログラムに対する勝率99.8%は、人間相手ではない点に注意したい[8]。
2016年3月9〜15日のソウルでの五番勝負は、AlphaGoの4勝1敗だった[9]。
6. アルファごせんで 生まれた「1まんぶんの 1」の 手が、2つ
6. AlphaGo戦で生まれた「1万分の1」の手 ── 第2局37手目と第4局78手目
6. 第2局37手目・第4局78手目 ── 「1万分の1」の意味
第2きょくで、アルファごが 37ばん目に うった 手は、人の プロが あまり うたない 手と いわれました。DeepMindと いう 会社は、人が この 手を うつ かくりつは 1まんぶんの 1と せつめいして います[8]。
第4きょくで、イ・セドルさんが 78ばん目に うった 手も、おなじ 1まんぶんの 1と されました。「かみの 一手」と よばれて います。この きょくで アルファごは まけを みとめ、5きょくの うち、人が かったのは この 1きょくだけでした[8]。
「1まんぶんの 1」は、アルファごが 見つもった かずで、人が じっさいに はかった ものでは ありません[8]。
五番勝負の第2局で、AlphaGoが打った37手目は、人間の棋士が打たない手と評されました。DeepMindは、人が打つ確率は1万分の1だったと説明しています[8]。
第4局では、今度は李世ドル九段が打った78手目が、同じく1万分の1とされました。この手は「神の一手」と呼ばれ、AlphaGoは投了しました。五番勝負で人間側が勝った、ただ1局です[8]。
「1万分の1」は、AlphaGoの見積もりの上での確率で、人間側の実測ではありません。それでも、人が普通は選ばない手をAIが選び、人が同じように珍しい手で返した場面として、いまも語られています。勝負の途中で、どちらもふだんの型から外れたわけです。
7. 人の おてほんが なくても、つよく なった
7. 人の棋譜を1局も使わないAlphaGo Zero(2017)
7. AlphaGo Zero(2017)── 自己対戦のみ、人間のデータなし
2017ねん、あたらしい「アルファごゼロ」が 出ました。この AIは、人の 対局を 1つも 見ません。囲碁の ルールだけを おしえて もらい、じぶんどうしで 対局して まなびました[10]。
3日くらい まなんで、490まんきょくを 対局しました。そして、イ・セドルさんに かった 前の アルファごに、100たい 0で かちました[10]。
人の おてほんを つかわない りゆうは、おてほんを あつめるのは おかねが かかったり、あてに ならなかったり、そもそも ない ことが あるから、と 書かれて います。また、おてほんが 天じょうに なる おそれも あると されました[10]。
ただし、これは 「ルールが はっきり している ゲーム」の はなしです。なんでも できる、と いう ことでは ありません。
2017年に『Nature』で発表されたAlphaGo Zeroは、ルール以外の人間のデータや知識を使わず、自己対戦だけの強化学習で学びました。約3日の訓練で490万局を自己対戦し、李世ドルに勝った版のAlphaGoに100対0で勝ちました[10]。
論文は、人間の棋譜を教師データにするやり方について、高価だったり、信頼できなかったり、そもそも手に入らなかったりする場合があり、性能に天井をつくかもしれないと述べています。約40日訓練した版は、さらに強い「Master」と100局戦って89勝11敗でした[10]。
設計も簡単になりました。人が作った特徴量や、別々の2つのネットワーク、速い乱数対局での評価をやめ、盤面の石だけを入力にして、1つのネットワークにまとめています[11]。
ここまでの話は、ルールが決まっていて、自己対戦で勝敗がはっきり分かるゲームでの成果です。ほかの分野にそのまま当てはまるとは言えません。
AlphaGo Zero(Nature, 2017)は、ルール以外の人間のデータ・知識を使わず、強化学習のみ・自己対戦から学び、李世ドルに勝った版(AlphaGo Lee)に100対0で勝った。約3日の訓練で490万局(4.9 million games)の自己対戦を行った[10]。
論文は、専門家のデータは高価・信頼性が低い・入手できないことが多く、性能に天井を課しうると述べる。約40日訓練した版は、Masterに100局で89勝11敗だった。100対0の相手はAlphaGo Leeであり、Masterではない点に注意したい[10]。
構成の簡素化も進んだ。手作りの特徴量、別々の2つのネットワーク、ロールアウト(速い乱数対局での評価)をやめ、盤面の石だけを入力にして1つのネットワークにまとめている[11]。
ただし、対象はルールが完全に決まり、勝敗が明確なゲームだ。他分野への一般化は、この論文だけでは判断できない。
8. ○×ゲームで、先を よんで みよう
8. ○×ゲームで、先読みの数を数えてみる
8. ○×ゲームで探索を数え、原典を読む
かみに、○×ゲームの ますを かきます。ヨコ 3、タテ 3の ますです。
さいしょの 1手は、9つの ますの どこでも うてます。9とおりです。つぎに あいてが うつ 場所は、のこりの 8つ。ここまでの ならびは、9かける 8で 72とおりです。
もう 1手 さきを よむと、9かける 8かける 7で 504とおりです。かみに ぜんぶ かこうと すると、たいへんです。
そこで、ぜんぶは かかずに、「まんなかを とると よさそう」など、見立てを 1つ きめて、よさそうな ところだけ よんで みましょう。かぞくや ともだちと、やり方の ちがいを くらべても おもしろいです。
紙に、3×3の○×ゲームの盤を書いてみてください。最初の1手は9通りです。相手の返しは残りの8通りで、2手目まででは9×8=72通りになります。3手目まで読むと9×8×7=504通りです。
最後まで打ち切る並び方の上限は、9×8×7×6×5×4×3×2×1=362,880通りです(途中で勝負がつく分は数えていない上限です)。人が紙に全部書くのは、現実的ではありません。
そこで、「真ん中を取ると有利そうだ」のような自分なりの見立てを1つ決めて、有利そうな枝だけを読んでみてください。全部を読む場合と比べて、どこまで手間が減るでしょうか。この「読む場所を絞る」と「見立てを持つ」が、この記事の2つの軸でした。
原典を読むなら、保木邦仁さんの講演資料が日本語で公開されています[4]。
3×3の○×ゲームで、探索の数を数えてみる。最初の1手は9通り、2手目まででは9×8=72通り、3手目まででは9×8×7=504通りだ。最後まで打ち切る並びの上限は9!=362,880通りになる(途中で勝負がつく分を数えない上限)。
そのうえで、「中央を取ると有利」など自分の評価基準を1つ決め、有利な枝だけを読んで、読む数がどれだけ減るかを比べるとよい。探索の絞り込みと評価の役割が、手元で分かる。
原典に当たるなら、まず保木邦仁の講演資料(日本語)[4]を読みたい。棋譜から評価関数を調整する話が、日本語で読める。
しらべた もとの じょうほう
参考にした情報源
参考にした情報源と、その使い方
出典について:IBMの公式ページ、Chess Programming Wiki、ウィキペディア、保木邦仁さんの講演資料、ドワンゴの発表、Silverらの論文2本、DeepMindの公式ページを使った。○×ゲームの数は、筆者が計算した。
- IBM「Deep Blue」。 https://www.ibm.com/history/deep-blue (1997年の対局の結果と、1秒あたりの評価局面数について)
- Chess Programming Wiki「Deep Blue」。 https://chessprogramming.org/Deep_Blue (アルファ・ベータ法の説明について)
- 「Bonanza」日本語版ウィキペディア。 https://ja.wikipedia.org/wiki/Bonanza (2006年の優勝、ノートパソコンでの動作、公開について)
- 保木邦仁「ゲーム木探索の最適制御」情報処理学会フォーラム資料(2008年)。 https://www.ipsj.or.jp/10jigyo/forum/software-j2008/hoki-print.pdf (使った棋譜の数とパラメータ数について)
- 「電王戦」日本語版ウィキペディア。 https://ja.wikipedia.org/wiki/電王戦 (2013年・2015年の結果について)
- ドワンゴ「第2期電王戦」閉幕のお知らせ(2017年)。 https://dwango.co.jp/news/1890883095203200074/ (2017年の対局の結果と、電王戦の終了について)
- Silver et al., "Mastering the game of Go with deep neural networks and tree search," Nature, 2016. https://research.google/pubs/mastering-the-game-of-go-with-deep-neural-networks-and-tree-search/ (AlphaGoの仕組みと、囲碁の難しさについて)
- DeepMind「AlphaGo」。 https://deepmind.google/research/breakthroughs/alphago/ (ファン・フイ戦の結果、37手目・78手目の説明について)
- 「AlphaGo対李世ドル」日本語版ウィキペディア。 https://ja.wikipedia.org/wiki/AlphaGo対李世ドル (2016年3月の五番勝負の日程と結果について)
- Silver et al., "Mastering the game of Go without human knowledge," Nature, 2017. https://discovery.ucl.ac.uk/10045895/1/agz_unformatted_nature.pdf (AlphaGo Zeroの訓練と、対戦成績について)
- DeepMind「AlphaGo Zero: Starting from scratch」。 https://deepmind.google/blog/alphago-zero-starting-from-scratch/ (AlphaGo Zeroの構成の簡素化について)
なおした ところ
更新履歴
更新履歴(改版の記録)
- 初版を公開。
このサイトでは、公開した記事の本文は原則として書き直しません。誤りが見つかったときや、内容が古くなったときだけ手を入れ、その理由をこの欄に残します。