SlideShare una empresa de Scribd logo
1 de 82
Descargar para leer sin conexión
AI が AI を生み出す?
2018/01
Daiki Tsuchiya
本日の内容
• 最近の AI 関連のトピックの中で、個人的に関心がある
“AI が AI を生み出す” アプローチについて紹介します
• 数式はほぼ出しません(苦手なので)
2
せ
アジェンダ
• 概要
• AI が AI を生み出す?イメージ
• メタ学習(学習の仕方を学習する)
• キーワードの整理
• なぜ “AI が AI を生み出す” 必要があるのか
• “AI が AI を生み出す” 事例紹介
• 人類の最新手法を越えてしまった事例
• まとめ
3
※雑な論文紹介
概要
• AI が AI を生み出す
• 親AI は、子AI を生成する
• 親AI は、より性能の良い 子AI を生成できるように学習する
• 子AI は、通常の機械学習手法と同様に学習し、評価される
• なぜ必要?
• AI の設計は 専門知識や大量の試行錯誤が必要で難しい
→ 機械に自動設計させてラクをしよう!
• “AI が AI を生み出す” 事例
• 強化学習 や 進化的アルゴリズムを用いた AI の自動設計
• 画像分類・認識等に用いる Convolutional Neural Network を設計
• 人間が設計したモデルと同程度以上の性能を達成
4
AI が AI を生み出す?イメージ
• やや攻めた(?)タイトルですが・・・
• 以下のようなイメージです
5
AI が AI を生み出す?イメージ
• やや攻めた(?)タイトルですが・・・
• 以下のようなイメージです
子の成長(=学習)
6
AI が AI を生み出す?イメージ
• やや攻めた(?)タイトルですが・・・
• 以下のようなイメージです
子の成長(=学習)
・・・・・・
(繰り返し)
7
AI が AI を生み出す?イメージ
• やや攻めた(?)タイトルですが・・・
• 以下のようなイメージです
子の成長(=学習)
・・・・・・
(繰り返し)
8
メタ学習(学習の仕方を学習する)
9
メタ学習(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
分類タスクでの例
• 一般的な学習
学習の仕方:人間が分類モデルを設計
学習: 入力データを分類できるように分類モデルの
パラメータを調節(例:NNの重み 𝒘 など)
• メタ学習
学習の仕方:入力データや過去の学習結果をもとに
分類モデルを 選択 or 生成
学習: 入力データを分類できるように分類モデルの
パラメータを調節
※ ここは一般的な学習と一緒
11
メタ学習の分類 *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
メタ学習 それぞれのイメージ
• Combination
• Selection
• Generation
13
モデル1
モデル2
モデル N
統合入力 出力
アルゴリズム1
アルゴリズム N
メタ知識
・・・
・・・
入力
アルゴリズム
選択モデル
選択 出力
学習
入力 親アルゴリズム 子アルゴリズム1
子アルゴリズム2
子アルゴリズム N
・・・
生成
出力
フィードバック
出力
出力
メタ学習の分類 *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
本日のテーマ
本日紹介する “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
キーワードの整理
16
キーワード
• Neural Network(NN)
• Recurrent Neural Network(RNN)
• Convolutional Neural Network(CNN)
• 強化学習(Reinforcement Learning)
• 進化的アルゴリズム(Evolutionary Algorithm)
• ノーフリーランチ定理
17
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 など)
Recurrent Neural Network (RNN)
• 時系列情報を扱うことができる NN
• 時刻 𝑡 の隠れ層の出力が、次の時刻 𝑡 + 1 の隠れ層の入力になる
→ 過去の(入)出力に依存して現在の出力が決まる(フィードバック)
過去のデータを使って結果が得られるケース
19
東京都 → 南区 → ?
確率
南青山
みなとみらい
候補
0.8
赤坂・・・ 0.7
0.1
*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
*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
時刻 𝑡 における入力
中間層
Convolutional Neural Network(CNN)
• 畳み込み層、プーリング層を積み重ねた構造を持つNN
• データの空間的な情報を考慮することが可能 → 画像と相性が良い
• 入力に近い層は局所的な特徴を学習し
深くなるに従って大局的な特徴を学習すると考えられている
22
= 4
= 7
*1
*1 LeCun et al., Gradient-Based Learning Applied to Document Recognition (1998)
畳み込み
プーリング
畳み込み
プーリング
全結合
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)
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
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
• 試行錯誤を通して行動を最適化する機械学習手法
• 正解は与えず、行動した結果に対して報酬(行動の”良さ”)を
与え、報酬を最大化するような(適切な)行動を学習させる
強化学習(Reinforcement Learning)
26
環境
(行動の対象)
状態の観測・行動
報酬
エージェント
• 試行錯誤を通して行動を最適化する機械学習手法
• 正解は与えず、行動した結果に対して報酬(行動の”良さ”)を
与え、報酬を最大化するような(適切な)行動を学習させる
機械学習の大分類
• 教師あり学習 入力と出力(正解)のペアが与えられる
• 教師なし学習 入力のパターンや特性を学習
• 強化学習 正解は与えられず、
入力に対する出力(正解)の関係を経験から学習
強化学習(Reinforcement Learning)
27
環境
(行動の対象)
状態の観測・行動
報酬
エージェント
• 試行錯誤を通して行動を最適化する機械学習手法
• 正解は与えず、行動した結果に対して報酬(行動の”良さ”)を
与え、報酬を最大化するような(適切な)行動を学習させる
• よく出る例・・・迷路探索
• 現在位置を観測 → 移動を繰り返す
• ゴールしたら or ゴールに近づいたら
一連の行動に報酬を与える
• 利用例
• Deep-Q-Network(DQN) :レトロゲームのプレイで人間より高スコア
• AlphaGo :世界最強の棋士 イ・セドル に勝利
強化学習(Reinforcement Learning)
*1 大槻 友史, 迷路の強化学習
http://home.q00.itscom.net/otsuki/迷路の強化学習.pdf
*1
28
環境
(行動の対象)
状態の観測・行動
報酬
エージェント
進化的アルゴリズム
• 生物の進化 (適者生存) に着想を得た最適化アルゴリズム
• 解の候補 :個体 (individual)
個体の集合 :個体群(population)
個体の評価 :適応度(fitness)
個体への操作:交叉(掛け合わせ)・突然変異 など
• 流れ
• 個体群 の初期化・評価
• 以下を繰り返す
• 現世代の 個体群 から 子個体を生成
• 子個体を評価
• 次世代に残す個体を選択
• 利用例
• 新幹線 N700系 フロントノーズの設計
• 国産ジェット機 MRJ の翼状設計
29
交叉・突然変異
世代 𝑡
子個体
進化的アルゴリズム
• 生物の進化 (適者生存) に着想を得た最適化アルゴリズム
• 解の候補 :個体 (individual)
個体の集合 :個体群(population)
個体の評価 :適応度(fitness)
個体への操作:交叉(掛け合わせ)・突然変異 など
• 流れ
• 個体群 の初期化・評価
• 以下を繰り返す
• 現世代の 個体群 から 子個体を生成
• 子個体を評価
• 次世代に残す個体を選択
• 利用例
• 新幹線 N700系 フロントノーズの設計
• 国産ジェット機 MRJ の翼状設計
30
交叉・突然変異
生存
世代 𝑡 + 1
子個体
世代 𝑡
ノーフリーランチ定理 (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
ノーフリーランチ定理 (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
残念ながら(?) 数学的に証明されてしまっている
ノーフリーランチ定理 (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
問題の種類
性能
汎用的なアルゴリズム
特定の問題に特化したアルゴリズム
34
なぜ “AI が AI を生み出す” 必要があるのか?
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
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
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
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
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
本日のターゲット
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
本日のターゲット
専門家の試行錯誤によって様々な構造が提案されてきた
ハイパーパラメータ
• パラメータのパラメータ
• パラメータ:機械学習で学習させる
• 重み
• ハイパーパラメータ:機械学習で学習されない
• 学習対象の“あり方”を決める
• (通常)人間があらかじめ決めなくてはならない
• 設定によって性能が大きく変わる
41
NNのハイパーパラメータの例
• 最適化のハイパーパラメータ
• 初期学習率、学習率のスケジューリング(減衰のさせ方)
• ミニバッチサイズ
• 学習回数
• モデル(構造)のハイパーパラメータ
• 層数、隠れ層のノード数
• ノード・層間の接続方法(順伝播、再帰構造、スキップ、etc…)
• 活性化関数
• その他
• 乱数シード
• 重みの初期値
• CNN特有
• フィルタの大きさ(幅×高さ)・数・Strideの大きさ
• プーリングの大きさ(幅×高さ)・Strideの大きさ
42
NNのハイパーパラメータの例
• 最適化のハイパーパラメータ
• 初期学習率、学習率のスケジューリング(減衰のさせ方)
• ミニバッチサイズ
• 学習回数
• モデル(構造)のハイパーパラメータ
• 層数、隠れ層のノード数
• ノード・層間の接続方法(順伝播、再帰構造、スキップ、etc…)
• 活性化関数
• その他
• 乱数シード
• 重みの初期値
• CNN特有
• フィルタの大きさ(幅×高さ)・数・Strideの大きさ
• プーリングの大きさ(幅×高さ)・Strideの大きさ
43
CNN特有のパラメータだけでも、組み合わせは膨大
CNNにおける構造の重要性
• 基本的な構成要素は同じでも構造を改良して性能を向上
• 構成要素の例:畳み込み層・プーリング層・層間の接続
• 改良点の例 :層の数・大きさの変更、層の並列化、層間の接続スキップ
44
*1 CS231n: Convolutional Neural Networks for Visual Recognition, Lecture 9, p.83
http://cs231n.stanford.edu/slides/2017/cs231n_2017_lecture9.pdf
CNNにおける構造の重要性
• 基本的な構成要素は同じでも構造を改良して性能を向上
• 構成要素の例:畳み込み層・プーリング層・層間の接続
• 改良点の例 :層の数・大きさの変更、層の並列化、層間の接続スキップ
45
*1 CS231n: Convolutional Neural Networks for Visual Recognition, Lecture 9, p.83
http://cs231n.stanford.edu/slides/2017/cs231n_2017_lecture9.pdf
CNN の構造を AI で自動設計させたい!
“AI が AIを生み出す” 事例紹介
46
本日紹介する “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
本日紹介する “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の構造の自動設計を試みた事例を紹介します
本日紹介する “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
強化学習でCNNの構造を学習
Designing Neural Network Architectures using Reinforcement Learning
• 強化学習を使って CNNの層を選択し積み重ねていく
50
①
ネットワーク構造を決める
“経路” を探索
②
“経路” を通って得られた
ネットワークを学習し、性能を評価
③
性能の評価を元に
“経路”の優先度を更新
①に戻る
強化学習の枠組み
強化学習でCNNの構造を学習
Designing Neural Network Architectures using Reinforcement Learning
• 経路にあるノードがCNNの構成要素になっている
51
経路にあるノード:CNNの1層あたりの設定
経路:CNNの構造
経路の評価:① CNNを訓練データで学習させる
② 検証データで性能を評価 = 経路にあるノードの評価を更新
強化学習でCNNの構造を学習
Designing Neural Network Architectures using Reinforcement Learning
• 経路にあるノードがCNNの構成要素になっている
52
経路にあるノード:CNNの1層あたりの設定
経路:CNNの構造
経路の評価:① CNNを訓練データで学習させる
② 検証データで性能を評価 = 経路にあるノードの評価を更新
強化学習でCNNの構造を学習
Designing Neural Network Architectures using Reinforcement Learning
• 経路にあるノードがCNNの構成要素になっている
53
経路にあるノード:CNNの1層あたりの設定
経路:CNNの構造
経路の評価:① CNNを訓練データで学習させる
② 検証データで性能を評価 = 経路にあるノードの評価を更新
強化学習でCNNの構造を学習
Designing Neural Network Architectures using Reinforcement Learning
• 経路にあるノードの設定
• 1層ごとに 全ての組み合わせのノードが存在
※実際には、いくつかの制約をかけている(例:FC層からはFC層にだけ遷移可)
• 最大で 12 層まで
54
強化学習でCNNの構造を学習
Designing Neural Network Architectures using Reinforcement Learning
• 結果(画像分類タスク)
• 畳み込み・プーリング・全結合層だけから構成されている、
人間が設計した CNN より高性能
• 複雑な構造(スキップ接続など)を持つ CNN と比べても遜色ない性能
55
本日紹介する “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
進化的アルゴリズムでCNNの構造を学習
Large Scale Evolution of Image Classifiers
• 進化的アルゴリズムを使って CNNの構造を進化させる
• 畳み込み層の無い 1 層のCNNからスタート
• 以下の例では、最終的に 13 層程度の構造まで進化している
57
進化的アルゴリズムでCNNの構造を学習
Large Scale Evolution of Image Classifiers
• ネットワーク構造を突然変異させて進化させる
• 交叉(2つの構造を掛け合わせる操作)は使用しない
• 事前に定義した突然変異
• 学習率を変える
• 構造を変えない(もう一度学習させる)
• 重みを初期化する
• 畳み込み層を追加する
• 畳み込み層を取り除く
• フィルタのスライド幅を変化させる
• フィルタのサイズを変化させる
• 接続を追加する
• スキップ接続を追加する
• スキップ接続を取り除く
58
進化的アルゴリズムでCNNの構造を学習
Large Scale Evolution of Image Classifiers
• 流れ
59
worker #1 worker #2 worker #250・・・
Population
1000 個体
(ネットワーク構造の情報と評価値)
Worker : 個体を進化させる役割
① Population から2 個体をランダムで選択
② 評価値の高い個体を親とし、もう一方は個体群から削除
③ 親を突然変異させて子を生成、学習用データで学習させる
④ 検証用データで子の分類精度を評価
⑤ Population に 親と子を戻す
進化的アルゴリズムで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%
本日紹介する “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
進化的アルゴリズムでCNNの構造を学習
A Genetic Programming Approach to Designing Convolutional Neural Network Architectures
• 遺伝的プログラミング(進化的アルゴリズムの一手法)でCNNの構造を設計
• 層の種類 と 接続関係 の組み合わせを最適化
62
層の種類 :C0(1引数の層)
接続元ノード1:0(入力画像)
接続元ノード2:2(1引数の層のため使われない)
進化的アルゴリズムで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
進化的アルゴリズムでCNNの構造を学習
A Genetic Programming Approach to Designing Convolutional Neural Network Architectures
• あらかじめ、有用な構造を部品として用意
• ResNet の Residual Block
• 小規模な実行設定
• 個体数:2( 1 個体から 2 個体生成 → 評価 → 1 個体残す)
• GPU 2枚
64
進化的アルゴリズムでCNNの構造を学習
A Genetic Programming Approach to Designing Convolutional Neural Network Architectures
• 結果(CIFAR-10 分類タスク)
• 人間が設計した CNN と同等以上の性能
• 他の構造最適化手法(Large-scale Evolution など)と比較して
• 精度は劣る場合もあるが、圧倒的に使用している資源が少ない
65
進化的アルゴリズムでCNNの構造を学習
A Genetic Programming Approach to Designing Convolutional Neural Network Architectures
• 獲得された構造
66
本日紹介する “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
RNN + 強化学習 でCNNの構造を学習
Neural Architecture Search with Reinforcement Learning
• CNNの構造を表す記号列をRNNに生成させる
• 記号列
[フィルタの数、フィルタの大きさ、フィルタのスライド幅、フィルタの数、フィルタの大きさ、・・・]
• “フィルタの数” を生成したら、その情報が次の
“フィルタの高さ” を生成するための情報として使われる
68
1層分の情報
RNN + 強化学習 でCNNの構造を学習
Neural Architecture Search with Reinforcement Learning
• スキップ接続も考慮できるように改良
69
RNN + 強化学習 でCNNの構造を学習
Neural Architecture Search with Reinforcement Learning
• 他の手法と同様に 並列・分散化して学習
• 1つの子の学習に数時間ほどかけるため
70
RNN + 強化学習 でCNNの構造を学習
Neural Architecture Search with Reinforcement Learning
• 結果(CIFAR-10 分類タスク)
• 人間が設計した CNN と同等以上の性能
71
RNN + 強化学習 でCNNの構造を学習
Neural Architecture Search with Reinforcement Learning
• 獲得された構造
• 以下の2つは探索範囲から除外
• フィルタのスライド幅
• プーリング層
• スキップ接続が多用されている
• 私見)
• こんな構造を人手で
発見するのはほぼ不可能!
72
73
人類の最新手法を超えてしまった事例
人類の最新手法を超えてしまった事例
• Zoph et al., Learning Transferable Architectures for Scalable Image Recognition (2017)
• ImageNetの分類タスクにおいて、RNN + 強化学習 の手法を
改良し、生み出した構造 (NASNet) が 人類の最新手法の性能を超えてしまった
74
計算量・パラメータ数 も少ない
• これまで人間が設計してきたものより効率的な構造を獲得
• 精度に対する積和演算数
• 精度に対するパラメータ数
75
しかし・・・
• ここまで意図的に避けてきた話題があります
76
しかし・・・
• ここまで意図的に避けてきた話題があります
77
学習コスト
本日紹介した “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日間
本日紹介した “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日間
ハードウェアの性能向上によって更なる発展が期待できる
80
まとめ
まとめ
• AI が AI を生み出す
• 親AI は、子AI を生成する
• 親AI は、より性能の良い 子AI を生成できるように学習する
• 子AI は、通常の機械学習手法と同様に学習し、評価される
• なぜ必要?
• AI の設計は 専門知識や大量の試行錯誤が必要で難しい
→ 機械に自動設計させてラクをしよう!
• “AI が AI を生み出す” 事例
• 強化学習 や 進化的アルゴリズムを用いた AI の自動設計
• 画像分類・認識等に用いる Convolutional Neural Network を設計
• 人間が設計したモデルと同程度以上の性能を達成
• 学習にコストがかかる!(いわゆる“札束で殴りあう”世界)
81
82
ありがとうございました!

Más contenido relacionado

La actualidad más candente

La actualidad más candente (7)

AutoAugment:Learning AUgmentation Policies from Data
AutoAugment:Learning AUgmentation Policies from DataAutoAugment:Learning AUgmentation Policies from Data
AutoAugment:Learning AUgmentation Policies from Data
 
CS立体図とディープラーニングによる崩落地形予想について
CS立体図とディープラーニングによる崩落地形予想についてCS立体図とディープラーニングによる崩落地形予想について
CS立体図とディープラーニングによる崩落地形予想について
 
Feature Generationg Networks for Zero-Shot Learning 論文紹介
Feature Generationg Networks for Zero-Shot Learning 論文紹介Feature Generationg Networks for Zero-Shot Learning 論文紹介
Feature Generationg Networks for Zero-Shot Learning 論文紹介
 
Rethinking Knowledge Graph Propagation for Zero-Shot Learinig 論文紹介
Rethinking Knowledge Graph Propagation for Zero-Shot Learinig 論文紹介Rethinking Knowledge Graph Propagation for Zero-Shot Learinig 論文紹介
Rethinking Knowledge Graph Propagation for Zero-Shot Learinig 論文紹介
 
[DL輪読会]Object-Oriented Dynamics Predictor (NIPS 2018)
[DL輪読会]Object-Oriented Dynamics Predictor (NIPS 2018)[DL輪読会]Object-Oriented Dynamics Predictor (NIPS 2018)
[DL輪読会]Object-Oriented Dynamics Predictor (NIPS 2018)
 
生活支援ロボットにおける 大規模データ収集に向けて
生活支援ロボットにおける大規模データ収集に向けて生活支援ロボットにおける大規模データ収集に向けて
生活支援ロボットにおける 大規模データ収集に向けて
 
【CVPR 2020 メタサーベイ】Image and Video Synthesis_Group14.1
【CVPR 2020 メタサーベイ】Image and Video Synthesis_Group14.1【CVPR 2020 メタサーベイ】Image and Video Synthesis_Group14.1
【CVPR 2020 メタサーベイ】Image and Video Synthesis_Group14.1
 

Similar a AIがAIを生み出す?

Similar a AIがAIを生み出す? (20)

Deep learningの概要とドメインモデルの変遷
Deep learningの概要とドメインモデルの変遷Deep learningの概要とドメインモデルの変遷
Deep learningの概要とドメインモデルの変遷
 
Infer.NETを使ってLDAを実装してみた
Infer.NETを使ってLDAを実装してみたInfer.NETを使ってLDAを実装してみた
Infer.NETを使ってLDAを実装してみた
 
【Deep Learning】AlexNetの解説&実装 by PyTorch (colabリンク付き)
【Deep Learning】AlexNetの解説&実装 by PyTorch (colabリンク付き)【Deep Learning】AlexNetの解説&実装 by PyTorch (colabリンク付き)
【Deep Learning】AlexNetの解説&実装 by PyTorch (colabリンク付き)
 
20150930
2015093020150930
20150930
 
畳み込みニューラルネットワークの高精度化と高速化
畳み込みニューラルネットワークの高精度化と高速化畳み込みニューラルネットワークの高精度化と高速化
畳み込みニューラルネットワークの高精度化と高速化
 
[DL Hacks 実装]StyleNet: Generating Attractive Visual Captions with Styles
[DL Hacks 実装]StyleNet: Generating Attractive Visual Captions with Styles[DL Hacks 実装]StyleNet: Generating Attractive Visual Captions with Styles
[DL Hacks 実装]StyleNet: Generating Attractive Visual Captions with Styles
 
ICML2017 参加報告会 山本康生
ICML2017 参加報告会 山本康生ICML2017 参加報告会 山本康生
ICML2017 参加報告会 山本康生
 
運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]
運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]
運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]
 
[DL輪読会]Meta-Learning Probabilistic Inference for Prediction
[DL輪読会]Meta-Learning Probabilistic Inference for Prediction[DL輪読会]Meta-Learning Probabilistic Inference for Prediction
[DL輪読会]Meta-Learning Probabilistic Inference for Prediction
 
人工知能技術を用いた各医学画像処理の基礎 (2022/09/09)
人工知能技術を用いた各医学画像処理の基礎 (2022/09/09)人工知能技術を用いた各医学画像処理の基礎 (2022/09/09)
人工知能技術を用いた各医学画像処理の基礎 (2022/09/09)
 
ae-10. 中間まとめ(ディープラーニング)
ae-10. 中間まとめ(ディープラーニング)ae-10. 中間まとめ(ディープラーニング)
ae-10. 中間まとめ(ディープラーニング)
 
CNNの構造最適化手法(第3回3D勉強会)
CNNの構造最適化手法(第3回3D勉強会)CNNの構造最適化手法(第3回3D勉強会)
CNNの構造最適化手法(第3回3D勉強会)
 
[DL輪読会]Auto-DeepLab: Hierarchical Neural Architecture Search for Semantic Ima...
[DL輪読会]Auto-DeepLab: Hierarchical Neural Architecture Search for Semantic Ima...[DL輪読会]Auto-DeepLab: Hierarchical Neural Architecture Search for Semantic Ima...
[DL輪読会]Auto-DeepLab: Hierarchical Neural Architecture Search for Semantic Ima...
 
[論文紹介] Convolutional Neural Network(CNN)による超解像
[論文紹介] Convolutional Neural Network(CNN)による超解像[論文紹介] Convolutional Neural Network(CNN)による超解像
[論文紹介] Convolutional Neural Network(CNN)による超解像
 
NeurIPS2019参加報告
NeurIPS2019参加報告NeurIPS2019参加報告
NeurIPS2019参加報告
 
「解説資料」ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
「解説資料」ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation 「解説資料」ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
「解説資料」ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
 
【DL輪読会】ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
【DL輪読会】ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation【DL輪読会】ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
【DL輪読会】ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
 
2018/6/26 deep learning Neural Network Console hands-on
2018/6/26 deep learning Neural Network Console hands-on2018/6/26 deep learning Neural Network Console hands-on
2018/6/26 deep learning Neural Network Console hands-on
 
[DL輪読会]Learning convolutional neural networks for graphs
[DL輪読会]Learning convolutional neural networks for graphs[DL輪読会]Learning convolutional neural networks for graphs
[DL輪読会]Learning convolutional neural networks for graphs
 
[DL輪読会]Deep Face Recognition: A Survey
[DL輪読会]Deep Face Recognition: A Survey[DL輪読会]Deep Face Recognition: A Survey
[DL輪読会]Deep Face Recognition: A Survey
 

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
  • 11. 分類タスクでの例 • 一般的な学習 学習の仕方:人間が分類モデルを設計 学習: 入力データを分類できるように分類モデルの パラメータを調節(例:NNの重み 𝒘 など) • メタ学習 学習の仕方:入力データや過去の学習結果をもとに 分類モデルを 選択 or 生成 学習: 入力データを分類できるように分類モデルの パラメータを調節 ※ ここは一般的な学習と一緒 11
  • 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
  • 27. • 試行錯誤を通して行動を最適化する機械学習手法 • 正解は与えず、行動した結果に対して報酬(行動の”良さ”)を 与え、報酬を最大化するような(適切な)行動を学習させる 機械学習の大分類 • 教師あり学習 入力と出力(正解)のペアが与えられる • 教師なし学習 入力のパターンや特性を学習 • 強化学習 正解は与えられず、 入力に対する出力(正解)の関係を経験から学習 強化学習(Reinforcement Learning) 27 環境 (行動の対象) 状態の観測・行動 報酬 エージェント
  • 28. • 試行錯誤を通して行動を最適化する機械学習手法 • 正解は与えず、行動した結果に対して報酬(行動の”良さ”)を 与え、報酬を最大化するような(適切な)行動を学習させる • よく出る例・・・迷路探索 • 現在位置を観測 → 移動を繰り返す • ゴールしたら or ゴールに近づいたら 一連の行動に報酬を与える • 利用例 • Deep-Q-Network(DQN) :レトロゲームのプレイで人間より高スコア • AlphaGo :世界最強の棋士 イ・セドル に勝利 強化学習(Reinforcement Learning) *1 大槻 友史, 迷路の強化学習 http://home.q00.itscom.net/otsuki/迷路の強化学習.pdf *1 28 環境 (行動の対象) 状態の観測・行動 報酬 エージェント
  • 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 問題の種類 性能 汎用的なアルゴリズム 特定の問題に特化したアルゴリズム
  • 34. 34 なぜ “AI が AI を生み出す” 必要があるのか?
  • 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 本日のターゲット 専門家の試行錯誤によって様々な構造が提案されてきた
  • 41. ハイパーパラメータ • パラメータのパラメータ • パラメータ:機械学習で学習させる • 重み • ハイパーパラメータ:機械学習で学習されない • 学習対象の“あり方”を決める • (通常)人間があらかじめ決めなくてはならない • 設定によって性能が大きく変わる 41
  • 42. NNのハイパーパラメータの例 • 最適化のハイパーパラメータ • 初期学習率、学習率のスケジューリング(減衰のさせ方) • ミニバッチサイズ • 学習回数 • モデル(構造)のハイパーパラメータ • 層数、隠れ層のノード数 • ノード・層間の接続方法(順伝播、再帰構造、スキップ、etc…) • 活性化関数 • その他 • 乱数シード • 重みの初期値 • CNN特有 • フィルタの大きさ(幅×高さ)・数・Strideの大きさ • プーリングの大きさ(幅×高さ)・Strideの大きさ 42
  • 43. NNのハイパーパラメータの例 • 最適化のハイパーパラメータ • 初期学習率、学習率のスケジューリング(減衰のさせ方) • ミニバッチサイズ • 学習回数 • モデル(構造)のハイパーパラメータ • 層数、隠れ層のノード数 • ノード・層間の接続方法(順伝播、再帰構造、スキップ、etc…) • 活性化関数 • その他 • 乱数シード • 重みの初期値 • CNN特有 • フィルタの大きさ(幅×高さ)・数・Strideの大きさ • プーリングの大きさ(幅×高さ)・Strideの大きさ 43 CNN特有のパラメータだけでも、組み合わせは膨大
  • 44. CNNにおける構造の重要性 • 基本的な構成要素は同じでも構造を改良して性能を向上 • 構成要素の例:畳み込み層・プーリング層・層間の接続 • 改良点の例 :層の数・大きさの変更、層の並列化、層間の接続スキップ 44 *1 CS231n: Convolutional Neural Networks for Visual Recognition, Lecture 9, p.83 http://cs231n.stanford.edu/slides/2017/cs231n_2017_lecture9.pdf
  • 45. CNNにおける構造の重要性 • 基本的な構成要素は同じでも構造を改良して性能を向上 • 構成要素の例:畳み込み層・プーリング層・層間の接続 • 改良点の例 :層の数・大きさの変更、層の並列化、層間の接続スキップ 45 *1 CS231n: Convolutional Neural Networks for Visual Recognition, Lecture 9, p.83 http://cs231n.stanford.edu/slides/2017/cs231n_2017_lecture9.pdf CNN の構造を AI で自動設計させたい!
  • 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を訓練データで学習させる ② 検証データで性能を評価 = 経路にあるノードの評価を更新
  • 54. 強化学習でCNNの構造を学習 Designing Neural Network Architectures using Reinforcement Learning • 経路にあるノードの設定 • 1層ごとに 全ての組み合わせのノードが存在 ※実際には、いくつかの制約をかけている(例:FC層からはFC層にだけ遷移可) • 最大で 12 層まで 54
  • 55. 強化学習でCNNの構造を学習 Designing Neural Network Architectures using Reinforcement Learning • 結果(画像分類タスク) • 畳み込み・プーリング・全結合層だけから構成されている、 人間が設計した CNN より高性能 • 複雑な構造(スキップ接続など)を持つ CNN と比べても遜色ない性能 55
  • 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
  • 57. 進化的アルゴリズムでCNNの構造を学習 Large Scale Evolution of Image Classifiers • 進化的アルゴリズムを使って CNNの構造を進化させる • 畳み込み層の無い 1 層のCNNからスタート • 以下の例では、最終的に 13 層程度の構造まで進化している 57
  • 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
  • 66. 進化的アルゴリズムでCNNの構造を学習 A Genetic Programming Approach to Designing Convolutional Neural Network Architectures • 獲得された構造 66
  • 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