自己進化する機械学習アルゴリズムAmoebaNets

  • 2018.03.27
  • AI
自己進化する機械学習アルゴリズムAmoebaNets

1.自己進化する機械学習アルゴリズムAmoebaNetsまとめ

・Googleが行った人工知能の自動進化についての2論文の概要
・一から自動進化させる手法と人間の知恵と進化を組み合わせる手法で優れた成果を出した
・近い将来、専門知識がなくても人工知能を改良する事ができるようになる

2.脳の進化と人工知能の進化の比較

脳は長い時間をかけて進化した。単純な虫の脳から、現在の多種多様な近代的な構造の脳になるまで5億年かかっている。人間の脳は、幅広い様々な作業を軽々と成し遂げる事ができる。画像内に動物や建物が存在するか判断するのは人間にとっては簡単な作業である。しかし、人工知能で同様な画像認識を行うためには専門家によって注意深く設計される必要がある。更に一般的な人工知能は画像認識、ゲノム解析、病状診断、など一つの特定した作業しか実行する事ができない。

理想は、与えられた作業を適切に実行する人工知能を自動的に作成する事だ。進化的アルゴリズムはそれを実現するための手法の一つである。OpenAI, Uber Labs, Sentient Labs, DeepMindなど沢山の企業や研究所がこの手法に挑戦している。もちろんGoogleの研究所であるGoogle Brain teamもAutoMLでこの手法に挑戦している。

もし、Googleの持つ膨大な計算機資源を使い、画像認識人工知能をプログラムによって前代未聞の規模で進化させたらどうなるだろう?人工知能の専門家の関与を最低限にとどめてこの課題を解決できるだろうか?現代の人工知能は自己進化によりどこまで賢くなれるのだろうか?Googleはこの疑問を2つの論文にまとめた。

3.2つの人工知能論文の概要

ICML 2017(人工知能の国際会議)で発表された「Large-Scale Evolution of Image Classifiers」では、簡単な初期設定とシンプルな構造の人工知能を用意し、進化アルゴリズムで人工知能の構造を進化させた。シンプルな構造の画像認識人工知能は最終的に人工知能の専門家が注意深く設計した人工知能に比較しうるレベルに進化した。この結果は非常に勇気づけられる事であった。何故なら、人工知能を用いたアプリケーションは改良するために人工知能の専門的知識を必要するが、一般のユーザは専門的知識を習得する時間を確保する事が難しく、これが人工知能の普及の足枷になっているからである。

次に出てくる自然な疑問は、「人工知能の専門家に設計された人工知能を進化的アルゴリズムで進化させたらどうなるだろう?」であった。Googleが発表した2つめの論文「Regularized Evolution for Image Classifier Architecture Search(2018)」では、専門家の設計と進化アルゴリズムに加えて最新のハードウェアであるTPUv2を使い、画像認識で良く使われるCIFAR-10とImageNetデータセットを用いたベンチマーク結果について論じている。

4.最初の論文(進化を全てアルゴリズムに任せる)

下記画像が最初の論文、つまりシンプルな構造の人工知能を進化させていく手法のグラフ化である。縦軸が画像認識の正確性、横軸が進化にかかった時間、点は個々の人工知能である。一番左の非常にシンプルな人工知能(ニューラルネットワーク)が、徐々に複雑な構造になり、最終的に右上の複雑な構造だが非常に正確に画像認識をする人工知能に進化している。

個々の進化は意図的にシンプルな変更にとどめられている。一部の畳み込みを削除したり、任意のレイヤー間のコネクションを変更したり、学習率を変更したりする程度である。進化のステップは「ニューラルネットワーク群からランダムに2つを選び、性能の良い方を親として進化させる。性能の悪い方は削除する」を繰り返す事で行っている。

5.2番目の論文(専門家による設計と進化アルゴリズムの組み合わせ)

屋根の上に壁を建設するような、意味がなかったりエラーになる事がわかっている進化を防止するためにセルと言う概念を導入し下記のような構造で実験を行った。左側が専門家の知見による全体的な骨組みである。骨組み自体は変更させない。個々の構成要素(セル)を進化アルゴリズムによって進化させるのが右側の図である。

 

この進化的アルゴリズムをランダムサーチや強化学習などの他の学習手法と比較したのが下記図である。進化的アルゴリズムを表すオレンジの線は強化学習を表す青線より、早い段階で正確なモデルの作成できている。これは、速めに実験に見切りをつける事が出来るので利用できる計算機資源が少ない場合には重要な性質である。

2つめの論文で行った大事なことの一つは、正則化(regularization)である。一つ目の論文のように性能が悪いモデルを削除するのではなく、最も古いモデルを削除する。そのモデルがどれほど性能が良くても関係なく削除するのだ。この改良は、タスク変更に対する耐久性を上げ、最終的により正確なニューラルネットワークを生成する事に役立つ。

人間の世界で例えれば、宮本武蔵が戦国時代最強の剣豪であったとしても、武蔵と全く同じ体格と脳を持つクローンが現代の竹刀で戦う全日本剣道選手権のルールで優勝できるとは限らない。その時代に特化した強さや突然変異的な強さではなく、世代を超えて継承される真の強さ、その実態は手の長さなのか瞬間の判断力なのかはわからないけれども、それを追い求めるために古いモデルを削除する手法を取っている。

進化的アルゴリズムを使ったこの最新人工知能のニックネームはAmoebaNetsと名付けられた。日本語だとアメーバネット、あの単細胞の原生生物のアメーバ。AmoebaNetsはAutoMLの成果の一つである。AmoebaNetsには長い時間と膨大な計算機資源が必要であったが、現在一般に使われているコンピューターが10年前のコンピューターを圧倒しているようにいずれは家庭で簡単にできるようになるだろう。これは、Googleによる未来のチラ見せである。

6.自己進化する機械学習アルゴリズムAmoebaNets感想

昔、偉人が「プログラムを書くよりプログラムを書くプログラムを書きたい」と言ったと聞いた事がありますが、人工知能も同様に自己進化させる手法の研究が進んでいます。とは言っても、あくまで「特定の作業を人間より上手にこなす人工知能(狭い人工知能)」の範囲ではあります。「チェスが得意な人工知能が独学でチェスをもっと上手に出来るようになる」って話で、「チェスが得意な人工知能が勝手に将棋に興味を持って学ぶ」って話ではないので、シンギュラリティとか人工知能の反乱等に繋がる話ではないのでそこは誤解なきよう。

しかし、AutoMLの話を読むと、科学技術の進化に対する感動とは別に少し背筋がゾクゾクするデータサイエンティストや機械学習エンジニアもいるのではないでしょうか。

私も名著Rise Of Robotsにあった言葉を思い出します。

機械と協力する仕事の多くが比較的短命に終わるという予想には、十分な理由がある。・・・要するに、もしあなたがスマートなソフトウェアシステムと一緒に、あるいはその指示のもとに働いているとしたら、まず十中八九といっていいが、そのときあなたは、たとえ気づいていようがいなかろうと、そのソフトウェアをいずれ自分に取って代わるように訓練しているということなのだ。

熱意あふれるエンジニアだったら「AutoML何するものぞ!」と闘志を燃やすと思うし、実際、どのようなお仕事であっても日々研鑽に励んでいる人は人工知能を特別な脅威と思う必要はないとは思うのです。

しかし、ライフステージによって働き方を変えざるを得ない事もあるから「人工知能は人間の仕事を奪う脅威だが自分は例外」と思うのではなく、人生100年時代を念頭に置きつつ、人工知能との付き合い方や自分の人生設計や働き方を考えていった方が良いのだろうな、とも思います。

7.自己進化する機械学習アルゴリズムAmoebaNets関連リンク

1)research.googleblog.com
Using Evolutionary AutoML to Discover Neural Network Architectures

2)arxiv.org
Large-Scale Evolution of Image Classifiers
Regularized Evolution for Image Classifier Architecture Search