Más contenido relacionado La actualidad más candente (7) Similar a AIがAIを生み出す? (20) AIがAIを生み出す?1. AI が AI を生み出す?
2018/01
Daiki Tsuchiya
2. 本日の内容
• 最近の AI 関連のトピックの中で、個人的に関心がある
“AI が AI を生み出す” アプローチについて紹介します
• 数式はほぼ出しません(苦手なので)
2
せ
3. アジェンダ
• 概要
• AI が AI を生み出す?イメージ
• メタ学習(学習の仕方を学習する)
• キーワードの整理
• なぜ “AI が AI を生み出す” 必要があるのか
• “AI が AI を生み出す” 事例紹介
• 人類の最新手法を越えてしまった事例
• まとめ
3
※雑な論文紹介
4. 概要
• AI が AI を生み出す
• 親AI は、子AI を生成する
• 親AI は、より性能の良い 子AI を生成できるように学習する
• 子AI は、通常の機械学習手法と同様に学習し、評価される
• なぜ必要?
• AI の設計は 専門知識や大量の試行錯誤が必要で難しい
→ 機械に自動設計させてラクをしよう!
• “AI が AI を生み出す” 事例
• 強化学習 や 進化的アルゴリズムを用いた AI の自動設計
• 画像分類・認識等に用いる Convolutional Neural Network を設計
• 人間が設計したモデルと同程度以上の性能を達成
4
5. AI が AI を生み出す?イメージ
• やや攻めた(?)タイトルですが・・・
• 以下のようなイメージです
5
6. AI が AI を生み出す?イメージ
• やや攻めた(?)タイトルですが・・・
• 以下のようなイメージです
子の成長(=学習)
6
7. AI が AI を生み出す?イメージ
• やや攻めた(?)タイトルですが・・・
• 以下のようなイメージです
子の成長(=学習)
・・・・・・
(繰り返し)
7
8. AI が AI を生み出す?イメージ
• やや攻めた(?)タイトルですが・・・
• 以下のようなイメージです
子の成長(=学習)
・・・・・・
(繰り返し)
8
10. メタ学習(Meta Learning)*1
• “学習の仕方” を学習する過程を指す
• “Learning to learn” とも表現される
• 与えられた問題領域に応じて、適切なモデルを獲得したい
*1 Metalearning
http://www.scholarpedia.org/article/Metalearning
Lemke らによる meta learning system の定義(2015)
1. 経験 に適応するように学習するサブシステム を内部に持つ
2. 経験 とは・・・
(a) 同じデータセットに対する過去の学習
AND / OR
(b) 異なる問題領域のデータセットに対する過去の学習
からの知識を利用して得ることができる
10
12. メタ学習の分類 *1
• Combination:複数の学習器を組み合わせる
• Bagging 学習データをランダムに選択して学習を繰り返す
• Boosting 過去の学習で間違えたデータを重点的に学習する
• Selection:どのアルゴリズムが適しているか?
• auto-sklearn http://automl.github.io/auto-sklearn/stable/
• scikit-learn 用のライブラリとして実装されている
• DataRobot https://www.datarobot.com/jp/
• Generation:問題に適したアルゴリズムを作り出す
• 生成するために使うアルゴリズム
• Neural Network
• 遺伝的アルゴリズム、遺伝的プログラミング
• 強化学習
• etc…
12
*1 Pappa et al., Contrasting meta-learning and hyper-heuristic research: the role of evolutionary algorithms (2012)
http://www.cs.stir.ac.uk/~goc/papers/MLvsHHGPEM2013.pdf
13. メタ学習 それぞれのイメージ
• Combination
• Selection
• Generation
13
モデル1
モデル2
モデル N
統合入力 出力
アルゴリズム1
アルゴリズム N
メタ知識
・・・
・・・
入力
アルゴリズム
選択モデル
選択 出力
学習
入力 親アルゴリズム 子アルゴリズム1
子アルゴリズム2
子アルゴリズム N
・・・
生成
出力
フィードバック
出力
出力
14. メタ学習の分類 *1
• Combination:複数の学習器を組み合わせる
• Bagging 学習データをランダムに選択して学習を繰り返す
• Boosting 過去の学習で間違えたデータを重点的に学習する
• Selection:どのアルゴリズムが適しているか?
• auto-sklearn http://automl.github.io/auto-sklearn/stable/
• scikit-learn 用のライブラリとして実装されている
• DataRobot https://www.datarobot.com/jp/
• Generation:問題に適したアルゴリズムを作り出す
• 生成するために使うアルゴリズム
• Neural Network
• 遺伝的アルゴリズム、遺伝的プログラミング
• 強化学習
• etc…
14
*1 Pappa et al., Contrasting meta-learning and hyper-heuristic research: the role of evolutionary algorithms (2012)
http://www.cs.stir.ac.uk/~goc/papers/MLvsHHGPEM2013.pdf
本日のテーマ
15. 本日紹介する “AI が AI を生み出す” 事例
• 強化学習 を応用
1. Baker et al., Designing Neural Network Architectures using
Reinforcement Learning (2017)
• 進化的アルゴリズム を応用
2. Real et al., Large Scale Evolution of Image Classifiers (2017)
3. Suganuma et al., A Genetic Programming Approach to Designing
Convolutional Neural Network Architectures (2017)
• RNN + 強化学習 を応用
4. Zoph et al., Neural Architecture Search with Reinforcement Learning (2017)
15
17. キーワード
• Neural Network(NN)
• Recurrent Neural Network(RNN)
• Convolutional Neural Network(CNN)
• 強化学習(Reinforcement Learning)
• 進化的アルゴリズム(Evolutionary Algorithm)
• ノーフリーランチ定理
17
18. Neural Network(NN)
• 人工ニューロン(ノード)を層状に並べた数学モデル
• 情報は 入力層→隠れ層→出力層 と一方向に流れる
𝑜𝑢𝑡𝑝𝑢𝑡 = 𝑓(𝑤1 𝑥1 + 𝑤2 𝑥2 + 𝑤3 𝑥3)ノードの例
入力層 隠れ層 出力層
入力 𝒙
*1 CS231n: Convolutional Neural Networks for Visual Recognition, Lecture 4, p.99
http://cs231n.stanford.edu/slides/2017/cs231n_2017_lecture4.pdf
18
𝑥1
𝑥2
𝑥3
𝑓: 活性化関数(sigmoid, RELU など)
19. Recurrent Neural Network (RNN)
• 時系列情報を扱うことができる NN
• 時刻 𝑡 の隠れ層の出力が、次の時刻 𝑡 + 1 の隠れ層の入力になる
→ 過去の(入)出力に依存して現在の出力が決まる(フィードバック)
過去のデータを使って結果が得られるケース
19
東京都 → 南区 → ?
確率
南青山
みなとみらい
候補
0.8
赤坂・・・ 0.7
0.1
20. *1 LeCun et al., Deep Learning (2015)
http://graveleylab.cam.uchc.edu/WebData/mduff/MEDS_6498_SPRING_2016/deep_learning_nature_2015.pdf
Recurrent Neural Network (RNN)
• 時系列情報を扱うことができる NN
• 時刻 𝑡 の隠れ層の出力が、次の時刻 𝑡 + 1 の隠れ層の入力になる
→ 過去の(入)出力に依存して現在の出力が決まる(フィードバック)
• 応用例
• 音声認識
• 自然言語処理(例:機械翻訳)
• 時系列データ予測(例:株価、為替)
図:時系列に展開したRNN (出典 *1)
20
21. *1 LeCun et al., Deep Learning (2015)
http://graveleylab.cam.uchc.edu/WebData/mduff/MEDS_6498_SPRING_2016/deep_learning_nature_2015.pdf
Recurrent Neural Network (RNN)
• 時系列情報を扱うことができる NN
• 時刻 𝑡 の隠れ層の出力が、次の時刻 𝑡 + 1 の隠れ層の入力になる
→ 過去の(入)出力に依存して現在の出力が決まる(フィードバック)
• 応用例
• 音声認識
• 自然言語処理(例:機械翻訳)
• 時系列データ予測(例:株価、為替)
図:時系列に展開したRNN (出典 *1)
21
時刻 𝑡 における入力
中間層
22. Convolutional Neural Network(CNN)
• 畳み込み層、プーリング層を積み重ねた構造を持つNN
• データの空間的な情報を考慮することが可能 → 画像と相性が良い
• 入力に近い層は局所的な特徴を学習し
深くなるに従って大局的な特徴を学習すると考えられている
22
= 4
= 7
*1
*1 LeCun et al., Gradient-Based Learning Applied to Document Recognition (1998)
畳み込み
プーリング
畳み込み
プーリング
全結合
23. Convolutional Neural Network(CNN)
• 畳み込み層、プーリング層を積み重ねた構造を持つNN
• データの空間的な情報を考慮することが可能 → 画像と相性が良い
• 入力に近い層は局所的な特徴を学習し
深くなるに従って大局的な特徴を学習すると考えられている
• 一般物体画像認識タスクにおいて大きな成功を収める
• Krizhevsky et al., ImageNet Classification with Deep Convolutional Neural Networks (2012)
23
1000 classes
= 4
= 7
*1
*1 LeCun et al., Gradient-Based Learning Applied to Document Recognition (1998)
24. Convolutional Neural Network(CNN)
• 畳み込み
• 入力に対して局所的に NNの処理をする
24
*1 CS231n: Convolutional Neural Networks for Visual Recognition, Lecture 5
http://cs231n.stanford.edu/slides/2017/cs231n_2017_lecture5.pdf
入力:32×32 pixles, (R, G, B) 3色
*1
フィルタ:5×5 pixles の大きさで (R, G, B) の画素に掛け合わせる 5×5×3 個の重み
特徴マップ:
フィルタをスライドさせながら
各画素と掛け合わせた値に
活性化関数を適用して得られる
5×5×3 点が 1点に変換される
6 個 のフィルタを適用すると、
6 枚の特徴マップが出力される
→ 次の層への入力が 28×28×6 となる
*1
25. Convolutional Neural Network(CNN)
• プーリング
• 入力を縮小し、計算量を減らす
• 入力された情報の若干の位置ずれを許容する
25
*1 CS231n: Convolutional Neural Networks for Visual Recognition, Lecture 5
http://cs231n.stanford.edu/slides/2017/cs231n_2017_lecture5.pdf
2 ずつスライドしながら
2 × 2 中の最大値を出力
*1 *1
29. 進化的アルゴリズム
• 生物の進化 (適者生存) に着想を得た最適化アルゴリズム
• 解の候補 :個体 (individual)
個体の集合 :個体群(population)
個体の評価 :適応度(fitness)
個体への操作:交叉(掛け合わせ)・突然変異 など
• 流れ
• 個体群 の初期化・評価
• 以下を繰り返す
• 現世代の 個体群 から 子個体を生成
• 子個体を評価
• 次世代に残す個体を選択
• 利用例
• 新幹線 N700系 フロントノーズの設計
• 国産ジェット機 MRJ の翼状設計
29
交叉・突然変異
世代 𝑡
子個体
30. 進化的アルゴリズム
• 生物の進化 (適者生存) に着想を得た最適化アルゴリズム
• 解の候補 :個体 (individual)
個体の集合 :個体群(population)
個体の評価 :適応度(fitness)
個体への操作:交叉(掛け合わせ)・突然変異 など
• 流れ
• 個体群 の初期化・評価
• 以下を繰り返す
• 現世代の 個体群 から 子個体を生成
• 子個体を評価
• 次世代に残す個体を選択
• 利用例
• 新幹線 N700系 フロントノーズの設計
• 国産ジェット機 MRJ の翼状設計
30
交叉・突然変異
生存
世代 𝑡 + 1
子個体
世代 𝑡
31. ノーフリーランチ定理 (wolpert and Macready, 1995)*1
31
特定の問題に対して性能の良いアルゴリズムは
他の問題に対して性能が劣化する
全ての問題に対して高性能なアルゴリズムは存在しえない
*1 Wolpert and Macready, No Free Lunch Theorems for Optimization (1995)
http://www.no-free-lunch.org/WoMa96a.pdf
32. ノーフリーランチ定理 (wolpert and Macready, 1995)*1
32
特定の問題に対して性能の良いアルゴリズムは
他の問題に対して性能が劣化する
全ての問題に対して高性能なアルゴリズムは存在しえない
*1 Wolpert and Macready, No Free Lunch Theorems for Optimization (1995)
http://www.no-free-lunch.org/WoMa96a.pdf
残念ながら(?) 数学的に証明されてしまっている
33. ノーフリーランチ定理 (wolpert and Macready, 1995)*1
• 特定の問題に対して性能の良いアルゴリズムとは?
= 問題領域の知識(ドメイン知識 とよばれる)を前提としている
• 逆に言えば・・・
解くべき問題が分かっている場合は、できる限り
問題の知識を活用したアルゴリズムの性能が高くなる
• 問題に応じて個別に適切なモデルを考える必要がある
33
*1 Wolpert and Macready, No Free Lunch Theorems for Optimization (1995)
http://www.no-free-lunch.org/WoMa96a.pdf
問題の種類
性能
汎用的なアルゴリズム
特定の問題に特化したアルゴリズム
35. NN の構造設計は専門家でも難しい
• 世界のトップでさえ試行錯誤の繰り返し。NNの設計は難しい。
35
Google Brain さん
MIT Media Lab さん
“NNの設計は今もなお難しい。”
“CNNの構造設計には人間の熟練技と労力が必要。”
“慎重に手作りしていくか、既存の構造に手を加えて作られる”
*1 Zoph et al., Neural Architecture Search with Reinforcement Learning (2017)
*2 Baker et al., Desining Neural Network Architectures using Reinforcement Learning (2017)
*1
*2
36. NN の構造設計を試行錯誤するのは辛い
• とはいえ、学習に大量の時間がかかる
• 単純に人間が試行錯誤するのは非現実的
36
VGGの場合、4枚の Nvidia Titan Black(計56万円也)を使用して 学習に 2~3 週間
• たった5層のCNNでも・・・
• 1層当たり、3つのパラメータ(例:フィルタの数、大きさ、活性化関数)が
2通りの値をとる場合 23 5
= 32768
• 全ての組み合わせを試す場合
1. GPUを大量に買って 2~3週間で終わらせる:
2. GPUを買わずに地道に計算する:
*1 Simonyan et al. Very Deep Convolutional Networks for Large-scale Image Recognition (2014)
*1
37. NN の構造設計を試行錯誤するのは辛い
• とはいえ、学習に大量の時間がかかる
• 単純に人間が試行錯誤するのは非現実的
37
VGGの場合、4枚の Nvidia Titan Black(計56万円也)を使用して 学習に 2~3 週間
• たった5層のCNNでも・・・
• 1層当たり、3つのパラメータ(例:フィルタの数、大きさ、活性化関数)が
2通りの値をとる場合 23 5
= 32768
• 全ての組み合わせを試す場合
1. GPUを大量に買って 2~3週間で終わらせる:
56万円 × 32768 = 170 億円
2. GPUを買わずに地道に計算する:
*1 Simonyan et al. Very Deep Convolutional Networks for Large-scale Image Recognition (2014)
*1
38. NN の構造設計を試行錯誤するのは辛い
• とはいえ、学習に大量の時間がかかる
• 単純に人間が試行錯誤するのは非現実的
38
VGGの場合、4枚の Nvidia Titan Black(計56万円也)を使用して 学習に 2~3 週間
• たった5層のCNNでも・・・
• 1層当たり、3つのパラメータ(例:フィルタの数、大きさ、活性化関数)が
2通りの値をとる場合 23 5
= 32768
• 全ての組み合わせを試す場合
1. GPUを大量に買って 2~3週間で終わらせる:
56万円 × 32768 = 170 億円
2. GPUを買わずに地道に計算する:
2週間 × 32768 = 1256 年
*1 Simonyan et al. Very Deep Convolutional Networks for Large-scale Image Recognition (2014)
*1
39. GoogLeNet [Szegedy et al. 2015] 22層
自動設計されたNN
[Zoph et al. 2017]
ResNet [He et al. 2016]
スキップ接続を取り入れ、より深い構造を実現, 34層・152層・1202層
VGG-16 [Simonyan et al. 2015]
小さな畳み込み層を使うことで
より深い構造を実現, 16層
Network In Network [Lin et al. 2013]
Neocognitron
[Fukushima,1980]
CNN の基礎となった
モデル
ImageNet [Krizhevsky et al. 2012]
大規模画像認識コンペティション
ILSVRC 2012 で圧倒的な勝利, 8層
CNNの変遷
39
1980 1998 2012 2014
LeNet [Lecun et al., 1998]
現在までの CNN の 基本構造
2013 2015 2016 2017
本日のターゲット
40. GoogLeNet [Szegedy et al. 2015] 22層
自動設計されたNN
[Zoph et al. 2017]
ResNet [He et al. 2016]
スキップ接続を取り入れ、より深い構造を実現, 34層・152層・1202層
VGG-16 [Simonyan et al. 2015]
小さな畳み込み層を使うことで
より深い構造を実現, 16層
Network In Network [Lin et al. 2013]
Neocognitron
[Fukushima,1980]
CNN の基礎となった
モデル
ImageNet [Krizhevsky et al. 2012]
大規模画像認識コンペティション
ILSVRC 2012 で圧倒的な勝利, 8層
CNNの変遷
40
1980 1998 2012 2014
LeNet [Lecun et al., 1998]
現在までの CNN の 基本構造
2013 2015 2016 2017
本日のターゲット
専門家の試行錯誤によって様々な構造が提案されてきた
47. 本日紹介する “AI が AI を生み出す” 事例
• 強化学習 を応用
1. Baker et al., Designing Neural Network Architectures using
Reinforcement Learning (2017)
• 進化的アルゴリズム を応用
2. Real et al., Large Scale Evolution of Image Classifiers (2017)
3. Suganuma et al., A Genetic Programming Approach to Designing
Convolutional Neural Network Architectures (2017)
• RNN + 強化学習 を応用
4. Zoph et al., Neural Architecture Search with Reinforcement Learning (2017)
47
48. 本日紹介する “AI が AI を生み出す” 事例
• 強化学習 を応用
1. Baker et al., Designing Neural Network Architectures using
Reinforcement Learning (2017)
• 進化的アルゴリズム を応用
2. Real et al., Large Scale Evolution of Image Classifiers (2017)
3. Suganuma et al., A Genetic Programming Approach to Designing
Convolutional Neural Network Architectures (2017)
• RNN + 強化学習 を応用
4. Zoph et al., Neural Architecture Search with Reinforcement Learning (2017)
48
CNNの構造の自動設計を試みた事例を紹介します
49. 本日紹介する “AI が AI を生み出す” 事例
• 強化学習 を応用
1. Baker et al., Designing Neural Network Architectures using
Reinforcement Learning (2017)
• 進化的アルゴリズム を応用
2. Real et al., Large Scale Evolution of Image Classifiers (2017)
3. Suganuma et al., A Genetic Programming Approach to Designing
Convolutional Neural Network Architectures (2017)
• RNN + 強化学習 を応用
4. Zoph et al., Neural Architecture Search with Reinforcement Learning (2017)
49
50. 強化学習でCNNの構造を学習
Designing Neural Network Architectures using Reinforcement Learning
• 強化学習を使って CNNの層を選択し積み重ねていく
50
①
ネットワーク構造を決める
“経路” を探索
②
“経路” を通って得られた
ネットワークを学習し、性能を評価
③
性能の評価を元に
“経路”の優先度を更新
①に戻る
強化学習の枠組み
51. 強化学習でCNNの構造を学習
Designing Neural Network Architectures using Reinforcement Learning
• 経路にあるノードがCNNの構成要素になっている
51
経路にあるノード:CNNの1層あたりの設定
経路:CNNの構造
経路の評価:① CNNを訓練データで学習させる
② 検証データで性能を評価 = 経路にあるノードの評価を更新
52. 強化学習でCNNの構造を学習
Designing Neural Network Architectures using Reinforcement Learning
• 経路にあるノードがCNNの構成要素になっている
52
経路にあるノード:CNNの1層あたりの設定
経路:CNNの構造
経路の評価:① CNNを訓練データで学習させる
② 検証データで性能を評価 = 経路にあるノードの評価を更新
53. 強化学習でCNNの構造を学習
Designing Neural Network Architectures using Reinforcement Learning
• 経路にあるノードがCNNの構成要素になっている
53
経路にあるノード:CNNの1層あたりの設定
経路:CNNの構造
経路の評価:① CNNを訓練データで学習させる
② 検証データで性能を評価 = 経路にあるノードの評価を更新
56. 本日紹介する “AI が AI を生み出す” 事例
• 強化学習 を応用
1. Baker et al., Designing Neural Network Architectures using
Reinforcement Learning (2017)
• 進化的アルゴリズム を応用
2. Real et al., Large Scale Evolution of Image Classifiers (2017)
3. Suganuma et al., A Genetic Programming Approach to Designing
Convolutional Neural Network Architectures (2017)
• RNN + 強化学習 を応用
4. Zoph et al., Neural Architecture Search with Reinforcement Learning (2017)
56
58. 進化的アルゴリズムでCNNの構造を学習
Large Scale Evolution of Image Classifiers
• ネットワーク構造を突然変異させて進化させる
• 交叉(2つの構造を掛け合わせる操作)は使用しない
• 事前に定義した突然変異
• 学習率を変える
• 構造を変えない(もう一度学習させる)
• 重みを初期化する
• 畳み込み層を追加する
• 畳み込み層を取り除く
• フィルタのスライド幅を変化させる
• フィルタのサイズを変化させる
• 接続を追加する
• スキップ接続を追加する
• スキップ接続を取り除く
58
59. 進化的アルゴリズムでCNNの構造を学習
Large Scale Evolution of Image Classifiers
• 流れ
59
worker #1 worker #2 worker #250・・・
Population
1000 個体
(ネットワーク構造の情報と評価値)
Worker : 個体を進化させる役割
① Population から2 個体をランダムで選択
② 評価値の高い個体を親とし、もう一方は個体群から削除
③ 親を突然変異させて子を生成、学習用データで学習させる
④ 検証用データで子の分類精度を評価
⑤ Population に 親と子を戻す
60. 進化的アルゴリズムでCNNの構造を学習
Large Scale Evolution of Image Classifiers
• 結果(CIFAR-10, CIFAR-100 分類タスク)
• 1つ前に紹介した、強化学習を応用した手法よりも高性能
→ 人間が設計した CNN と同等以上の性能
60
1つ前に紹介した手法
本手法
ResNet (110) 93.4%
ResNet (1001) 95.4% 77.3%
61. 本日紹介する “AI が AI を生み出す” 事例
• 強化学習 を応用
1. Baker et al., Designing Neural Network Architectures using
Reinforcement Learning (2017)
• 進化的アルゴリズム を応用
2. Real et al., Large Scale Evolution of Image Classifiers (2017)
3. Suganuma et al., A Genetic Programming Approach to Designing
Convolutional Neural Network Architectures (2017)
• RNN + 強化学習 を応用
4. Zoph et al., Neural Architecture Search with Reinforcement Learning (2017)
61
62. 進化的アルゴリズムでCNNの構造を学習
A Genetic Programming Approach to Designing Convolutional Neural Network Architectures
• 遺伝的プログラミング(進化的アルゴリズムの一手法)でCNNの構造を設計
• 層の種類 と 接続関係 の組み合わせを最適化
62
層の種類 :C0(1引数の層)
接続元ノード1:0(入力画像)
接続元ノード2:2(1引数の層のため使われない)
63. 進化的アルゴリズムでCNNの構造を学習
A Genetic Programming Approach to Designing Convolutional Neural Network Architectures
• 全体の流れは Large Scale Evolution of Image Classifiers と同様
1. 初期個体生成(2個体)と評価
2. 評価値の高い個体を残し、子個体を生成
3. トレーニングデータで学習
4. 検証データで分類精度を評価
5. 2 に戻る
63
64. 進化的アルゴリズムでCNNの構造を学習
A Genetic Programming Approach to Designing Convolutional Neural Network Architectures
• あらかじめ、有用な構造を部品として用意
• ResNet の Residual Block
• 小規模な実行設定
• 個体数:2( 1 個体から 2 個体生成 → 評価 → 1 個体残す)
• GPU 2枚
64
65. 進化的アルゴリズムでCNNの構造を学習
A Genetic Programming Approach to Designing Convolutional Neural Network Architectures
• 結果(CIFAR-10 分類タスク)
• 人間が設計した CNN と同等以上の性能
• 他の構造最適化手法(Large-scale Evolution など)と比較して
• 精度は劣る場合もあるが、圧倒的に使用している資源が少ない
65
67. 本日紹介する “AI が AI を生み出す” 事例
• 強化学習 を応用
1. Baker et al., Designing Neural Network Architectures using
Reinforcement Learning (2017)
• 進化的アルゴリズム を応用
2. Real et al., Large Scale Evolution of Image Classifiers (2017)
3. Suganuma et al., A Genetic Programming Approach to Designing
Convolutional Neural Network Architectures (2017)
• RNN + 強化学習 を応用
4. Zoph et al., Neural Architecture Search with Reinforcement Learning (2017)
67
68. RNN + 強化学習 でCNNの構造を学習
Neural Architecture Search with Reinforcement Learning
• CNNの構造を表す記号列をRNNに生成させる
• 記号列
[フィルタの数、フィルタの大きさ、フィルタのスライド幅、フィルタの数、フィルタの大きさ、・・・]
• “フィルタの数” を生成したら、その情報が次の
“フィルタの高さ” を生成するための情報として使われる
68
1層分の情報
69. RNN + 強化学習 でCNNの構造を学習
Neural Architecture Search with Reinforcement Learning
• スキップ接続も考慮できるように改良
69
70. RNN + 強化学習 でCNNの構造を学習
Neural Architecture Search with Reinforcement Learning
• 他の手法と同様に 並列・分散化して学習
• 1つの子の学習に数時間ほどかけるため
70
71. RNN + 強化学習 でCNNの構造を学習
Neural Architecture Search with Reinforcement Learning
• 結果(CIFAR-10 分類タスク)
• 人間が設計した CNN と同等以上の性能
71
72. RNN + 強化学習 でCNNの構造を学習
Neural Architecture Search with Reinforcement Learning
• 獲得された構造
• 以下の2つは探索範囲から除外
• フィルタのスライド幅
• プーリング層
• スキップ接続が多用されている
• 私見)
• こんな構造を人手で
発見するのはほぼ不可能!
72
74. 人類の最新手法を超えてしまった事例
• Zoph et al., Learning Transferable Architectures for Scalable Image Recognition (2017)
• ImageNetの分類タスクにおいて、RNN + 強化学習 の手法を
改良し、生み出した構造 (NASNet) が 人類の最新手法の性能を超えてしまった
74
78. 本日紹介した “AI が AI を生み出す” 事例
• 強化学習 を応用
1. Baker et al., Designing Neural Network Architectures using
Reinforcement Learning (2017)
• 進化的アルゴリズム を応用
2. Real et al., Large Scale Evolution of Image Classifiers (2017)
3. Suganuma et al., A Genetic Programming Approach to Designing
Convolutional Neural Network Architectures (2017)
• RNN + 強化学習 を応用
4. Zoph et al., Neural Architecture Search with Reinforcement Learning (2017)
78
GPU 800枚で 28日間
GPU 500枚で 4日間
GPU 10枚で 8~10日間
GPU 2枚で 14日間
79. 本日紹介した “AI が AI を生み出す” 事例
• 強化学習 を応用
1. Baker et al., Designing Neural Network Architectures using
Reinforcement Learning (2017)
• 進化的アルゴリズム を応用
2. Real et al., Large Scale Evolution of Image Classifiers (2017)
3. Suganuma et al., A Genetic Programming Approach to Designing
Convolutional Neural Network Architectures (2017)
• RNN + 強化学習 を応用
4. Zoph et al., Neural Architecture Search with Reinforcement Learning (2017)
79
GPU 800枚で 28日間
GPU 500枚で 4日間
GPU 10枚で 8~10日間
GPU 2枚で 14日間
ハードウェアの性能向上によって更なる発展が期待できる
81. まとめ
• AI が AI を生み出す
• 親AI は、子AI を生成する
• 親AI は、より性能の良い 子AI を生成できるように学習する
• 子AI は、通常の機械学習手法と同様に学習し、評価される
• なぜ必要?
• AI の設計は 専門知識や大量の試行錯誤が必要で難しい
→ 機械に自動設計させてラクをしよう!
• “AI が AI を生み出す” 事例
• 強化学習 や 進化的アルゴリズムを用いた AI の自動設計
• 画像分類・認識等に用いる Convolutional Neural Network を設計
• 人間が設計したモデルと同程度以上の性能を達成
• 学習にコストがかかる!(いわゆる“札束で殴りあう”世界)
81