2017年09月21日

ニューラルネットワーク > ディープラーニング > アルファ碁

<地球セミナ112-2 山本一成著「人工知能はどのようにして「名人」を超えたのか?」 解説> <水明子>

 


 前の記事[1]で人工知能(AI)の発展には3回のブームがあったことを述べた。その3回目である現在進行中のブームをけん引しているのがディープラーニング(深層学習)という技術である。ディープラーニングはアルファ碁という囲碁のAIにも用いられ、今年2017年には世界最強の棋士・阿潔にも3連勝した。開発したのはグーグルの子会社ディープディープマインド社のデビス・ハサビスである。


 ディープラーニングはニューラルネットワークの発展型なので、
この記事では、ニューラルネットワーク>ディープラーニング>アルファ碁の順で解説していく。

 

アルファ碁のデミス・ハサビス世界最強の阿潔9[2]
アルファ碁−デミスハサビス阿潔九段



<ニューラルネットワーク>

 ニューラルネットワークは脳のニュ-ロン(神経細胞)のネットワークを真似たものである。ニューロンは下の図のようにシナプス結合で他の多数のニューロンと繋がっている。シナプスを通じて複数のニューロンから信号が送られてくるとそれを加え合わせ、その結果がある閾値を超えると発火して電気信号を送り出す。シナプス結合には強弱があり、その繋がり方でニューロンのネットワークは記憶や思考などいろいろなことをすることができる。

 

ニューロン(神経細胞)[3]

CAMニューロン4


 ニューロンを真似たニューラルネットワークの素子(ノード)は次の図のようなものである。他のノードからの入力信号x1、x2、・・・、シナプス結合の強さに相当する重みw1w2、・・・、その積和を活性化関数で変換して出力する。下の例では活性化関数にシグモイド関数を用いている。シグモイド関数は01を滑らかにつなぐS字型の関数である。

 

ニューラルネットワークの素子(ノード)[2]
アルファ碁−ニューロン2


 下の例は最も単純なノードによる演算である。2つの入口からx1x2という入力があり、w1w2という重みが掛けられ、yという出力を出すものである。このように簡単なものでも右下の表の2進法の掛け算ができる。


 この演算を行うためにはw1、w2と活性化関数はどのようなものであればよいだろうか。w1とw20.5、活性化関数の閾値を0.7にして、積和が0.7より小さければ何もしない(ゼロを出力)、0.7より大きければ発火(1を出力)する。これだけで右下の掛け算ができる。

 

単一ノードで論理演算ANDができる[3]
ゼロからーパーセプトロンゼロからーAND


 ニューラルネットワークは手書き数字の識別にも使える。郵便番号の読み取りに使われているものだ。下の図のように、手書き文字を28×28画素(ピクセル)で与える。したがって、入力ノードは28×28784個必要になる。それぞれの入力は白黒の濃淡で0255の数値になっている。 


 出力層のノードは09に対応する10個である。図の例では、3に対応する出力が0.4で他は小さいので与えられた文字は3であると判定される。

 
 入力層と出力層の間に隠れ層があってここで演算が行われる。重みwが適切であれば高い確率で数字の判定ができることになる。

 

手書き数字判定のニューラルネットワーク[5]

人間を超えるか-手書き文字認識


 それでは重みwはどのように決めればよいのか。下のような損失関数Eを考える。ykはk番目のノードの出力値、tkは正解の値。tkのことを教師データという。上の図の場合なら教師データは、0001000000、である。下のEは誤差の二乗和である。実際には別の形の関数が使われることが多い。

ゼロからー2乗和誤差


 損失関数が小さくなるようにwに関する損失関数の勾配を求め、下の図のようにwを少しずつ更新していく。できるだけ多くの手書きデータを用いてwを改良していくのである。この手続きを教師あり学習という。


学習による重みパラメーターの改善[2]
アルファ碁−最適化


ディープラーニング>

画像認識を競うAIのコンペにILSVRCとよばれるものがある。2010年から毎年行われている。ImageNetという100万枚を超える画像のデータを用いる。そのコンペのクラス分類部門では1000種の物を見分ける競争を行う。猫、コップ、飛行機などの1000種を見分けるのである。


 次の図が各年に優勝したAIのエラー率である。初めの頃はエラー率が25%程度だったのが、2012年に突然のように16%に下がった。トロント大学のグループが開発したAlexNetというAIが断トツの成績を上げたのだ。そこに用いられた技術が
ディープラーニングだった。これがブレークスルーとなってディープラーニングの開発に火が付いた。コンペでは毎年のように記録更新が起こり、2015年にはマイクロソフトのResNetがエラー率を3.5%にまで下げた。ディープラーニングの実力はすばらしいのだ。

 

ILSVRCコンペの優勝者のエラー率[4]
ゼロから―画像認識の成績向上


ディープラーニングはニューラルネットワークの発展したものである。名前のように隠れ層を増やしネットワークを深くしたものだ。そのような試みはこれまでもあったけれどうまくいってなかったのだ。

 
 ディープラーニングには最適化しなければならないパラメーターの数も多い。そのため、まず多数のデータによる教師あり機習を行う。それには高速の並列コンピュータが必要になる。


 ディープラーニング
これまでの多数のAI技法を複合したものである。ディープラーニングについてさらに詳しく知りたい人は出典の「4」や[2]を参照されたい。

 


<アルファ碁>

 囲碁の局面の数は10360乗といわれ、将棋の10226乗よりさらに膨大な数である。その上、将棋のような駒の重要性の違いや玉の環境の評価という目安がない。ある局面はパターンでしかなく、将棋に比べると手の評価が難しいのだ。

 

アルファ碁のアウトライン[2]

アルファ碁−囲碁の人工知能


 アルファ碁が登場する前に強かった囲碁AIはモンテカルロ法を採用していた。よい評価基準が見つからないので、ランダムに選んだ手順を終局まで並べて結果の勝ち負けを見るのだ。終局までの手数は400手くらいのものだから、次の手を選びその先の何通りかを実行してみてその手の大雑把な勝率を求める。その中で自分に一番有利と思われる手を選択する。この方法によるプログラムはアマ上級者くらいの実力があったがプロには勝てなかった。


 アルファ碁はディープラーニングを採用し、手の評価ができるようになった。アルファ碁は2種類のディープラーニングを持っている。手を選択するものと局面を評価するものだ。手を見つけるディープラーニングの構造が次の図に示されている。


 層の深さは13層。碁盤の枡の数に合わせて19×19の入力ノードがある。そこに白か黒か空きかの情報が入る。出力層も19×19でそれぞれの手の評価が出る。下図では評価が棒グラフで示されているが、棒グラフの一番長いものが最善手である。

 

アルファ碁のディープラーニング[2]

アルファ碁−ディープラーニング2


囲碁ではある石の周辺の情況が大切だ。隣に白があるか黒があるかで全く違ったものになるからだ。そのために個々のノードをバラバラなものとはみなせない。ノードを繋ぐ重みもセットで扱う。初めは重みを5×5の面として扱うのだ。これをマスクとよぶ。最適化されたマスクは縦の繋がりや横のつながりなど部分的なパターンを表すことになる。盤面の上でマスクをずらしながら演算をしていく。上図の黒い網掛けがそれだ。この方法を畳み込みという。


 図の中に48チャネルとあるのはマスクを48枚用意するということだ。マスクは縦横のつながり方に対応するものなので、多数のパターンを用意しておく。このようなものを多次元の畳み込みネットワークという。マスクは重みの集合だから学習によって最適化していく。そのためには強力なコンピュータが必要だ。


 ここに示したのは手を評価するためのディープラーニングだが、局面を評価するディープラーニングも出力層の他は似たような構造を持っている。


 アルファ碁はモンテカルロ探索も取り入れていて、プログラムの進め方は下図のモンテカルロの木探索に従って行われる。モンテカルロ探索は精度が十分ではないので、この木探索の要所々々で2つのディープラーニングが呼び出され、探索の精度を向上させる。

 

モンテカルロ探索[2]
アルファ碁−モンテカルロ木探索


アルファ碁を開発したディープマインド社はグーグルの子会社なので大規模のコンピュータシステムを利用することができる。学習に用いた計算機システムは(1202個のCPU176個のGPU)というものだ。CPUは計算機の心臓部で主にモンテカルロ計算に使われる。GPUはパソコンやスートフォンの画面を制御するチップで行列演算が得意だ。GPUは主にディープラーニングのマスク演算に用いられる。


 まず多数の囲碁の棋譜を用いた教師あり学習でマスク上のパラメーターの最適化を行う。その後でアルファ碁同士を戦わせて教師なし学習を行う。その結果が世界最強の阿潔9段への3連勝を含む、プロ棋士への60戦全勝である。囲碁の世界でもAIが最優秀の人間を超えたのだ。

 
 スマートフォンに声で質問すると答えのあるインターネット上の頁を表示してくれる。この音声認識もAIだ。自動翻訳にも、車の自動運転にも、株の売買にも、天気予報にも
ディープラーニングが応用されている[6][7]。このようにAIが増殖しつつある世の中を生きていくためにはAIについてある程度の知識を持っておかなければならないだろう。



出典

[0] 「人工知能AIの本と解説へのリンク」への戻り

http://blog.livedoor.jp/nara_suimeishi/archives/51919243.html#more

[1] 「将棋の機械学習――プログラマからの卒業」 20179xx日投稿

http://blog.livedoor.jp/nara_suimeishi/archives/51918931.html#more

[2] 「最強囲碁AI アルファ碁解体新書」大槻知史・著、三宅陽一郎・監修(翔泳社、2017

http://blog.livedoor.jp/nara_suimeishi/archives/51918743.html#more

[3] 「キャンベル生物学」ネイル・A.キャンベル、ジェーン・A・リース(丸善、2007

[4] 「ゼロから作るDeepLearning」斉藤泰毅(O’REILY2016

http://blog.livedoor.jp/nara_suimeishi/archives/51918591.html#more

[5] 「人工知能は人間を超えるか ディープラーニングの先にあるもの」松尾 豊(KADOKAWA2015

http://blog.livedoor.jp/nara_suimeishi/archives/51917698.html#more

[6] 「グーグルに学ぶディープラーニング」日経ビッグデータ編(日経BP社、2017

http://blog.livedoor.jp/nara_suimeishi/archives/51914242.html#more

[7] 2017年6月25日放送のNHKスペシャル「人工知能 天使か悪魔か2017」

   http://www.dailymotion.com/video/x5ryvtc




nara_suimeishi at 21:50│Comments(0)観察と学習 

コメントする

名前
URL
 
  絵文字