Alpha Go Zeroのすごさを機械学習とか知らない人向けに説明してみる

Deep Mind社のAlpha Goという囲碁のAIが人間のプロ棋士を負かした、というニュースは皆さんご存知かと思いますが、実はAlpha Goはそれからさらに進化していて、Alpha Go Zeroになっています。

Alpha Go Zeroの何がすごいかっていうと、

①自分自身との対戦で強くなった(教師とするデータがいらない)

②GPUなどの消費がずっと少なくなった

③以前のAlpha Goが数か月で達成した強さをAlpha Go Zeroは数日で達成

③それでいてAlpha Goよりずっと強い(100-0でAlpha Goに勝利)

 

というところなのです!!

この教師とするデータがいらない、というのはすごいことで、なぜかというとデータを集めるのが大変なんですよね。

碁の棋譜データとかは、もうデータになってるんですが(1000年以上分ぐらいらしい(´ω`))昔に紙に書かれたものを、集めるのも大変だっただろうし、データにするのはさぞかし大変だっただろうし、というわけです。

 

2017年10月19日に学術誌Natureに下記のAlpha Go Zeroの論文が発表されていますので、今これを勉強してます。

Mastering the game of Go withouthuman knowledge

https://www.nature.com/articles/nature24270.epdf?author_access_token=VJXbVjaSHxFoctQQ4p2k4tRgN0jAjWel9jnR3ZoTv0PVW4gB86EEpGqTRDtpIz-2rmo8-KG06gqVobU5NSCFeHILHcVFUeMsbvwS-lxjqQGg98faovwjxeTUgZAUMnRQ

 

自分でも考えをまとめるために、いろいろとここに記述しておきたいと思います。

このブログでは、あまり技術的なことは書かないつもりなんですが、現在弊社の技術的なオウンドメディアはメンテナンス中なので、ここに書きます。

 

さて、私の好きな名言に

『6才児に説明できなければ、理解したとはいえない byアインシュタイン』

というのがありますので、ならってやってみようと思います。

Alpha Go Zeroの理論のすごさをAiとか機械学習とかまったく知らない人に説明したいと思います。

 

私の大好きなマンガ、ドラゴンボールの主人公、孫悟空にたとえてみますね!

———————————————————————————————————————————-

孫悟空は亀仙人とか、カリン様とか、界王様とか、いろんな師匠に教えられたり、ピッコロ、ベジータ、フリーザなどの強敵と戦って強くなるじゃないですか。

しかし、孫悟空のクローンが作れるとしたら、孫悟空は自分自身のクローンとずっと対戦してた方が、いろんな先生に教わるよりも、敵と戦うよりも強かった。ということ発見されたわけですね。

 

ここでミソとしては、ただたんにクローンと対戦しててもダメなのです。

6人ぐらいの孫悟空のクローンが同時にいたとして、2人ずつ3組に分けます。

3組は同時に戦います。うち一組を①とすると、①チームは

「最初は軽いパンチ、次にカメハメ波を出したほうが強い」

とかそういうことをひたすら研究します。研究結果はメモって記録していきます。

もう一つの2組目②は、①の研究結果を使って実践で対決します。

んで、本当に強いのー??ということを研究します。研究結果はメモって記録していきます。

最後の3組目③は、②の結果を使って、本当に試合形式で対決します。

そして、勝ったクローンを残し、負けたほうは消滅する、という手段で最強のクローンを残します。

(③の結果は、①チームにも②チームにもフィードバックされます。)

 

これが同時に繰り返し行われることで、この最強のクローンがどんどん強くなっていく、ということです。

ただ、100万回ぐらい繰り返さないとダメなんですけどね(;^ω^) 「精神と時の部屋」でやればいいんでしょう。

 

悟空が強くなるためには、最初に格闘技の知識すら必要ありません。

———————————————————————————-

 

 

以上はだいぶ概略のイメージです。

伝わったでしょうかー?!( ゜Д゜)

 

しかし、6歳児には説明できてないなw

 

ドラゴンボール好きな人には説明できたかもしれないww

実はこのたとえ話を書きたかったw

 

AIの強さがどんどんインフレしていく感じが、少年漫画っぽいじゃないですか。

前回のシリーズで敵だったキャラが、今回の敵キャラにまったく歯が立たない、というのはよくある展開ですよね!!

Alpha Goは、もうAlpha Go Zeroにまったく歯が立たないんです。

「おめー、つええなぁ。オラ、わくわくすっぞ!!」

 

 

ところで、この仕組みを

「いたって単純」

という人がいます。上のたとえを読んだ人も、そう思われたのではないでしょうか?!

スゴイプログラムというのは、なんかもっとそんな単純なことじゃなくって、何万行もあったり、その中でヽ(*`Д´)ノ【ス】【ゴ】【イ】ヽ(`Д´*)ノことが行われたんじゃないか、と思われたのではないでしょうか?!

 

ちなみに、論文読んでるだけではわかりにくい部分もあるので、下記のソースコードをサンプルにして勉強しました。

下記はオセロをAlpha Go Zeroの仕組みで学習する、というプログラムです。

https://github.com/suragnair/alpha-zero-general

確かに、とってもシンプルです。

 

 

印刷すると、ホワイトボード一枚に収まるらしいですね。

 

「AlphaZeroのソースコードはわずかホワイトボード一枚に収まる : 情熱のミーム 清水亮」

https://japanese.engadget.com/2018/02/12/alphazero/

 

わかってしまえばそうだな、なんぜ今までやらなかったんだ!ということって、結局それを発見、発案した人はすごいですよね。

コロンブスの卵と一緒ですよね。

 

単純なことだとしても、「わかる」までの道のりは、果てしなく遠かったわけじゃないですか。

今までのAlpha Goでの取り組み、モンテカルロ木探索、強化学習、ResNetとか今までの研究結果のいろんなことを詰め込んでなされたわけですよね。

 

この仕組みを考えた方の努力と天才性に拍手喝采、そしてそれを公開してくれることに感謝感激です。

 

実用性に異議を唱える人もいますが、世のいろいろな人が試してみたところ

・完全情報公開ゲーム

・ゼロサムゲーム

では、この方法が相当強いことがだいぶ証明されているようです。

 

 

次回は論文の中身を真面目に紹介する予定でーす(`・ω・´)

24 thoughts on Alpha Go Zeroのすごさを機械学習とか知らない人向けに説明してみる

  1. Pingback: Alpha Go Zeroの論文の翻訳 その1 | Summer Snow

  2. Hello there! I could have sworn I’ve visited this website before but after looking at a few of the posts I realized it’s new to me. Anyways, I’m certainly pleased I stumbled upon it and I’ll be book-marking it and checking back often!

  3. Hello! I simply would like to offer you a huge thumbs up for the excellent info you’ve got here on this post. I will be returning to your blog for more soon.

  4. Spot on with this write-up, I absolutely believe this website needs far more attention. I’ll probably be returning to see more, thanks for the information!

  5. Oh my goodness! Amazing article dude! Thank you, However I am experiencing issues with your RSS. I don’t know the reason why I cannot join it. Is there anyone else getting the same RSS problems? Anyone who knows the solution can you kindly respond? Thanks!

  6. I needed to thank you for this very good read!! I certainly loved every bit of it. I have got you saved as a favorite to check out new stuff you post…

  7. After I originally left a comment I appear to have clicked on the -Notify me when new comments are added- checkbox and now every time a comment is added I get 4 emails with the exact same comment. Perhaps there is a way you are able to remove me from that service? Thanks.

  8. Howdy! This article couldn’t be written any better! Reading through this post reminds me of my previous roommate! He constantly kept talking about this. I will forward this article to him. Pretty sure he’s going to have a very good read. Many thanks for sharing!

  9. An impressive share! I have just forwarded this onto a colleague who had been conducting a little homework on this. And he in fact bought me dinner because I stumbled upon it for him… lol. So let me reword this…. Thank YOU for the meal!! But yeah, thanx for spending some time to discuss this subject here on your web page.

  10. Aw, this was a really good post. Spending some time and actual effort to produce a top notch article… but what can I say… I hesitate a lot and don’t seem to get nearly anything done.

  11. When I initially commented I seem to have clicked on the -Notify me when new comments are added- checkbox and from now on every time a comment is added I receive 4 emails with the same comment. Perhaps there is an easy method you are able to remove me from that service? Cheers.

  12. I’m pretty pleased to discover this page. I wanted to thank you for your time for this particularly wonderful read!! I definitely liked every part of it and i also have you book marked to look at new information on your website.

Comments are closed.