47
Deep Learning のののののの PFI の のののの のの のの 2013 の 6 の 6 の

Deep Learningの技術と未来

Embed Size (px)

DESCRIPTION

PFIセミナー2013年6月6日分です。Deep Learningの技術的基礎からBengioの怪しげな妄想まで。

Citation preview

Page 1: Deep Learningの技術と未来

Deep Learning の技術と未来

PFI 全体セミナー

得居 誠也  2013 年 6 月 6 日

Page 2: Deep Learningの技術と未来

2

先週は「一般向けの Deep Learning 」でした

http://www.slideshare.net/pfi/deep-learning-22350063

Page 3: Deep Learningの技術と未来

もくじ

多層モデルとニューラルネットワーク 学習手法 過学習への対策 事前知識の活用、獲得 より複雑なタスクを解くには まとめ

今日は Deep Learning の技術について話します。

3

Page 4: Deep Learningの技術と未来

Section 1

多層モデルとニューラルネットワーク 学習手法 過学習への対策 事前知識の活用、獲得 より複雑なタスクを解くには まとめ

4

Page 5: Deep Learningの技術と未来

1 層のモデル

5

入力ベクトル 出力

• 各出力ユニットは、単純な関数で表される• 例 : 線形分類器

入力ユニット

出力ユニット

Page 6: Deep Learningの技術と未来

2 層のモデル

6

• 1 層目の出力ユニットが 2 層目の入力になる• 例 : 多層パーセプトロン、

   Random Forest 、カーネル分類器

Page 7: Deep Learningの技術と未来

深層モデル

7

• 3 層以上が重なったモデル• 文脈によっては 2 層でも Deep と言ったりまちまち• 例 : Deep Neural Network 、

   Random Recursive SVMs [Vinyals+, ‘12]

隠れユニット

Page 8: Deep Learningの技術と未来

深層ニューラルネットワークDeep Neural Network (DNN)

8

隠れ層

• 各層 : 線形演算→非線形関数

• 関数 を活性化関数という

• バイアス項もよく使う: 学習するべきパラメータ

Page 9: Deep Learningの技術と未来

活性化関数いろいろ

9

シグモイド関数 , tanh昔から使われているサチると学習が止まる( 勾配の消滅 )

Rectified Linear Unit (ReLU)最近流行り , 学習が速い

Maxout( 区分線形凸関数 )ReLU より表現力が高い、勾配が消えない、勾配がスパース

Page 10: Deep Learningの技術と未来

Section 2

多層モデルとニューラルネットワーク 学習手法 過学習への対策 事前知識の活用、獲得 より複雑なタスクを解くには まとめ

10

Page 11: Deep Learningの技術と未来

ニューラルネットワークの学習

11

全体をまとめて と書くことにします

Page 12: Deep Learningの技術と未来

学習 = 最適化

12

• 教師データ が与えられる• 以下を最小化したい。 Loss: 間違うと正になる関数。

Page 13: Deep Learningの技術と未来

確率的勾配降下法Stochastic Gradient Descent (SGD)

各教師データに対して以下を繰り返す

偏微分は誤差逆伝播法 (backpropagation) で計算する

13

Page 14: Deep Learningの技術と未来

誤差逆伝播法Back Propagation (backprop, bprop)

14

• 出力層で Loss の微分を求める• 「行き」と同じ重みで逆向きに計算していく• 各隠れユニットでは活性化関数のかわりに、活性化関数の

微分をかける• 各エッジの勾配 = 入力値 × 出力側の伝播された誤差

( デルタルール )

Page 15: Deep Learningの技術と未来

ロス関数の種類

15

• タスクや出力ユニットの性質によって異なる• 多クラス分類でよく用いられるのはエントロピー誤差• つまり出力層が多クラスのロジスティック回帰

• ( 二乗 ) ヒンジロスの方が精度が上がるという報告も• 出力層が線形 SVM [Tang, ‘13]

Page 16: Deep Learningの技術と未来

SGD とその亜種

Deep Learning ではよく、一度に複数の教師データを使うミニバッチ SGD が用いられる(実装によって速くなる)

単純な SGD より効率的なアルゴリズムが研究されている AdaGrad [Duchi+, ‘10]: パラメータごとに学習率を調節する

これを使ってる論文は多い vSGD [Schaul+, ’13ab]: 二次微分に相当する情報を用いて効率

化する、目的関数の変化に追随する

ギリギリまで精度が欲しい場合、モーメンタムと L2 正則化(重み減衰)を使いながら学習率は手で調節する、という場合も多い(コンテストなどでよく見る)

16

Page 17: Deep Learningの技術と未来

Section 3

多層モデルとニューラルネットワーク 学習手法 過学習への対策 事前知識の活用、獲得 より複雑なタスクを解くには まとめ

17

Page 18: Deep Learningの技術と未来

過学習

教師データに含まれるノイズを学習してしまう 新しい入力データには違うノイズが乗るので、精度が落ちる

モデルの表現力が高いと起きやすい

深層ニューラルネットワークは表現力が非常に高い 過学習もしやすい

一般的な対策 : 正則化 SGD の場合よくやる方法 : 毎回重みに 1 より少し小さな値

(0.9995 とか ) をかける 重み減衰といわれる。 L2 正則化に対応する。

18

Page 19: Deep Learningの技術と未来

Dropout [Hinton+, 2012]

19

Deep Learning に関する最も重要な技術の一つ 学習時、毎回ランダムに選んだ入力・隠れユニットを一旦取り除いて学

習する(サボらせる) ユニット間、パラメータ間の依存関係が減る アンサンブル学習の近似になる

20%50% 50% %: 脱落させる確率

( よく用いられる値 )

Page 20: Deep Learningの技術と未来

Dropout の問題点と改良

Dropout を用いると学習が遅くなる サンプリングが重い たくさん更新しないと学習が進まない

パラメータを半分しか使わない 勾配のバリアンスが大きくなり、更新がノイジーになる

Fast dropout [Wang&Manning, ‘13] ランダムに dropout する部分を積分消去したり、より少ない変数

のサンプリングに帰着させる

20

Page 21: Deep Learningの技術と未来

Fast dropout の実験例 [Wang&Manning, ‘13]

21

Page 22: Deep Learningの技術と未来

Section 4

多層モデルとニューラルネットワーク 学習手法 過学習への対策 事前知識の活用、獲得 より複雑なタスクを解くには まとめ

22

Page 23: Deep Learningの技術と未来

意味のあるデータには構造がある

23

大きなパターンは、小さなパターンを組み合わせたパターンになっている

Page 24: Deep Learningの技術と未来

畳み込みニューラルネットワークConvolutional Neural Network (CNN)

24

畳み込み層 プーリング層

• 近いユニットとしかつながらない(局所受容野)• 同じ色のエッジには同じパラメータを使いまわす• プーリング層では、複数の入力を一つにまとめる( max や L2平均などが主

流)• パラメータ数が減るので学習しやすい、平行移動不変性が得られる• 畳み込み + プーリングで、小さなパターンを学習できる

Page 25: Deep Learningの技術と未来

LeNet-5 [LeCun+, ’98]

25

• 手書き文字認識のデータセット (MNIST) で 99% の精度を出していた• CNN はパラメータが少なく、音声や画像に対する事前知識の入れ方として

とても強力

http://yann.lecun.com/exdb/publis/pdf/lecun-98.pdf

Page 26: Deep Learningの技術と未来

事前学習 : 大量データから事前知識を得るPretraining

26

• 入力データを復元するような重みを学習• 代表的な手法 :

• (Denoising) Auto Encoder [Vincent+, ’08]• ニューラルネットワークとして学習

• Contrastive Divergence [Hinton, ’02]• 確率モデル (RBM) の学習

Denoising Auto Encoder 近くなるように学習

Page 27: Deep Learningの技術と未来

事前学習 : 大量データから事前知識を得るPretraining

27

• 1 層目を学習し終えたら、 1 層目を固定して 2 層目を学習する• これを繰り返して Deep Neural Network の初期重みを決定する

• 過学習が減る、「良い局所解」が得られる

近くなるように学習

固定

Page 28: Deep Learningの技術と未来

Section 5

多層モデルとニューラルネットワーク 学習手法 過学習への対策 事前知識の活用、獲得 より複雑なタスクを解くには まとめ

28

Page 29: Deep Learningの技術と未来

複雑なタスクは直接解けない[Gulcehre&Bengio, 2013]

29

• 表示されたペントミノがすべて同じかどうかの二値分類

• 「ペントミノの検出」と「同じかどうかの判別」という 2 つの非線形タスクの組合せになっている

Page 30: Deep Learningの技術と未来

複雑なタスクは直接解けない[Gulcehre&Bengio, 2013]

30

• 既存の手法では直接解けない

Page 31: Deep Learningの技術と未来

複雑なタスクは直接解けない[Gulcehre&Bengio, 2013]

31

• 既存の手法では直接解けない• ペントミノを検出するタスク ( 教師あり ) を学習して、

できた NN の上に「同じかどうか」の判別タスクを解く NN をのせて学習すると、解ける ( 上図 : IKGNN)

Page 32: Deep Learningの技術と未来

複雑なタスクを解くには、簡単なタスクを与える必要がある カリキュラム学習と呼ばれる [Bengio+, ‘09]

人が勉強するのに似てる 直接解く場合より良い局所解を得る

サブタスクは外から与えなければならない 人間みたいに、サブタスクも自動で与えられないか?

32

Page 33: Deep Learningの技術と未来

33

• 入力を共有している人から、発火している有用なニューロン (=言葉 ) をもらう

• その言葉のニューロンが発火するように NN を学習

推測 : 言葉を介して NN の教師あり学習をする[Bengio, ‘12]

Page 34: Deep Learningの技術と未来

生物的進化と遺伝子、文化的進化とミーム[Bengio, ‘12]

34

生物は遺伝子を使って学習している コピー時にノイズを乗せて探索空間を広げる 2人の遺伝子を混ぜて、組合せ的に探索空間を広げる

人間は「ミーム」を使って学習している ミーム : 文化的進化における「遺伝子」(『利己的な遺伝子』) 言語を通じて知識を交換する 交換時にノイズが乗る : 言葉を自分の NN 上で再学習すると、も

との意味から少しずれる=ノイズ いろんな人からミームを受け取って混ぜる=組み合わせ的な探索

空間の拡大

Page 35: Deep Learningの技術と未来

35

• 良いミームを持った人は長く生き延び、多くの人と交流することでそのミームが優先的に広がる(自然淘汰)

• 一人では到達できない良い局所解を目指す

集団による並列探索[Bengio, ’12]

Page 36: Deep Learningの技術と未来

Section 6

多層モデルとニューラルネットワーク 学習手法 過学習への対策 事前知識の活用、獲得 より複雑なタスクを解くには まとめ

36

Page 37: Deep Learningの技術と未来

まとめ

Deep Learning の技術的基礎について紹介しました 深層モデルとニューラルネットワーク SGD と誤差逆伝播法

良く使われる /有望そうな技術について紹介しました (Fast) Dropout 畳み込みニューラルネット 事前学習

未来の話として、 Bengio の論文群から一部を紹介しました サブタスクの重要性、カリキュラム学習 他の学習者から言語を通じて教師データを受け取る 良い局所解を得るための並列学習とミームによる探索

最新のサーベイは [Bengio, ‘13] にまとまっています

37

Page 38: Deep Learningの技術と未来

Copyright © 2013

Preferred Infrastructure All Right Reserved.

Page 39: Deep Learningの技術と未来

Reference

Bengio, Y., Louradour, J., Collobert, R., Weston, J. Curriculum Learning. ICML, 2009.

Bengio, Y. Evolving Culture vs Local Minima. arXiv, 2012.

Bengio, Y. Deep Learning of Representations: Looking Forward. arXiv, 2013.

Duchi, J., Hazan, E., Singer, Y. Adaptive Subgradient Methods for Online Learning and

Stochastic Optimization. COLT, 2010.

Gulcehre, C., Bengio, Y. Knowledge Matters: Importance of Prior Information for

Optimization. arXiv, 2013.

Hinton, G. E. Training Products of Experts by Minimizing Contrastive Divergence. Neural

Computation, 2002.

Hinton, G. E., Srivastava, N., Krizhevsky, A., Sutskever, I., Salakhutdinov, R. R.

Improving neural networks by preventing co-adaptation of feature detectors. arXiv, 2012.

39

Page 40: Deep Learningの技術と未来

Reference

40

LeCun, Y., Bottou, L., Bengio, Y., Haffner, P. Gradient based learning applied to

document recognition. Proc. IEEE, 1998.

Schaul, T., Zhang, S., LeCun, Y. No More Pesky Learning Rates. ICML, 2013a.

Schaul, T., LeCun, Y. Adaptive learning rates and parallelization for stochastic, sparse,

non-smooth gradients. ICLR, 2013b.

Tang, Y. Deep Learning using Support Vector Machines. arXiv, 2013.

Vincent, P., Larochelle, H., Bengio, Y., Manzagol, P.-A. Extracting and Composing

Robust Features with Denoising Autoencoders. ICML, 2008.

Vinyals, O., Jia, Y., Deng, L., Darrell, T. Learning with Recursive Perceptual

Representations. NIPS, 2012.

Wang, S. I., Manning, C. D. Fast dropout training. ICML, 2013.

Page 41: Deep Learningの技術と未来

付録 : 再帰的ニューラルネットワークRecursive Neural Network [Socher+, ‘11]

41

• 各ノードを同じ次元のベクトルで表現する• 2 つのベクトルを入力として、 1 つのベクトルを

出力するニューラルネットワークを学習する• 勾配計算は木に沿った誤差逆伝播を使う

(Back Propagation through Structure)

Page 42: Deep Learningの技術と未来

付録 : 再帰的ニューラルネットワーク (2)画像の分割 [Socher+, ‘11]

42

Page 43: Deep Learningの技術と未来

付録 : Elman型循環ニューラルネットワークRecurrent Neural Network (Elman Network)[Elman, ‘90]

43

• 系列を順に入力する• 一つ前の入力に対する隠れ層の値を覚えておき、

次の入力のときにそれらも隠れ層への入力として使う• Elman Network ともいう

Page 44: Deep Learningの技術と未来

付録 : Jordan型循環ニューラルネットワークRecurrent Neural Network (Jordan Network)[Jordan, ’86]

44

• 出力層を覚えておき、次のステップで入力として使う

• RNN の最近の応用例 : [Mesnil+, ‘13]

Page 45: Deep Learningの技術と未来

付録 : 循環ニューラルネットワークは深層モデルの一種とみなせる

45

時間方向に展開すると、深層モデルになるt=T-1

t=T

t=T+1

Page 46: Deep Learningの技術と未来

付録 : 循環ニューラルネットワークを用いた文字単位の言語モデルから文章を生成[Sutskever+, ‘11]

46

• 機械学習の論文を読ませた後、” Recurrent” を初期値として文章を生成

Page 47: Deep Learningの技術と未来

付録 : Referrence

47

Elman, J. Finding structure in time. Cognitive Science, 1990.

Jordan, M. Serial order: A parallel distributed processing aproach. Tech. Rep., 1986.

Mesnil, G., He, X., Deng, L., Bengio, Y. Investigation of Recurrent-Neural-Network

Architectures and Learning Methods for Spoken Language Understanding.

INTERSPEECH, 2013.

Socher, R., Lin, C. C.-Y., Ng, A. Y., Manning, C. D. Parsing Natural Scenes and Natural

Language with Recursive Neural Networks. ICML, 2011.

Sutskever, I., Martens, J., Hinton, G. Generating Text with Recurrent Neural Networks.

ICML, 2011.