2017年4月4日火曜日

【本】アルファ碁はなぜ人間に勝てたのか 斉藤康己 ベスト新書

2016年にイ・セドル9段を4勝1敗で破り、世界中にAI旋風を起こしたアルファ碁はどうやって碁を打っているのかを説明してくれる本です。

シロウトが考えると、こういうゲームは超高速の計算機でシラミツブシに計算してしまえば良いのでは?と考えてしまいます。対称性などもあるので、機械的に全ての組み合わせを計算する必要はないのですが、計算しなければならない盤面の数は、

三目並べ    10の3乗
チェッカー   10の20乗
オセロ     10の28乗
チェス     10の47乗
将棋      10の70乗
囲碁(19路) 10の170乗
との事。(これを木検索と言います)

日本が誇るスーパーコンピュータ「京」で、宇宙が出来てからの150億年間ずっと計算しても、10の33乗ぐらいしか計算できないとの事。という事で、囲碁を木検索では物理的に解けません。

囲碁ソフトは色々な変遷があるのですが、モンテカルロ木検索という方法が登場して、実力がグンと上がりました。

簡単に言うと、盤面の点からランダムに打って、その後に終局までプレイして勝つか負けるかを見て、最初のにどの手を打つと勝つ確率が高いか評価しようというもの。

これは、殆ど碁の知識を持っていなくても計算できてしまいます。

9路盤での初手を計算してみると、天元とその周り8目ぐらいの所に、打つと勝つ確率が高そう事になったそうです。

一方で、ニューラルネットワークという人間の脳を模した認識手法も進化してきました。片方から入力して、何層かの伝達の末に出力になるのですが、そこで出力された答えと正解とのGapが小さくなるように、中間層での伝達事の重み付けを何度も調整していくという物。

中間層を多層にしたものを深層学習(ディープラーニング)と呼ばれます。
この学習をするには、沢山の正解出力の分かっている問題(入力)を用意してそれを元に微調整をしていく事が必要になります。

さらに、それの効率をアップしたのは中間層で一度 ノードの数を絞って、そこから又展開して正解との差を見るというやり方(自己符号化器)。これで非常に高い認識率を得る事ができる様になりました。

又 映像等を少しずつズラした情報から特徴点を抽出するという「畳み込み」というやり方で、少々のズレなどで影響されない認識特徴量を抽出する事ができるようになりました。(色々な写真からネコを認識できたという事で有名になりました。映像系認識には有力な手段になります)

アルファ碁ではこのニューラルネットとモンテカルロ木検索の両手法を組み合わせて作られています。

まずプロ棋士の棋譜8万1000と、KGSという有名なネット碁サイトで6段以上の人の棋譜8万6000から、”次の一手”のデータを各約1650万個集め、それを使って学習した有望な次の1手を教えるニューラルネット(ポリシーネットワーク)を持ちます。

もう一つ、モンテカルロ木検索から得られるであろう、局面の最終勝率がどれぐらいになるか学習したニューラルネット(バリューネットワーク)を持つ。

さらに、モンテカルロ木検索のプレイを先に進める時の次々の打ち手を生成する為の「ロールアウトポリシーネットワーク」というほぼポリシーネットに似た仕組みも持ちます。

ポリシーネットは正解付き問題で学習した後、過去の世代のポリシーネットと対戦を通じて強化学習で磨きをかけています。それらは50台のGPU(CPUの10倍の能力を持つ)を使って丸1日 128万局の対局をしました。

それらの対局から、ランダムに次の1手の3000万の局面データ(正解付き)を作り、それでバリューネットを学習させました。

アルファ碁は戦略や流れなど考えていません。毎回その時の盤面をパターン認識して同じアルゴリズムで「次の1手」を計算して探すという事しかしません。

毎回、ポリシーネットで次の1手の候補を出して、それをバリューネットで評価し、有望そうな手を終局までプレイしてみて、それらの結果最も高いスコア(勝率が高そう)を生む手を打ちます。

しかも、CPU 3000台分の分散処理計算パワーを使って持ち時間中に計算できる所までする。

アルファ碁に、どういう思想でそこに打ったのか?と聞いても答えられません。思想なくその時、その時の計算で打っているから。

但し、次の1手を学習した元データは人間の上級者の打った棋譜から作っているので、
アルファ碁の対戦相手は、「変な手を打たない」という感想を持つ事になります。

ちなみに日本のディープゼン碁も同じくニューラルネットとモンテカルロを組み合わせた物。ただし、CPU等はスタンドアロンなのでアルファ碁よりも圧倒的に非力です。

アルファ碁は自己対戦での強化学習等で、まだまだ強くなって行けます。

ただ、人間ならば、13路盤や21路盤なども柔軟に打っていけますが、アルファ碁ではプログラムの変更が必要だし、学習の元になる大量データもありません。

そういう面はAIの限界があります。
AIは怖い、AIに仕事を取られると考えるのではなく、AIを上手く使いこなそうと考えれば良いとの事です。

この本を読んで見て、アルファ碁の中で何が起こっているのか、どうして作りあげられたのかが良く分かりました。

もしかしたら、エリートデータで学習したアルファ碁は、ド素人の決して強い人は打たないような突拍子もない手には戸惑ってボロを出すかもしれないな、、と感じました。

逆に、アルファ碁が強いのは、強い人間の棋譜データを沢山飲み込んだからとも言えます。

アルファ碁と対戦するというのは、世界の強い人の全てを吸収した代表と打つという事になるのかもしれませんね。

0 件のコメント:

コメントを投稿