31
Learning to learn by gradient descent by gradient descent @NIPS2016読み会 発表者 福田 宏幸

Learning to learn by gradient descent by gradient descent

Embed Size (px)

Citation preview

Page 1: Learning to learn by gradient descent by gradient descent

Learning to learn by gradient descent by gradient descent

@NIPS2016読み会

発表者 福田 宏幸

Page 2: Learning to learn by gradient descent by gradient descent

自己紹介

福田 宏幸

2000年4月 (株)電通 入社 コピーライター

2016年7月 (株)電通デジタル 出向

2016年9月 東京大学新領域創成科学研究科

博士課程1年

専門:バイオインフォマティクス

Page 3: Learning to learn by gradient descent by gradient descent

イントロダクション

Page 4: Learning to learn by gradient descent by gradient descent

本論文の要旨

Deep Learningが

学習法の学習も手に入れた。

Page 5: Learning to learn by gradient descent by gradient descent

学習法の学習?

• Deep Learningの成功=特徴量の自動学習

• しかし、 学習アルゴリズム(SGD等の最適化アルゴリズム)の設計は、未だ人間。

• 本論文では、学習アルゴリズム自体をディープラーニングで学習する方法を提案。

Page 6: Learning to learn by gradient descent by gradient descent

Alpha GoのDeepMind社の論文

Page 7: Learning to learn by gradient descent by gradient descent

著者のNIPSでの講演

https://www.youtube.com/watch?v=tPWGGwmgwG0

Page 8: Learning to learn by gradient descent by gradient descent
Page 9: Learning to learn by gradient descent by gradient descent

Deep Learningにおける学習

• コスト関数の設定 二乗誤差 クロスエントロピー

• 高次元、非凸関数。

• 勾配降下法(Gradient Descent)等により コスト関数を最小にするパラメーターを探索

Page 10: Learning to learn by gradient descent by gradient descent

勾配降下法(Gradient Descent)

• 傾きに沿ってパラメーターθを更新していく

• α:学習率 αが大きすぎる:振動する。 αが小さすぎる:更新が遅い。

http://prog3.com/sbdm/blog/google19890102/article/details/50276775

Page 11: Learning to learn by gradient descent by gradient descent

発展形

• パラメーターの更新の仕方がそれぞれ違う

• Adagrad(2011)

• RMSprop(2012)

• ADAM(2015)

http://postd.cc/optimizing-gradient-descent/#fnref:3

Page 12: Learning to learn by gradient descent by gradient descent

http://postd.cc/optimizing-gradient-descent/#fnref:3

Page 13: Learning to learn by gradient descent by gradient descent

学習法を学習する

Page 14: Learning to learn by gradient descent by gradient descent

何を学習すればよいのか?

• 更新量をディープラーニングが学習

• Optimizee: f(θ) 学習したい問題の誤差関数 Optimizer: g(φ) 更新量を出力するNN

Gradient Descent

Learning to Learn

Page 15: Learning to learn by gradient descent by gradient descent

誤差関数をどう定義するか?

• 「良い最適化」を定義したい

• 確率分布に従って生成された誤差関数を平均的に最適化する

θ*(f,φ) 最適化されたパラメータ

Page 16: Learning to learn by gradient descent by gradient descent

誤差関数をどう定義するか?

• 勾配の時系列を扱えるように定式化

• m:LSTM :時刻tの勾配 :時刻tの状態

:ウエイト。論文では1を使用。

Page 17: Learning to learn by gradient descent by gradient descent

ネットワーク

• LSTMに、時刻tでの勾配を入力していく。

※LSTMの方のパラメーター最適化は、Adam。

Page 18: Learning to learn by gradient descent by gradient descent

• 計算量を減らすために、それぞれのパラメータについて独立に更新していく。 (LSTMの重みのみ共通)

Coordinatewise LSTM

Page 19: Learning to learn by gradient descent by gradient descent

実験結果

Page 20: Learning to learn by gradient descent by gradient descent

実験

• Quadratic

• MNIST

• CIFAR10

• DEEP ART

Page 21: Learning to learn by gradient descent by gradient descent

• Optimizeeが、二次関数。

• Wとyの値をサンプリングで生成し、学習。

• 他のアルゴリズムに比べて早く収束。

Quadratic Function

Page 22: Learning to learn by gradient descent by gradient descent

MNIST

• 同じく早く収束。

• テスト時の活性化関数を ReLUに変えると収束しない。

Page 23: Learning to learn by gradient descent by gradient descent

MNIST

• 最終的な誤差の値も少さい。

Page 24: Learning to learn by gradient descent by gradient descent

CIFAR10

• CNNでも実験。 (3layers, 32hidden units)

• 畳込み層と全結合層では重みを共有しない。

• CIFAR5、CIFAR2への転移学習も上手くいく。

Page 25: Learning to learn by gradient descent by gradient descent

DEEP ART

• 1800の画像と、1つのスタイルを学習。

Page 26: Learning to learn by gradient descent by gradient descent

DEEP ART

• 高解像度画像への転移学習。 64×64pixels→128×128pixels

Page 27: Learning to learn by gradient descent by gradient descent

DEEP ART

• ディープラーニングが問題を 上手く一般化できている。

Page 28: Learning to learn by gradient descent by gradient descent

まとめ

Page 29: Learning to learn by gradient descent by gradient descent

まとめ

• ディープラーニングにより、学習アルゴリズム自体を学習する方法を提案

• 既存の最適化手法を上回る精度を得た。

• 問題の構造を上手く一般化することができた。

Page 30: Learning to learn by gradient descent by gradient descent

個人的感想

• 結局チューニングがありそう。

• 大きなデータセット、ネットワー?

• データマイニングのコンペティションで試してみたい。