Upgrade to Pro — share decks privately, control downloads, hide ads and more …

最新AI技術「NAS(Neural Architecture Search)」を紐解く ~Go...

piacerex
September 06, 2018

最新AI技術「NAS(Neural Architecture Search)」を紐解く ~Google Cloud AutoMLの裏側を見ていく~

piacerex

September 06, 2018
Tweet

More Decks by piacerex

Other Decks in Technology

Transcript

  1. Presented by IAI Fukuoka (Institute for Advanced Intelligence) https://iaifukuoka.connpass.com/ 2018/09/06

    (Thu) Developers Summit 福岡 2018 最新AI技術「NAS」を紐解く (Neural Architecture Search) ~Google Cloud AutoMLの裏側を見ていく~ 2018/08/29 ver0.5作成 2018/09/01 ver0.7作成 2018/09/05 ver0.9作成
  2. 1 プログラマ歴36年 / XPer歴18年 / 福岡 技術顧問 (3社) AIジョブカレ 福岡代表

    / enPiT (文科省 社会人IT育成) 講師 IT企業2社経営 。 森 正和 |> 。 Elixirコミュニティ「fukuoka.ex」 福岡 理学部 / IAI Fukuoka / 「通常の3倍」福岡 主催 「量子コンピュータ by Blueqat」 / 「OpenQL」 福岡代表 福岡Elixirプログラマ / 重力プログラマ my favotite technology & implements. Twitter/Qiita/Github @piacere_ex
  3. 16 1. AI・ML技術の現状と最新について 2. Google Cloud AutoMLとは? 3. AutoMLが実現する手軽なモデル構築 4.

    AutoMLの裏側 ~転移学習とNAS~ 5. 「NAS (Neural Architecture Search)」とは? 6. NASの実装 7. 今後、AI・MLにエンジニアは不要? 目次
  4. 19 現在、主流のディープラーニング手法 現在、主流となっているディープラーニング手法には、「CNN」 「RNN」「AE」の3つがあります ➢ CNN (Convolutional Neural Network) •

    複数用意した空間フィルタで畳込演算 (Convolution) を行い、各フィルタ結果から取捨選択 (プーリング) ことを 繰り返すことで、特徴を抽出できる ➢ RNN (Recurrent Neural Network) • 従来のNNのフィードフォワード構造に加え、フィードバック 構造も持たせることで、現在データだけで無く、過去データ からの影響も含めた、時系列としての特徴を抽出できる ➢ AE (Auto Encoder) • 次元削減時の圧縮法を教師なし学習することで、抽象 的な特徴を抽出できる (最近、データ生成で復活) PyCon Kyushu 2018スライドより
  5. 21 最新AI・ML技術まとめ 今回、ご紹介した最新AI・ML技術をまとめると以下の通りです ➢ カプセルネットワーク • 少ないデータでも、高精度かつ耐久性の高い予測が可能 であり、NN/DLを超える、高い汎化能力を発揮する • 実証が少ないが、仕組みが合理的で、トライの価値あり

    ➢ 転移学習 • 少ないデータのドメインも、大量データで学習済みのモデル があれば予測を行え、高い汎化能力があると言える • 「学習の仕方を学習する」ことが可能なため、将来的には、 より少ないデータからの高精度学習に応用が期待できる ➢ QRNN • 時系列データ分析は、ビジネス領域で最も重要なデータ 分析課題で、QRNNは、その効率改善に実用できる PyCon Kyushu 2018スライドより
  6. 22 「カプセルネットワーク」とは? 2度の「AIの冬」の間もAI研究を続け、2012年にディープラーニ ングをヒットさせた「AIの父」、ジェフ・ヒントン博士 (70歳!) が 編み出した、ニューラルネットワークを超えると言われるAI新技術 半年前の2017年10月に論文を発表し、ニューラルネットワーク の最高精度に匹敵しつつ、誤答率が最低時のNNの半分にまで 減少できる、という研究成果を発表しています

    最大の違いは、ニューラルネットワークが特徴を「全特徴の量」で 捉えていたのに対し、カプセルネットワークは特徴を「各特徴毎の ベクトル」で捉え、更に「各特徴の間にある関係性」も捉えます 現在、Google Brain PJの研究者 とトロント大学教授を兼務している PyCon Kyushu 2018スライドより
  7. 25 「転移学習」とは? 転移学習の実現には、以下3つのアプローチがあります ① 学習済みモデルの出力層のみ別ドメインに適応 • ドメイン間のタスクに共通点がある場合、入力層や中間 層・隠れ層の重みは固定し、出力層だけを別ドメインで 学習させることで、共通する特徴の抽出が可能です ②

    ドメイン非固有の特徴のみに限定 • 「表現学習」と呼ばれる、汎用的な特徴や、分散を学習 することで、ドメインに依存しない部分に限定して学習し、 ドメイン非固有の特徴を抽出します (AEはこの一種) ③ ドメインの違いを予め認識させて選り分ける • ドメイン間の変換を事前に学習させ、ドメイン間の違いを 認識し、ドメイン固有と非固有を判別することで、各々の 特徴を抽出できます (≒学習の仕方を学習する) PyCon Kyushu 2018スライドより
  8. 26 「QRNN」とは? 2016年11月、SalesForce研究所のジェームズ・ブラッドベリー らが発表した、RNNの計算時間を改善するための手法です RNNでメジャーな「LSTM (Long Short-Term Memory) は、 現在の出力を得るために、「過去の出力値」と「媒介変数の値」

    の両方が必要なため、並列計算が行えず、計算に時間がかかる という問題点を持っています QRNNは、CNNの持つ並列計算能力を部分的に利用すること で、この時系列データ学習を高速化し、時間短縮もしくは単位 時間あたりの精度向上が実現できます PyCon Kyushu 2018スライドより
  9. 27 1.AI・ML技術の現状と最新 こうしたモデルアーキテクチャ自体の発展以外にも、既存モデルの 最適化を、人手で行わず、マシンに行わせる…いわゆる自動化 技術により発展させるアプローチも存在します この領域は現状、ハイパーパラメータ (学習で変動しないパラ メータ) のチューニング※ に限定されていましたが、今回ご紹介する

    「NAS (Neural Architecture Search)」は、ハイパーパラ メータに限定されない、自動化技術の最新版となります (初めての論文が、2017/2/15と、半年前に出たばかりです) このNASを一早く導入したのが、「Google Cloud AutoML」で、 つい先日の2018/7/25に、β版が公開され、一般のユーザでも 利用可能となりました ※グリッドサーチ、ランダムサーチ、ベイズ最適化、GA等によりパラメータ探索を自動で行う
  10. 29 2.Google Cloud AutoMLとは? Googleは、2016年末頃から「AIの民主化」をミッションに掲げ、 「Cloud Vision API」や「Natural Language API」などの、

    ”事前学習済モデル”によるサービスを提供してきました https://cloud.google.com/products/machine-learning/ これらサービスは、一定枠内のデータ識別には威力を発揮します が、ユーザ独自のデータ識別や、その元となる学習ができません 一方、AI・ML技術を熟知して、ユーザ独自識別を開発できる 企業・人材は限られており、また、その構築には時間がかかります 「AutoML」は、手軽な”独自モデル構築”を提供します ※上記の詳細は、以下のGoogle Cloud Japan公式ブログをご覧ください https://cloud-ja.googleblog.com/2018/01/cloud-automl-making-ai-accessible-every-business.html
  11. 30 2.Cloud AutoMLでどんなデータ識別が可能? AutoMLは、α版が2018/1/17に発表され、画像認識を提供 する「Cloud AutoML Vision」をリリースしました β版は、2018/7/24に発表され、自然言語解析を提供する 「Cloud AutoML

    Natural Language」と、翻訳を行う 「Cloud AutoML Translation」がリリース済です http://www.itmedia.co.jp/news/articles/1807/25/news066.html 米Disneyは、「AutoML Vision」 を採用済で、オンラインショップである 「shop Disney」のレコメンド機能 やショップ内検索を、AutoMLで 構築した、キャラクタ毎のカテゴリや 色による分類によって実現しています
  12. 31 2.AutoMLの前身、Cloud Vision APIだと… 「AutoML Vision」の前身である「Cloud Vision API」は、 ユーザがモデルの学習をさせること無く、ある程度の画像の分類 が可能ですが、事前学習していないデータの分類ができません

    たとえば、空に浮かぶ雲や、海と一緒に映る雲は、その特徴から 「雲」とは識別できても、「雲の種類」までは分類できません (積雲) (入道雲) (層雲) (積雲と分類できない) (入道雲と分類できない) 分類
  13. 36 3.参考: AutoML Vision β版のUI Google Cloud Next '18 (2018/7/25開催)

    で発表された AutoML Vision β版では、UIが大幅に変更されていました 訓練画像群で [TRAIN]
  14. 42 4.AutoMLの裏側 ~転移学習とNAS~ 「AutoML Vision」 は、2つの最新AI・ML技術で構築されます A) 転移学習 (Transfer Learning)

    • 学習済みモデルを別のドメインに移し、モデルの一部のみ 別ドメインでの再学習を行うことで、モデル転用する技術 B) NAS (Neural Architecture Search) • 人手で行われていた、ニューラルネットワークの構造設計と、 ハイパーパラメータチューニングを、自動最適化する技術 (AutoML Visionでは、Advancedモード時、使われる) A) B)
  15. 44 5.「NAS (Neural Architecture Search)」とは? 人手で行われていた、ニューラルネットワークの構造設計と、ハイ パーパラメータのチューニングを自動で行い、学習を行う最適化 は、「Controller RNN」と「Child Network」という、2つの

    ニューラルネットワークの組み合わせによって構成されています 「Child Network」は、自動チューニングされる対象のニューラル ネットワーク本体で、「Controller RNN」は、Child Network の構造を最適化探索するためのニューラルネットワークです
  16. 45 5.「NAS (Neural Architecture Search)」とは? つまりNASは、最適な「Child Network」構造を「Controller RNN」で探索し、新たなChild Network構造を生成することで、 人手無での最適化されたモデルを獲得できる、ということです

    具体的には、以下の流れの「強化学習」により実現されます ① Controller RNNが設定した、Child Networkのハイパー パラメータでChild Networkを学習させる ② 上記①で学習したChild Networkに、テストデータを入力 し、正解率 (Accuracy Score) を出す ③ 上記②の正解率をController RNNの報酬として与える ④ この報酬を元に、方策勾配法 (policy gradient algorithm) でController RNNを更新する ⑤ 上記①~④を繰り返す
  17. 46 5.CNNにおける「NAS」 CNNの「Controller RNN」は、 層毎におけるハイパーパラメータ (フィルタ、ストライド※1 ) をグリッド サーチ…つまり全探索※2 します

    ※1: ストライド=フィルタのシフト幅 ※2: 実際はSkip Connectionで層飛びさせます CNNをChild Network とするNASは、右記の通り Controller RNNから Child Networkの設定 を行い、 Child Network が学習され、テスト正解率 を報酬として、Controller RNNの更新を繰り返します Controller RNN Child Network 強化学習
  18. 47 5.RNNにおける「NAS」 RNNの「Controller RNN」は、RNNセルをChild Networkと して、RNNセル毎のハイパーパラメータ (結合、活性化関数) を グリッドサーチします 結合種別

    (Add、ElementWise Multiplication、Max等) と活性化関数種別 (tanh、sigmoid、ReLU等) を、各RNN セルに対してController RNNからChild Networkに設定し、 Child Networkが学習され、テスト正解率を報酬として、 ControllerRNNの更新を繰り返します
  19. 53 6.Efficient NASの実装コード 2つあるサンプルのうち、画像データセットサンプル「CIFAR-10」 の学習をENASで最適化する方について解説します 論文にも記載されている、以下2種類のCNNの最適化が可能 です ① NN構造最適化 (マクロ探索)

    ② CNNセル最適化 (ミクロ探索) この2種類を、search_forパラメータでスイッチしています if FLAGS.search_for == "micro": ControllerClass = MicroController ChildClass = MicroChild else: ControllerClass = GeneralController ChildClass = GeneralChild src/cifar10/main.py
  20. 58 6.Efficient NASの実装コード Convolution Cell (≒normal_arc) と、Reduction Cell (≒reduce_arc) は、以下コードで定義します

    これらを、main.pyのtrain()でCNNセル2ノードにアサインする ことで、探索します コード (会場以外には、別途 お見せする機会設けます)
  21. 62 7.今後、AI・MLにエンジニアは不要? ENASは、GPU1個で約半日あれば、AutoMLと同じ画像認識 モデルの自動構築が可能なことが分かりました また、転移学習も、GPU1個で約半日あれば、やはり同じように、 画像認識モデルの自動構築が可能です (PyCon Kyushu 2018登壇時、VGG16で検証済) このように、自前でAutoMLと同様のモデル構築が可能ですが、

    冒頭でお見せした通り、AutoMLによって実現されるのは、画像 認識モデルの自動構築だけで無く、以下も付いてきます ① ノンプログラミングでモデル構築が可能 ② 学習→予測→APIの過程が、使いやすいUIで提供される 自前のNAS/転移学習が出る幕は、無いように思えてきます…
  22. 63 7.今後、AI・MLにエンジニアは不要? 潤沢な資金や、高い投資対効果が確定しない場合、AutoML では無い、自前での構築にもニーズはありそうです ① AutoMLは、1時間あたり$20と、高額なサービス ② 自前でも、1度、転移学習/ENASを構築してしまえば、 GPU1個で約半日と、あまり時間がかからない ③

    UIは無くとも、正解データとなる画像をアップし、テストデータ で確認し、コンソールで正解率を確認しても、実は大差無い まだまだAI・ML開発に、エンジニアは必要な場面はありそうです accuracy = 0.995 == コンソール出力 AutoMLのUI