AlphaGo Zeroが自己学習のみで過去最強になったというニュースが出たのでその元論文を読み、要約をしました
まず感想を述べると、過去数千年にわたって蓄積してきた知識をAIが数時間で発見することに対する気持ち良さがありました。人間などクソ食らえと思っておりますので、こう言うニュースはとてもスッキリします。そして人間の発見していない打ち筋の発見にも感動しました。これこそがAIの真髄だと信じています。人間が見えていないものをAIが見つける、僕もいつかそんなことをしてみたいと思いながら生きています。
あともう一つ重要だと思ったのは、とてもネットワーク構造および学習過程が簡素化されたことです。マシンパワーも過去に比べて非常に少なく済み、個人でもすぐに再現実験ができそうなくらいです。AIが強くなることと、構造および学習のsimplerが同時に達成できていることが本質的だと思います


一応、下記内容について弁明しておくと、ところどころで意訳をしたり重要でないと判断した内容をスキップしています。また、機械学習および強化学習についての基本的な知識があるものとして書かれています。さらに、間違いなども多々あると思います。読む場合は以上を了解した上でお読みください。



[元論文]
Mastering the game of Go without human knowledge
https://www.nature.com/nature/journal/v550/n7676/pdf/nature24270.pdf



[はじめに]

人工知能の多くの進歩は人間の判断を真似るように学習させることで行われてきた。しかしそれをさせるためには莫大で高価なデータが必要だった。しかも、たとえそれが手に入ったとしても、それがそのシステムの上限を決めてしまう。そこで強化学習を用いることで人間の限界を超える人工知能を作ることにした。

 

囲碁の世界ではAlphaGoが一番最初に人間を超える性能を出した。2015年10月に欧州チャンピオンを破ったAlphaGoは2つのディープラーニングネットワークを用意した。一つは「どこに石を置くか」を決めるポリシーネットワーク(出力は確率)、もう一つは「盤面の評価値」を決めるバリューネットワークである。ポリシーネットワークは最初に人間のプロの打ち手を正しく予測するように学習し、最後に強化学習によって精錬させている。バリューネットワークは現在の盤面を見てその勝率を当てるように学習させている。学習が完了すれば、この2つのネットワークを使って、モンテカルロ木探索で先読みをすることができる。つまりポリシーネットワークを使い高い確率の打ち手だけを考慮し、バリューネットワークで一番勝率が高いものを選択する

 

alphaGo Zeroは今までのAlphaGoとはいくつかの重要な点で異なる。最も重要なのは、人間の行動を真似るのではなく、完全に自己学習の結果だけで学習している点である。もう一つ異なるのはボード上にある黒と白の石のみ(盤面の生のデータ)をインプットにしていること。三つ目がポリシーネットワークとバリューネットワークを一つのネットワークにまとめてしまったこと。そして最後にモンテカルロロールアウトをやらずにもっと単純な木探索になっている。

 

[1 AlphaGo Zero における強化学習]

パラメータθによって特徴付けられるニューラルネットワークfθを用い、ボード情報とその履歴をワンセットにしたテンソルsを入力とする。これを元に「どこに石を置くか」と「現在の盤面の評価値」を出力する。つまりポリシーネットワークとバリューネットワークが1つのネットワークに併せられている。ネットワーク構造は今最も画像認識分野でホットなResNetを用いている。

 

fθを用いてモンテカルロ木探索を実行し、各指し手をプレイする確率πを出力する。なぜfθが「どこに石を置くべきか」を出力するのにあえてモンテカルロ探索をするかと言うと、そちらの方が強い指し手を選択する可能性が高いからだ。要するに、モンテカルロ木探索が強力なポリシーネットワークを強化をするオペレーターになっていると考えることができる。強化学習はモンテカルロ木探索でポリシーを強化し、その勝敗結果z(どっちが勝ったか)をバリューネットワークの強化に用いるということである。fθの出力は、πとzに近づいていくことでパラメータθを調整し、強くなっていく(下記図参照)。

32

 



モンテカルロ木探索はfθを使いながらシミュレーションをしていく。盤面sから打ち手aを打つ確率P(s,a)と訪問回数N(s,a)とQ値Q(s,a)を保存しておく。それぞれのシミュレーションは根ノードから始まり、Q(s,a) + P(s,a)/(1+N(s,a))を最大化する打ち手aを繰り返し打っていき、葉ノードs’に到達したら、その確率と勝敗を生成する。訪問回数N(s,a)があることで特定の打ち手に偏らないようになっている。盤面sで打ち手aを取れば最終局面はs’になると言うことをQ値の更新に使うと言うことになる(下記図参照)。


37

 

このようにモンテカルロ木探索で手を打つごとに学習データが生成される。最初はランダムな重みからスタートし、自己学習で上記の方法でデータを生成する。ネットワークは、「どこに石を置くか」をモンテカルロの確率に近づけ、「盤面の評価値」はその試合の勝敗に近づけることで学習は進んでいく。

具体的には、勝敗をz、ネットワークが出力する盤面の評価値をv、モンテカルロ木探索の出す確率をπ、ネットワークが出力する「どこに石を置くか」の確率をp、パラメータをθとした時に

l = (z – v)^2 – πlogp + c|θ|^2

を最小化する。最後の項は過学習を防ぐためのL2正則化である。

 


[2 実証結果]

AlphaGo Zeroでこの学習を行なった結果、最初はランダムな振る舞いをしていたが人が手を加えることなく3日で学習が完了した。490万回の試合を自己学習し、1回のモンテカルロ木探索では1600回のシミューションを行った。1手を考えるのに0.4秒かかった。学習はスムーズに進み、36時間で過去のAlphaGoの性能を超えた。これは驚くべきことで、過去のAlphaGoは学習に数ヶ月以上かかっている。またAlphaGo Zeroは4つのテンソルプロセッシングユニット(TPU)しか使っておらず、過去のAlphaGoは48個のTPUを使っていたことを考えるととても省力化されている。100試合させたところ、AlphaGo Zeroは過去のAlphaGoに100-0で完勝した
 

強化学習の効果を測るために、人間の真似をする教師あり学習をしたネットワークを作って比較したが、強化学習のネットワークの方が強かった。人間の行動を予測することには長けていないため、人間とは違ったプレイイングを身につけていると考えられる(下図参照)

44



ネットワーク構造とアルゴリズムによる結果への貢献を分離するために4つのネットワークを作った。アルゴリズムとしてはポリシーネットワークとバリューネットワークを1つに統合したパターン(dual)と、2つに分けたパターン(sep)。ネットワーク構造としてはResNet(res)と通常のCNN(conv)。dual-resとsep-resとdual-convとsep-convの4つのネットワークの成績がグラフになっている。ResNetの威力とネットワーク統合の威力が見て取れる(下図参照)

53
 



[3 AlphaGo Zeroが学習した知識]

自己学習を通してAlphaGo Zeroは人間がすでに持っている囲碁に関する知識を学び、それだけでなく今まで知られていなかった定石も見つけている。学習が進むごとによく打つような手が見られ、布石や手筋、寄せなども見つけて行った。「シチョウを知らずに碁を打つな」と言われるほどに有名な手筋は、意外と学習のかなり後半まで見つけられなかった。

 


[4 最終的なAlphaGo Zeroのパフォーマンス]

さらに学習を進め40日間学習をさせた。学習経過が図になっている。AlphaGo Masterと呼ばれる最強のプログラムに89-11で勝利した。Elo Ratingで評価したところ、AlphaGo Zeroは5185点、AlphaGo Masterは4858点、そして過去のAlphaGoは3739点であった。

02

 

[5 結論]

我々の結果は、ルール以外の人間の知識を与えずに純粋な強化学習だけで人間を超えることが可能だと言うことを証明した。さらにたった数時間の学習だけで、人間を真似る学習をするよりも良い結果が得られた。AlphaGo Zeroは過去のバージョンのAlphaGoに大差をつけて勝利した。

 

人類は数千年かけて数百万の試合をして知識を蓄積し、それをパターンとして集め、格言にし、本にして成長してきた。しかしほんの数日でAlphaGo Zeroはそのほとんどの知識を発見し、それだけでなく斬新な戦略まで見つけて、この最も古いゲームに新しい知見を与えたのであった。