AlphaGo の論文を読んで (MIJS 分科会資料 2016/11/08)

12
AlphaGo の論文を読んで 株式会社クエステトラ 畠中晃弘

Transcript of AlphaGo の論文を読んで (MIJS 分科会資料 2016/11/08)

Page 1: AlphaGo の論文を読んで (MIJS 分科会資料 2016/11/08)

AlphaGo の論文を読んで株式会社クエステトラ

畠中晃弘

Page 2: AlphaGo の論文を読んで (MIJS 分科会資料 2016/11/08)

AlphaGo vs イ・セドル AlphaGoは Google DeepMind によって開発されたコンピュータ囲碁プログラム

https://deepmind.com/alpha-go

イ・セドル(李世ドル)

世界最強の棋士の1人

世界で1桁順位ぐらい

日本の井山(囲碁七冠)より、ちょっと上ぐらい

2016年3月に対局しAlpha GO の 4 勝 1敗だった

で、Alpha GO はどんなプログラムだったのか

Page 3: AlphaGo の論文を読んで (MIJS 分科会資料 2016/11/08)

そもそも囲碁 はどうして難しいか コンピュータがすべての手を最後まで先読み(探索)することができたら、人間は勝てないただ、現在の技術では、全探索できない

探索すべき、局面の推定数(ちなみに1テラは、10^12)

オセロ 10^28

チェス 10^50

将棋 10^71

囲碁(9路盤) 10^38

囲碁(19路盤) 10^171

全探索せずに先読みするためには、探索を途中で打ち切る必要

打ち切るためには、「その局面が良いのか、悪いのか」「どの程度良いのか、悪いのか」評価(評価関数)が必要

囲碁は、オセロ・チェス・将棋と異なり、評価関数がうまくできない

感覚的な部分が多く、論理的に説明できないことが多いらしい

囲碁は2重に難しい

2015年時点で、アマチュア有段レベルでしかなかった

Page 4: AlphaGo の論文を読んで (MIJS 分科会資料 2016/11/08)

ニューラルネットワーク Alpha GO は、ニューラルネットワークを用いている

人間の脳は、ニューロンが多数、多層的につながりあってできている

ニューロンを数学的にモデル化脳と同じように多数つなげたものが「ニューラルネットワーク」

つまりニューラルネットワークとは、「人間の脳」をコンピュータ上に再現したもの

まさしく AI (人工知能)

人間のマネができるように、テストデータで教育し、賢くなったら実利用する

もとが良くても、教育を間違えると、ロクなものにならない。人間と同じ。

Page 5: AlphaGo の論文を読んで (MIJS 分科会資料 2016/11/08)

AlphaGO のニューラルネットワーク AlphaGO では、3つのニューラルネットワークを育てている

最初は、過去のプロ同士の対局データを元に学習

各局面でどういう手を打つか、確率を計算できるニューラルネットワークを育成

いわば、トッププロを「まねる」段階

このネットワークを、以降、”SL Policy Network” と呼ぶ

3000万の局面データで学習し、テストでは次の手を 57% 予測できるようになった

Page 6: AlphaGo の論文を読んで (MIJS 分科会資料 2016/11/08)

強化学習 Reinforcement Learning 強化学習を行い、2つ目のニューラルネットワークを育成

強化学習をニューラルネットワークに適応したことが、Google DeepMind の大きな成果

強化学習とは、

「エージェントが、現在の状態を観測し、取るべき行動を決定する問題」

を扱う機械学習

「飼い犬のしつけ」「動物ショーのための訓練」は、解りやすい例

ニューラルネットワークは、基本、教師あり学習。何が違うか。

「目標」が与えられるだけで、知識(「正解」のテストデータ)が与えられない

スポーツで言えば、コーチにレッスンを受けてまねるのが教師あり学習で、我流でひたすら頑張るのが強化学習

テストデータが要らないメリットがあるが、学習に時間がかかるし、うまくいかない可能性も高いただ飛躍する、人間を大きく超える可能性も秘めている

Google DeepMind の PingPonghttps://deepmind.com/blog/deep-reinforcement-learning/

Page 7: AlphaGo の論文を読んで (MIJS 分科会資料 2016/11/08)

ニューラルネットワークの限界 “SL Policy Network” は「プロをまねる」ニューラルネットワーク

“SL Policy Network” 同士を対局させ、ただ「勝つ」ことを目的に強化学習を実施

最初は「マネ」。次は「我流」。ニューラルネットワークはとても人間くさい。

このネットワークを、以降、”RL Policy Network” と呼ぶ

アマチュア2段相当のプログラムに対して、85%勝てるようにはなった

他の囲碁プログラムと同レベルになったが、トッププロに勝てるとは言えない

想像だが、Google DeepMind はニューラルネットワークだけで勝つことが、本当の望みだと思う

なぜニューラルネットワークで、トッププロに勝てないのか(勝手な考察)

モデルによって決まる限界があるのだろう

アヒルをどれだけ頑張って育てても、ワシにはならない

モデルや教育アルゴリズムの更なる進化が必要なのだと思う

Page 8: AlphaGo の論文を読んで (MIJS 分科会資料 2016/11/08)

プレイアウト (rollout) AlphaGOは、これまでの囲碁アルゴリズム研究に、ニューラルネットワークを応用したもの

「モンテカルロ木探索」は、それまでの囲碁プログラムを劇的に進化させた探索アルゴリズム

2008年に登場

トッププロではないが、プロに初めて1勝することができた(トータルでは敗北)

局面評価に、「プレイアウト」を導入

囲碁は、オセロ・チェス・将棋と異なり、評価関数が難しい

オープンソースの Gnu GO の評価関数は、職人芸と呼べるものであったらしいそれでもやっと、アマチュア初段に至っているかどうか

プレイアウトとは、(禁じ手を除いて)お互いランダムに終局まで打つこと

囲碁やオセロは、チェス・将棋と異なり、ランダムに打っても終局するという特徴がある

次の候補局面のそれぞれから、プレイアウトを実施

プレイアウトを複数行い、勝率をその局面の評価値とする

プレイアウト回数が多いほど、正確な評価値となる

終局が近いほど、正確な評価値となる

評価値(勝率)が最も高くなる手を選ぶ

Page 9: AlphaGo の論文を読んで (MIJS 分科会資料 2016/11/08)

モンテカルロ木探索 (Monte Calro Tree Search)

単純にプレイアウトを導入しただけでは、1つの先読みでしかない

相手もランダムに打つことを想定しているため、相手にとって「明らかに良い手が1つで、他は全部悪くなる」局面がある場合、その方向に進んでしまう

改良したものが、「モンテカルロ木探索」

有望な(勝率が高い)候補局面ほど、プレイアウト回数を増やす

何度かプレイアウトを行えば、勝率に差が出てくる

勝率が高いものほど、よりプレイアウトが行われるように

ある局面でのプレイアウト回数が一定値を超えた場合、その局面だけ更に先読みするように

相手の番手の場合は、勝率が低い候補ほど、プレイアウト回数を増やす

トータルで見ると、有望な方向に先読みが進んでいく

この「モンテカルロ木探索」をベースに、2008 年以降、研究が進んでいた

優先してプレイアウトを行う局面の選択に、囲碁の知識を入れる

プレイアウトで、完全にランダムに打つのではなく、人間がパターンを用意する

ニューラルネットワークに打たせることも考えられるが、AlphaGOはそうではない

Page 10: AlphaGo の論文を読んで (MIJS 分科会資料 2016/11/08)

AlphaGOの3つのニューラルネットワーク

AlphaGOはモンテカルロ木探索に、3つのニューラルネットワークを応用したアルゴリズム

最後の3つ目として、局面を評価するだけの、ニューラルネットワークを作成

“SL Policy Network” “RL Policy Network” は、次の候補手を予測(推薦)するもの

「囲碁は、オセロ・チェス・将棋と異なり、評価関数が難しい」という問題に、ニューラルネットワークで取り組んだ

学習データは2種類

過去のプロ同士の対局データ (SL Policy Network と同じ)

“RL Policy Network” 同士を対局させ、それによってできた対局データ

局面の履歴と最終結果(勝利/敗北)から、各局面からの勝率を予測するニューラルネットワークを作成

全部で3つのニューラルネットワークができた

1. SL Policy Network (プロの手を予測するニューラルネットワーク)

2. RL Policy Network (SL Policy Network を強化学習で強くしたもの)

3. Value Network (局面からの勝率を予測するニューラルネットワーク)

Page 11: AlphaGo の論文を読んで (MIJS 分科会資料 2016/11/08)

AlphaGO のモンテカルロ木探索 全部で3つのニューラルネットワーク

1. SL Policy Network (プロの手を予測するニューラルネットワーク)

2. RL Policy Network (SL Policy Network を強化学習で強くしたもの)

3. Value Network (局面からの勝率を予測するニューラルネットワーク)

最初は “SL Policy Network”で、プロが打ちそうな手を優先して、各局面の評価を実施

徐々に、勝利確率の高い局面を優先するように切り替わる

“RL Policy Network” でない理由は、“SL Policy Network” を採用した方が強かったから

各局面の評価において、 “Value Network” の結果とプレイアウトの結果の平均を採用

“Value Network” だけでない理由は、2つの平均の方が強かったから

プレイアウトは「実際に試している」という点で、“Value Network”より優れているところがある?

1マシン版 (CPU 48 GPU 8) に加えて、分散版 (CPU 1202 GPU 176) を作成

1マシン版より分散版の方が、探索範囲が広く強い

Page 12: AlphaGo の論文を読んで (MIJS 分科会資料 2016/11/08)

まとめと参考文献 AlphaGOは、これまでの囲碁アルゴリズムの研究に、ニューラルネットワークを応用したもの

大枠は、モンテカルロ木探索

3つのニューラルネットワークを作成し、1 と 3 の2つを利用

1. プロの次の手を予測するニューラルネットワーク

2. 1 のニューラルネットワークを強化学習したもの

3. 局面の勝利確率を計算するニューラルネットワーク

確かに「コンピュータが人間に勝利した」と言えるが、「AI が 人間に勝利した」とまでは言えない(と思う)

Mastering the game of Go with deep neural networks and tree searchNature 529, 484-489, 28 Jan 2016

モンテカルロ木探索-コンピュータ囲碁に革命を起こした新手法情報処理、vol.49, No.6, 2008

ディープラーニングを用いたコンピュータ囲碁~ Alpha Go の技術と展望~情報処理, vol.57, No.4, 2016