20170422 数学カフェ part1

62
数学カフェ 「確率・統計・機械学習」 (Part1) 2017年4⽉22⽇数学カフェ Yahoo! Japan コワーキングスペース LODGE 株式会社Preferred Networks ⼤野健太 [email protected]

Upload: kenta-oono

Post on 21-Jan-2018

9.464 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: 20170422 数学カフェ Part1

数学カフェ「確率・統計・機械学習」

(Part1)

2017年4⽉22⽇数学カフェYahoo! Japan コワーキングスペース LODGE

株式会社Preferred Networks ⼤野健太[email protected]

Page 2: 20170422 数学カフェ Part1

⼤野健太

• twitter: @delta2323_

• 経歴• 数学専攻(修⼠) → 2012.4 PFI → 2014.10 PFN

• 担当• バイオプロジェクト• Chainerコアチーム• インターン・採⽤チーム

2

Page 3: 20170422 数学カフェ Part1

• 2014年3⽉設⽴• 本社:東京 アメリカ⼦会社:カリフォルニア州サンマテオ• 社員数:約70名(8割以上はエンジニア・リサーチャー)• 事業内容:深層学習の産業、特に産業⽤ロボット・交通・バイオ

ヘルスケアへの応⽤

3

夏季インターン(5/7締切)フルタイム募集中!

Page 4: 20170422 数学カフェ Part1

4

Page 5: 20170422 数学カフェ Part1

ニューラルネット愛護協会

5

http://bit.ly/dl-spcn

※エイプリルフールネタです

Page 6: 20170422 数学カフェ Part1

アジェンダ

• 導⼊• 機械学習の理論• 深層学習

6

Page 7: 20170422 数学カフェ Part1

⼈⼯知能?

• ロボット?アンドロイド?• 鉄腕アトム・初⾳ミク・Pepper etc. …

• ⽂章を理解する・話し⾔葉を理解する・写真から顔を⾒つける・ゲームの次の⼿を決める・経営をする・⼈間とチャットする・⾞を⾃動運転する・複雑な問題を解く etc. …

• 機械が⼈間のように認識・判断・⾏動するための技術?

• 今⽇はあまり⼈⼯知能の話はしません• ⼈⼯知能を実現するかもしれないと期待されている機械学習・深層学習

技術についてお話しします

photo: flickr

Page 8: 20170422 数学カフェ Part1

なぜ機械学習が必要か?例:⼈物写真から年齢を判定する

• 何を基準に分類する?• ⾝⻑が⾼かったら⼤⼈? ー> そうとも限らない• ⽩髪だったら⾼齢? ー> そうとも限らない• 顔?服装?体格?

• 判断に必要な情報をどうやって抽出する?• ⼈物の写っている位置・スケール・姿勢はバラバラ• 顔・髪・肩が写っている場所をどうやって⾒つける?

• ⼈間がルールを列挙するのは実質的に不可能

8http://how-old.net

Page 9: 20170422 数学カフェ Part1

機械学習によるアプローチ

• 年齢情報のついた画像を機械に⼤量に与えて、それぞれの年代に特徴的な傾向・パターンを機械⾃⾝に発⾒させる

• ⼈間は機械にどの部分を注⽬すべきかを明⽰的には与えない

9

photo: flicker

Page 10: 20170422 数学カフェ Part1

機械学習を⽤いた画像分類

10

ILSVRC2012 Supervison

Krizhevsky, A., Sutskever, I., & Hinton, G. E. (2012). Imagenet classification with deep convolutional neural networks. In Advances in neural information processing systems (pp. 1097-1105).

Page 11: 20170422 数学カフェ Part1

画像認識精度

11http://www.image-net.org/challenges/LSVRC/

Page 12: 20170422 数学カフェ Part1

機械学習・深層学習の応⽤先

画像 ⾳声 動画 ⾃然⾔語 センサー ゲノム 化合物 パケット

分類 回帰 異常検知 ⽣成モデル

クラスタリング

パターン認識 推薦 強化学習

⼈物検出 シーン認識 ゲームAI ⾳声認識 動作認識 ⾔語認識 ⾏動解析 画像⽣成

対話 広告配信 ⾃動運転 医療診断 セキュリティ ロボット マーケ

ティング 翻訳

Page 13: 20170422 数学カフェ Part1

ドローンの運転制御

13

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

Page 14: 20170422 数学カフェ Part1

アジェンダ

• 導⼊• 機械学習の理論

• 定式化• 最適化• 汎化性能

• 深層学習

14

Page 15: 20170422 数学カフェ Part1

参考スライド

15http://www.slideshare.net/irrrrr/2015-46395273

同僚の楠本さんが情報オリンピック春合宿で⾏った講義

Page 16: 20170422 数学カフェ Part1

Toy example• ⾚丸と⿊丸うまく分類したい• 1点 = 1データ• データの情報:x, y座標、⾊

16

●●●

● ●●

●●

●●

●●●

● ●●

●●

●●

●●

→y

→ x

●● : +1

: -1

直線で完全に分類できる 放物線ならば完全に分類できる

Page 17: 20170422 数学カフェ Part1

Toy example

どう直線を引いても分類できない↓

分類間違いが少なくなるように最適な直線を選ぶ

17

●●●

● ●●

●●

●●

考えないといけない問題• どういう分類曲線を引いても良いことにするか?

– 直線に限定する、2次曲線も含めるetc.• 分類間違いをどうやって測るか?「最適」とは何か?• 許される曲線の中で最適なものをどうやって⾒つけるか?

Page 18: 20170422 数学カフェ Part1

機械学習のレシピ

• ⼊⼒:訓練データD = {(x1, y1), (x2, y2), …, (xN, yN)}, xi∈ X = Rd, yi∈ Y = R

• 出⼒:予測モデル未知のデータ x から y を予測するアルゴリズム

• 設計者の⽤意するもの仮説集合 Θ、損失関数 L(x, y; θ)

18

今⽇は頻度論的な⽴場での教師あり学習について説明します

Page 19: 20170422 数学カフェ Part1

機械学習のレシピ1:仮説集合 Θ

各 θ∈Θに、x から y を予測する「予測モデル」を対応させる

設計者が決めること• Θをどういう集合にするか?

• 各 θ にどういう予測モデルを対応させるか?

• 予測モデルが決定的か確率的か?• 決定的:x から y が⼀意的に決まる、つまり関数 f θ: X → Y

• 確率的:決まらない、例えば確率分布 pθ(x, y) や pθ(y | x)

19

Page 20: 20170422 数学カフェ Part1

記号について

今⽇の講演では

f (x, y; θ) と f θ (x, y)p (x, y; θ) と pθ (x, y)

は同じ関数を表しています

20

Page 21: 20170422 数学カフェ Part1

仮説集合の例

例1:直線全体(決定的)

{ l (x1, x2, y) = 1 [y > ax1 + bx2 + c] | (a, b, c)∈ Θ = R3}

例2:指数型分布族(確率的)

{ p (y = 1 | x; θ) = exp (C (x) + θ・F(x) – ψ (θ)) | θ∈ Θ = Rd}

C, F : Rd → Rn, ψ: 分配関数

例3:ニューラルネット(確率的)→詳しく{ p (y = 1 | x; θ) = sigmoid (µ (x; θ)) | θ∈ Θ⊂ Rd } y∈ {±1}

µ は θをパラメータとする決定的な関数(NNとか)

21

1[…]:…が真なら1、そうでないなら-1sigmoid(s) = 1/(1 + exp(-s)) :シグモイド関数

Page 22: 20170422 数学カフェ Part1

ニューラルネットで確率を表現するyが連続値の場合

y = NN (x; θ) + εε ~ N(ε | 0, I)

22

NNx

ε

_ + _ y

p(y | x; θ) = N (y - NN(x; θ) | 0, I)

Page 23: 20170422 数学カフェ Part1

ニューラルネットで確率を表現するyが連続値の場合

µ, σ = NN (x; θ)ε ~ N (ε | 0, 1)y = µ + σ ε

23

NNx

µ

σ

Gauss y

ε

p (y | x; θ) = N (y | µ, σ)

Page 24: 20170422 数学カフェ Part1

ニューラルネットで確率を表現するyが2値の場合

z = NN(x; θ)p(y=1 | x; θ) = sigmoid(z)

24

NNx zsigmoid p

sigmoid(s) = 1/(1 + exp(-s)) :シグモイド関数

Page 25: 20170422 数学カフェ Part1

ニューラルネットで確率を表現するyがK個のカテゴリ値の場合

z = NN(x; θ)∈ RK

P = softmax(z)p (y=k | x; θ) = Pk for k = 1, …, K

25

NNx zsoftmax y

softmax(z) = (p1, . . . , pK)

pi =exp(zi)PKi=1 exp(zi)

Page 26: 20170422 数学カフェ Part1

機械学習のレシピ2:損失関数 L(x, y; θ)

予測モデルの「精度」を測る関数

• L の関数形は設計者次第だが、通常 x に対する予測結果が望ましい結果 y に近いほどL (x, y, θ) が⼩さくなるように定義する

26

Page 27: 20170422 数学カフェ Part1

損失関数の例

例1:Toy example

L(x, y; (a, b, c)) = 1[y^(x) ≠ y], y^(x) = 1[ax1 + bx2 + c > 0]

例2:2乗誤差

L(x, y; θ) = (f (x; θ) – y)2

例3:負の対数尤度(Negative Log Likelihood, NLL)

L(x, y; θ) = - log p(y | x; θ)

27

●●●

● ●●

●●

●●

→x 2

→ x1

Page 28: 20170422 数学カフェ Part1

2乗誤差 =ガウスノイズ + 最尤推定

次のようなモデルを考える

• 仮説集合:{ fθ : X → Y | θ∈ Θ}(決定的な関数)

• 損失関数:L(x, y; θ) = (fθ (x) - y)2(⼆乗誤差)

これは、次のモデルと同等

• 仮説集合:{gθ | gθ = fθ(x) + ε, θ∈ Θ, ε = N(0, 1)}(確率的)

• 損失関数:L(x, y; θ) = - log p(y | gθ(x))(負の対数尤度)

28

Page 29: 20170422 数学カフェ Part1

訓練誤差最⼩化

• 最適化に利⽤できるLの情報は問題設定によって異なる

argminθ ∑i L(xi, yi; θ)θ:パラメータx:⼊⼒ベクトルy:正解ラベルL:損失関数

29

クエリ 使える情報ブラックボックス最適化 (x, y) L(x, y)ニューラルネット (x, y) L(x, y), ∇θL(x, y)

argminθ f (θ):f (θ)を最⼩にするθ

↑あとで

訓練誤差 E^ (θ)という

Page 30: 20170422 数学カフェ Part1

この定式化に乗らない例Generative Adversarial Network (GAN) [Goodfellow+14]⽣成器 Gと識別器 Dからなる

⽣成器は本物のデータと⾒分けがつかない偽データを⽣成するのが⽬標識別器は本物のデータと偽データを区別するのが⽬標

2プレーヤーのmin maxゲームとして定式化される

30

Gen xgenz Dis prob

x

minφmaxθ Ex~D [log Dθ (x)] + Ez~N(0, I) [log (1 – Dθ (Gφ (z)))]

Goodfellow, Ian, et al. "Generative adversarial nets." Advances in neural information processing systems. 2014.

Page 31: 20170422 数学カフェ Part1

GANの⽣成結果

• 正確にはGANの改良版であるWasserstein GAN (WGAN) [Arjovsky+17]の結果

• Wasserstein GANの論⽂では関数空間の位相について議論していて、数学の⼈にも⾯⽩いと思う

31Arjovsky, Martin, Soumith Chintala, and Léon Bottou. "Wasserstein gan." arXiv preprint arXiv:1701.07875 (2017).

Page 32: 20170422 数学カフェ Part1

アジェンダ

• 導⼊• 機械学習の理論

• 定式化• 最適化• 汎化性能

• 深層学習

32

Page 33: 20170422 数学カフェ Part1

⼀番楽な⽅法:解析解が求まる

∇θ E^(θ) = 0 が(θに関する⽅程式として)解析的に計算できるならば、最⼩解を直接計算すれば良い

例:線形モデル + 2乗誤差 + L2 正則化

33

E^(θ) = 1/N ∑i L(xi, yi; θ)

→ E^(θ) の最⼩解は、θ = (XTX + λ)-1XT Y

• x∈ Rd, y∈R, Θ = Rd

• L(x, y; θ) = 1/2 (y – θTx)2 + λ/2 ||θ||22

Page 34: 20170422 数学カフェ Part1

数値最適化

34

argminθ ∑i L(xi, yi; θ)

• ⼀般には解析的には解けないので数値最適化アルゴリズムを利⽤して、最適解に近い解を探索する

• L や Θ の形によって、様々な最適化の⼿法が提案されており、理論的な保証や⼯学的な⼯夫がある

Page 35: 20170422 数学カフェ Part1

勾配降下法 (Gradient Descent, GD)

35

initialize θuntil some criterion is satisfied: θ← θ - η∇θ E^(θ)

output θ η:学習率E^(θ) = 1/N ∑i L(xi, yi; θ)

関数の傾きが最も急な⽅向に少しだけ動く

θt+1

E^

-∇θE^(θ)

θt

Page 36: 20170422 数学カフェ Part1

凸関数

f : Rd →Rが凸関数であるとは任意のa, b∈Rd, t∈[0, 1]に対して、f (ta + (1-t) b)≦ t f (a) + (1-t) f (b)

が成り⽴つこと

36

Page 37: 20170422 数学カフェ Part1

GDの収束の理論保証(凸関数の場合)勾配法による最適化で最適解への収束や、そのスピードを評価できる• 仮説空間がユークリッド空間のコンパクト集合• 損失関数が凸関数でリプシッツ性を持つ

37

厳密に⾔うとparameter averagingした出⼒について証明している

Page 38: 20170422 数学カフェ Part1

Gradient Descentの問題点

• 計算量が重い• 各訓練データに対して勾配を計算するので、計算量はO(訓練データ)

• Saddle pointやlocal minimumにはまる(後半で詳しく)

38

Page 39: 20170422 数学カフェ Part1

Stochastic Gradient Descent (SGD)

39

until some criterion is satisfied: get data (x, y) randomlyθ← θ – η N∇θ L(x, y; θ)

output θ

until some criterion is satisfied: θ← θ - η Σi∇θ L(xi, yi; θ)

output θGD

SGD

Page 40: 20170422 数学カフェ Part1

SGDの収束保証(凸関数)

40

ここが期待値に変わっただけ

Page 41: 20170422 数学カフェ Part1

凸関数の場合

strongly convexを仮定すると、GDによる最適化で、より早いglobal minimumへの収束を証明できる

41

※この定理で証明されているSGDのアルゴリズムでは、学習率ηは⼀定ではなく、イテレーションごとにηt=O(1/t)と変えている

Page 42: 20170422 数学カフェ Part1

アジェンダ

• 導⼊• 機械学習の理論

• 定式化• 最適化• 汎化性能

• 深層学習

42

Page 43: 20170422 数学カフェ Part1

素朴な疑問

こういう分類器を作れば分類精度100% !!

→ あまり良くない

複雑な分類曲線を引ける= 仮説集合 Θ が「⼤きい」= 候補となる予測モデルが多い

43

●●●

● ●●

●●

●●

●●●

● ●●

●●

●●

●●

●●

Page 44: 20170422 数学カフェ Part1

過学習 (Overfitting)

• 機械学習を適⽤したいタスクでは、今⼿元にあるデータだけではなく、未知のデータに対する予測能⼒(汎化能⼒, generalization)を持つようにしたい

• 複雑な仮説集合では、真のデータ分布だけではなく、データとは無関係なノイズもモデリングし、汎化能⼒が得られない

44

https://research.preferred.jp/2010/12/subgradient-optimization-3/

Page 45: 20170422 数学カフェ Part1

過学習

45

qデータ分布

サンプリング(xi, yi) ~ q i.i.d

D ={(xi, yi)i=1,…,n}推定

(訓練誤差最⼩解)

pθ^

訓練データ

学習モデル

データが真のデータ分布 q からi.i.d.でサンプリングされていると仮定する

qとpθ^の乖離が著しいと汎化能⼒が得られない

Page 46: 20170422 数学カフェ Part1

適切な仮説集合の⼤きさ

46

Under fitting

仮説集合が⼩さすぎるとすでにある訓練データを正しく予測できない

Over fitting

仮説集合が⼤きすぎると、訓練データを予測できるが、未知のデータの予測が悪くなる(かもしれない)

Page 47: 20170422 数学カフェ Part1

正則化

予測モデルが持つモデルに適当な制約をかけることにより、過学習を防ぐテクニック

47

E^ (θ) = 1/N ∑i L(xi, yi; θ) + λ ||θ||22

例:L2正則化

訓練誤差にパラメータのノルムに関するペナルティを加えて、モデルのパラメータが⼤きくならないように制約をつける

正則化はとても重要なテクニックで理論的な研究も沢⼭あるのですが、今⽇はあまりお話できません…

Page 48: 20170422 数学カフェ Part1

アジェンダ

• 導⼊• 機械学習の理論• 深層学習

48

Page 49: 20170422 数学カフェ Part1

深層学習(ディープラーニング)

• 機械学習の⼀種• 予測器(先ほどの L)として、⼊⼒データに対して、単純かつ

微分可能な変換を何回も適⽤するモデルを利⽤する

49

http://www.wsdm-conference.org/2016/slides/WSDM2016-Jeff-Dean.pdf

Page 50: 20170422 数学カフェ Part1

深層学習の基本計算

• 下層の⼊⼒ x を重み付きで⾜しあわせ、活性化関数 h をかけて出⼒

50

x1

x2

x3

+1

a

w1

w2

w3

w4h

a = h(x1w1+x2w2+x3w3+w4) = h(wtx)

hの例 ReLU: h(x) = max(0, x)

θ = (w1, w2, w3, w4)

Page 51: 20170422 数学カフェ Part1

Multi Layer Perceptron (MLP)

この計算を何層にも重ねる

51

x1

x2

x3

x4

y

0.3

-0.2

0.4

重み

結合ユニット

アーキテクチャ(ユニット数や層数を指定して、重みは指定しない)

Page 52: 20170422 数学カフェ Part1

深いネットワーク

52http://image-net.org/challenges/talks/ilsvrc2015_deep_residual_learning_kaiminghe.pdf

Page 53: 20170422 数学カフェ Part1

深層学習モデルのパラメータ数

53

Dean, Jeffrey, et al. "Large scale distributed deep networks." Advances in neural information processing systems. 2012. Adam Coates, et al. ICML'13 Proceedings of the 30th International Conference on International Conference on Machine Learning - Volume 28Pages III-1337-III-1345 Shazeer, Noam, et al. "Outrageously large neural networks: The sparsely-gated mixture-of-experts layer." arXiv preprint arXiv:1701.06538 (2017).

[Dean+12]1.7 billion [Adam+13] 11 billion

[Shazeer+17]137 billion

Page 54: 20170422 数学カフェ Part1

学習アルゴリズム(SGD)

ニューラルネットは誤差逆伝播により勾配を効率的に計算できる

54

initialize θuntil convergence:

get data (x, y)θ← θ - η∇θ L(x, y; θ)

η:学習率

← この更新式にはバリエーションがある(あとで)

Page 55: 20170422 数学カフェ Part1

Neural Network as a Computational Graph• 多くのフレームワークでは、NNは計算グラフとして実現される• データノードと計算ノードからなる2部グラフのDAGとして表現す

るのが計算グラフの最も簡単な表現⽅法

55

y = x1 * x2z = y - x3

x1 mul suby

x3

z

x2

データノード

計算ノード

Page 56: 20170422 数学カフェ Part1

順伝播(forward propagation)

56

y = x1 * x2

x1 mul suby

x3

z

x2

z = y - x3

Page 57: 20170422 数学カフェ Part1

連鎖律(Chain Rule)

57

活性の伝播⽅向

エラーの伝播⽅向

x f y

x f y

→ 勾配は活性と逆向きに伝播する

Forward Propagation

損失をLとすると、連鎖律より

Page 58: 20170422 数学カフェ Part1

誤差逆伝播(Backpropagation)

58

y = x1 * x2

* ga is a derivative of z w.r.t. a i.e. ga =∇a z

x1 mul suby

x3

z

x2

z = y - x3

gx1 = gy * x2gx2 = gy * x1 gz = 1

gy = gzgx3 = -gz

gzgy

gx3

gx1

gx2

Page 59: 20170422 数学カフェ Part1

まとめ

• 機械学習では、ルールでは記述できないようなデータの傾向・法則を捉えることで、未知データに対する予測を⾏える事を⽬指します

• 頻度論でのアプローチでの教師あり分類問題は、そのためには仮説集合と損失関数から訓練誤差を定義し、それを最適化するという⾵に定式化できます

• 深層学習では、単純で微分可能な変換を何回も繰り返すモデルを使います。

59

Page 60: 20170422 数学カフェ Part1

後半の内容の予告

60

Page 61: 20170422 数学カフェ Part1

残念なお知らせ:深層学習のモデルが作る損失関数は⾮凸

⼼配事1「勾配法はsaddle pointにはまってしまうのでは!?」

⼼配事2「勾配法ではlocal minimumにしかたどりつけないのでは!?」

• Q. 深層学習のモデルが作る損失関数はどのような形をしているか?• Q. その損失関数の最適化するのに適したアルゴリズムは何か?

61

Page 62: 20170422 数学カフェ Part1

深層学習の汎化性能

深層学習のモデルはとてつもない数のパラメータ数を持つにも関わらず、過学習せずに学習できる(こともある)

深層学習モデルの汎化性能を理論的に説明できないか?

62