Slide 1

Slide 1 text

Deep Learning Book 7.9–7.13 himkt, [email protected] September 2, 2017

Slide 2

Slide 2 text

おしながき Section 7.9 Parameter Tying and Parameter Sharing Section 7.10 Sparse Representations Section 7.11 Bagging and Other Ensemble Method Section 7.12 Dropout Section 7.13 Adversarial Training Section 7.14 Tangent Distance, Tangent Prop, and ManifoldTangent Classifier ここからは全然わからなかったのでメモ程度です 1

Slide 3

Slide 3 text

Section 7.9 Parameter Tying and Parameter Sharing

Slide 4

Slide 4 text

Before ここまでは,パラメータに対して制約や罰則を儲け正則化を してきた パラメータが取るべき値について何らかの事前知識がある場合 にできることは? • パラメータがとるべき具体的な値 • → わからない • パラメータの間の依存関係 • → わかる 2

Slide 5

Slide 5 text

パラメータ間の依存関係 同じクラスを分類する分類器が2つあるとする (分類器をモデル A,モデル B と呼ぶ) 2つのタスクはデータ分布が異なる モデル A のパラメータを w(A),モデル B のパラメータを w(B) とすると,あるデータ x に対して 2つの予測値 ˆ y(A) および ˆ y(B) が得られる 2つの予測関数 ˆ y(A) = f(w(A), x) ˆ y(B) = g(w(B), x) → この w(A) と w(B) に着⽬する 3

Slide 6

Slide 6 text

Parameter Tying この2つのタスクが⾮常に似ており,パラメータも似たような 形になるとする 2つのパラメータを「結ぶ」 → ∀i, w(A) i should be close to w(B) i この近さに関する尺度をロス関数の中に⼊れることで,罰則を 追加できる Ω(w(A), w(B)) = ∥w(A) − w(B)∥ 2 2 ここでは L2 ノルムを考えたが,他のノルムでももちろんよい 4

Slide 7

Slide 7 text

Parameter sharing 罰則項の追加はあるパラメータが別のパラメータに 「近く」なる制約 別の制約として,あるパラメータが別のパラメータと 「⼀致」する制約が考えられる → Parameter sharing Parameter sharing によってモデルのパラメータ数・学習に 必要な時間は現象する CNN は parameter sharing を⾏なっていて実際に成功している モデルの1つである 5

Slide 8

Slide 8 text

Section 7.10 Sparse Representations

Slide 9

Slide 9 text

Two types of Spacity • Parameter Spacity • Representation Spacity 6

Slide 10

Slide 10 text

Parameter Spacity パラメータの要素の多くが0に近くなる         18 5 15 −9 −3         y =         4 0 0 −2 0 0 0 0 −1 0 3 0 0 5 0 0 0 0 1 0 0 −1 0 −4 1 0 0 0 −5 0         A           2 3 −2 −5 1 4           x (1) 7

Slide 11

Slide 11 text

Representation Spacity 隠れ層の要素の多くが0に近くなる         −14 1 19 −9 −3         y =         3 −1 2 −5 4 1 4 2 −3 −1 1 3 −1 5 4 2 −3 −2 3 1 2 −3 0 −3 −5 4 −2 2 −5 −1         B           0 2 0 0 −3 0           h (2) 8

Slide 12

Slide 12 text

How to get sparse representations パラメータをスパースにする⽅法 → 7.12 節を参照 ˜ J = J(w; X, y) + α∥w∥1 (3) 隠れ層をスパースにする⽅法は? → 同様にノルムを追加すればよい h は何か?→ ⼊⼒ x の関数 ˜ J = J(θ; X, y) + α∥h∥1 (4) 他にも orthogonal matching persuit[Pati et al., 1993] があるらしい(割愛) 9

Slide 13

Slide 13 text

Section 7.11 Bagging and Other Ensemble Method

Slide 14

Slide 14 text

Bagging Bagging(Bootstrap AGGregatING) 複数のモデルを組み合わせることで汎化誤差を 下げるテクニック(Ensembing の⼀種?) モデル数: k,i 番⽬のモデルのテスト誤差: ϵi (1 ≤ i ≤ k) 仮定: epsiloni は多変量の標準正規分布に従う(?) 分散を v,共分散を c として… → E[ϵ2 i ] = v かつ E[ϵiϵj] = c E [( 1 k ∑ i ϵi )2 ] = 1 k2 E [ ∑ i ( ϵ2 i + ∑ j̸=i ϵiϵj )] (5) = 1 k v + k − 1 k c (6) 10

Slide 15

Slide 15 text

Bagging モデルどうしに依存関係があり,かつ c = v であるとき → ロスの期待値は v k + v(k−1) k = v モデルどうしに依存関係がない(共分散 c が 0)とき → ロスの期待値は 1 k v + 0(k−1) k = v k モデルの数に対して線形な減少 → Bagging をすれば期待値的には 以下のことが⾔える • 少なくともどれか1つのモデルと同等のロスが得られる • モデルが互いに独⽴なら各モデルよりもロスは低くなる 11

Slide 16

Slide 16 text

How to build Ensemble models ブートストラップデータ集合(復元抽出)を k 個作成 k 個のデータセットでモデルを学習 先ほど⽰したような平均化処理に基づき予測値を出⼒ Figure 1: Bagging のやり⽅(DeepLearningBook fig7.5 より) 12

Slide 17

Slide 17 text

Section 7.12 Dropout

Slide 18

Slide 18 text

Dropout 計算コストが低く,かつ強⼒な正則化⼿法の1つ ある種の解釈として,Dropout はモデルのサブモデルの Bagging ともみなせる 13

Slide 19

Slide 19 text

Dropout Figure 2: Dropout のアンサンブル学習的解釈 (DeepLearningBook fig7.6 より) 14

Slide 20

Slide 20 text

Dropout binary-mask ベクトル µ でノードを削除 µ ∈ {0, 1}N(1: 残す,0: 消す) µ は 2N 通り(列挙は現実的ではない) → サンプリングによって近似する (1/0 の確率はハイパーパラメータ) (⼊⼒は 0.2,隠れ層は 0.5 が多いらしい) µ を所与とした際のロス: J(θ, µ) → minθ E [ J(θ, µ) ] Figure 3: DeepLearningBook fig7.7 より 15

Slide 21

Slide 21 text

Dropout と Bagging の違い • Bagging • 各モデルは独⽴であればあるほどロスの期待値は下がる • bootstrap データ集合を作って学習を⾏う • Dropout • 各モデル( ? )には強い関係がある • 各モデル( ? )はパラメータを共有している • → メモリ消費量が少ない! • ミニバッチデータを作り学習を⾏う 16

Slide 22

Slide 22 text

Dropout と Bagging における推論 推論: 予測のこと • Bagging: P(y|x) = 1 k ∑k i P(i)(y|x) • Dropout(仮): P(y|x) = ∑ µ P(µ)P(y|x, µ) Dropout は重み付き和的な感じ µ は 2N 通りあり列挙は現実的ではない(2 回⽬) deep neural network における simplification は知られていない → サンプリング近似(10∼20 で⼗分らしい) 17

Slide 23

Slide 23 text

Dropout における推論 線形モデルにおいては相加平均 < 相乗平均 [Warde-Farley et al., 2014] • Dropout(真): p(y|x) = ˜ p(y|x) ∑ y′ ˜ p(y′|x) ただし,˜ p(y|x) = 2d √∏ µ p(y|x, µ),˜ p ̸= 0 とする 18

Slide 24

Slide 24 text

確率の計算 p(y|x) = ˜ p(y|x) ∑ y′ ˜ p(y′|x) (7) = 2d √∏ d ˜ p(y|x, d) ∑ y′ 2d √∏ d ˜ p(y′|x, d) (8) ˜ p に注⽬する n 次元の 2 値ベクトル d と要素積を⽤いて… ˜ p(y|x) = 2n √ ∏ d in{1,0}n p(y|x, d) (9) = 2n √ ∏ d in{1,0}n softmax(WT(v ⊙ d + b))y (10) = 2n ∏ d in{1,0}n exp (WT y,: (v ⊙ d + by)) ∑ y′ exp (WT y′,: (v ⊙ d + by′ )) (11) 19

Slide 25

Slide 25 text

確率の計算 ˜ p(y|x) = 2n ∏ d in{1,0}n exp (WT y,: (v ⊙ d + by)) ∑ y′ exp (WT y′,: (v ⊙ d + by′ )) (12) ∝ 2n √ ∏ d in{1,0}n exp (WT y,: (v ⊙ d + by)) (13) = 2n √ exp ( ∑ d in{1,0}n WT y,: (v ⊙ d + by)) (14) = exp ( 1 2n ∑ d in{1,0}n WT y,: (v ⊙ d + by)) (15) 式 13 から式 14 は指数関数の特性から 20

Slide 26

Slide 26 text

確率の計算 式 15 = exp ( 1 2n ∑ d in{1,0}n WT y,: (v ⊙ d + by)) (16) = exp ( 1 2 WT y,: v + by) (17) 式 16 から式 17 は指数の組み合わせから (dk を固定すると ddk=1 , ddk=0 はそれぞれ 2n−1 通り,2n−1 2n = 1 2 ) 2 項⽬は 2 値ベクトルを含まないのでそのまま 2n 2n by = by → 2n 通りの計算が消えた! 線形なモデルであれば 2N 通りの µ の平均を計算できる? 21

Slide 27

Slide 27 text

Dropout の Pros/Cons • O(n) で 1 エポックの計算ができる • O(n) のメモリ空間で誤差逆伝播もできる • 推論時は dropout しないようにすることで元のモデルと同 じコストで順伝播できる • もちろん Dropout しないよりは遅い • 2 値ベクトルのサンプリングとかいらないし • 元のモデルよりも規模を⼤きくして, エポック数を増やした⽅が良い • → 学習データが⼗分にあるときには計算コストの増加に対 するテストロスの下がり幅の恩恵が少なすぎることもある • 不均衡データには弱い 22

Slide 28

Slide 28 text

Section 7.13 Adversarial Training

Slide 29

Slide 29 text

Adversarial Example Adversarial example: ⼈が⾒ても⾒分けがつかないが, ニューラルネットワークにはまったく異なる例に⾒える事例 GoogleNet における例 Figure 4: Adversarial example(DeepLearningBook fig7.8 より) 23

Slide 30

Slide 30 text

Adversarial Training Adversarial example はモデルが線形であり,データが⼗分に⾼ 次元であるときに⽣じる [Meyer, 2017] 線形なモデルは学習が容易であり,精度と性能のトレードオフ の関係にある 24

Slide 31

Slide 31 text

Section 7.14 Tangent Distance, Tangent Prop, and ManifoldTangent Classifier ここからは全然わからなかったので メモ程度です

Slide 32

Slide 32 text

Tangent Distance Algorithms 多様体: 曲線や球体の⼀般化? ,tangent: 接 ユークリッド距離ではなく,多様体由来の距離を使う 多様体を使うときの仮定: 同じクラスに属するデータは,同じ 多様体の近傍に存在する 分類器を作るとすると… → 多様体の内部のデータに対しては同じような出⼒を, 内部のデータと外部のデータに対しては異なる出⼒が得られる ようにしたい 多様体上の変化には鈍感,多様体から離れる変化には敏感 25

Slide 33

Slide 33 text

Tangent Prop 多様体間の距離を計算するために x1 と x2 を計算する?→ ⼤ 変 多様体を局所的に接ベクトルで近似して離れ度を計算すること にする ペナルティ項 Ω は以下のように定義される Ω(f) = ∑ i (∇x f(x))Tv(i)2 (18) 26

Slide 34

Slide 34 text

References i [Meyer, 2017] Meyer, D. (2017). Notes on adversarial examples. http://www.1-4-5.net/~dmm/ml/adversarial.pdf. [Pati et al., 1993] Pati, Y. C., Rezaiifar, R., and Krishnaprasad, P. S. (1993). Orthogonal matching pursuit: Recursive function approximation with applications to wavelet decomposition. In Signals, Systems and Computers, pages 40–44. IEEE. 27

Slide 35

Slide 35 text

References ii [Warde-Farley et al., 2014] Warde-Farley, D., Goodfellow, I. J., Courville, A., and Bengio, Y. (2014). An empirical analysis of dropout in piecewise linear networks. In Proc. International Conference on Learning Representations. 28