Successfully reported this slideshow.
Your SlideShare is downloading. ×

Up to GLOW

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Upcoming SlideShare
ICML2018 勉強会
ICML2018 勉強会
Loading in …3
×

Check these out next

1 of 46 Ad

More Related Content

Slideshows for you (20)

Advertisement

Recently uploaded (20)

Advertisement

Up to GLOW

  1. 1. Up to GLOW 生成モデル勉強会 M2 中塚俊介
  2. 2. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. お品書き ◼ Normalizing Flows ◼ NICE: Non-linear Independent Components Estimation ◼ Real NVP ◼ GLOW 2
  3. 3. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. 3 Normalizing Flows
  4. 4. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. Variational Inference ◼ Variational Inference において,近似事後分布の選定は大事 ― VAEでは,標準正規分布を用いている ― ただ,これ制限されすぎでは? ◼ Normalizing Flows では,より強力な近似事後分布を 変換を繰り返すことで獲得する 4 尤度関数 (Decoder) 事前分布近似事後分布 (Encoder) VAEのcontribution はココ reparameterization trick
  5. 5. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. DLGM: Deep Latent Gaussian Models ◼ NNの各層の出力zl が,N(0, 1) に従うと仮定 ◼ zl+1は, zl にしか依存しないので,同時分布は L を大きくすれば,複雑なモデルになる? ◼ 真の分布はもっと複雑なことが多い ◼ そもそもこの変換では,スケールが変わってない 5
  6. 6. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. Normalizing Flows ◼ 考えとしては, ― VAEやDLGMなどより,もっと flexible な近似事後分布を作りたい ― 単純な分布から確率分布の変数変換を繰り返して,複雑な分布にしていく 6 z0 z1 z2 z3 z4 z5 z6 https://blog.evjang.com/2018/01/nf1.html
  7. 7. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. 確率変数の変換 7 について, 分布 q(z) を持つ確率変数 z を f で変換して,z′ を得る 確率分布 q′(z′) は
  8. 8. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. 確率変数の変換(1次元) ◼ X は Uniform(0, 1) ◼ Y = f(X) = 2X + 1 8
  9. 9. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. 確率変数の変換(1次元) ◼ X は Uniform(0, 1) ◼ Y = f(X) = 2X + 1 9 ◼ x とその近くの点 x + dx に着目 ◼ 写像後を y と y + dy とする ◼ dx の間 の p(x) の変化と dy の間 の p(y) の変化は一致する (総確率の保存)
  10. 10. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. 確率変数の変換(1次元) ◼ 変形すると 10
  11. 11. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. 確率変数の変換(2次元) ◼ 変換行列 F を (0, 0), (0, 1), (1, 0), (1, 1) にかけると... 11 (0, 0) (0, 1) (a, c) (1, 0) (a + b, c + d) (b, d) 面積:1 面積:ad - bc 総確率の保存のために, ad – bc で正規化する必要あり これつまり,ヤコビアン
  12. 12. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. Chain of K transforms ◼ ここが Normalizing Flows の キモ ◼ 関数 f を連鎖して,変形を繰り返す ◼ 初期の分布さえ,決定すれば後の分布は自由 ― 表現力の向上 ― q0(z0)さえわかれば,解析的に対数尤度がわかる 12
  13. 13. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. Normalizing flow を使って分布の変形 ◼ 2次元の正規分布からスタートして, NLLを最小化することでfitting 13 Transform する関数 f として, Planar flow と Radial flow を提案 (Jacobian の計算コストが低い & 逆変換ができる必要がある)
  14. 14. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. Planar flow ◼ 学習されるパラメータ ◼ h は非線形関数 (Leaky ReLU) ◼ Jacobian がO(D) で計算可能 14 Jacobian Log Likelihood
  15. 15. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. Radial flow ◼ 学習されるパラメータ ◼ その他の計算 ◼ Jacobian がO(D) で計算可能 15 Jacobian
  16. 16. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. 変分推論にFlow を適用する ◼ ELBOにPlanar Flow を導入 16 VAEのEncoder VAEのDecoder Free Energy Bound x z0 xzk ϵ 𝑞(𝑧0 | 𝑥, 𝜙) Encoder p x zk, θ) DecoderNF
  17. 17. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. Representative Power of Normalizing Flows 17
  18. 18. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. まとめ ◼ 変分推論の際に表現力の高い近似事後分布を得ることができる ◼ 具体的には,VAE + NF が可能 ◼ 変換関数 f を連鎖させることで,表現力が向上する ◼ f は逆変換できる必要があり,効率的なヤコビアンの算出が必要 ◼ 筆者はPlanar flow と Radial flow を提案 18 x z0 xzk ϵ 𝑞(𝑧0 | 𝑥, 𝜙) Encoder p x zk, θ) DecoderNF
  19. 19. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. 19 NICE
  20. 20. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. TL;DR ◼ NF での変換関数 f をNNを使って定義したモデル (NF の前年に発表された) ◼ データ x を x1, x2 に分割し,片方にだけMLP+ReLUの非線形変換 m ◼ 逆変換も用意に定義可能 20 変換 逆変換
  21. 21. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. 確率変数の変換 ◼ 基本的に考え方は,NF と全く同じ ◼ 論文内で定義している式は1層分の変換のみ ◼ ただ,最終的に積層するので,NFと同じ形になる 21
  22. 22. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. Architecture ◼ 変換f (encoder) と 逆変換 f-1 (decoder) はヤコビアンが 容易に計算できる必要あり ― 重みが三角行列なら,NNでも計算が容易 ― ただ,そのNNは制約が強すぎて,表現力が低い ◼ そこで,Coupling Layer を用いる 22 変換 逆変換 𝑥𝐼1𝑥𝐼2 非線形変換 Coupling Law 三角行列になる
  23. 23. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. Coupling Laws ◼ 加法カップリング g(a; b) = a + b ◼ 乗法カップリング g(a; b) = a ⊙ b ◼ アフィンカップリング g(a; b) = a ⊙ b1 + b2 23 論文内では加法カップリングを使用
  24. 24. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. Rescaling ◼ 加法カップリングを使うと,ヤコビアンの行列式が 1 になる ― 計算が楽になって良し ― ただ,これだと分布のスケールが全く変わらない ◼ スケーリング行列 S (対角行列)を分布に掛けてあげる 24 この S はPCA の固有ベクトルのようなもので, 各次元がどのくらいばらつきを持っているか表している と考えることができる
  25. 25. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. Experiments ◼ 層を重ねる際には,変換する/しない入力を切り替える 25 x1 x2 𝒉 𝟏 𝟏 𝒉 𝟐 𝟏 𝒉 𝟏 𝟐 𝒉 𝟐 𝟐 𝒉 𝟐 𝟑 𝒉 𝟏 𝟑 m mm m 𝒉 𝟐 𝟒 𝒉 𝟏 𝟒
  26. 26. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. Experiments 26
  27. 27. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. まとめ ◼ NF での変換関数 f をNNを使って定義したモデル ◼ データ x を x1, x2 に分割し,片方にだけMLP+ReLUの非線形変換 m ― 分割は層ごとに順番を入れ替える ― 片方だけが出力され続けるのを防ぐため ◼ ヤコビアンの計算量についてはカップリングを導入 ◼ 加法カップリングで変わらないスケールはRescalingでカバー ◼ NICEとFlowの違い ― NICEは,x から z への変換(逆変換)を学習している (難しい分布を簡単な分布に) ― Flowは,z0 から zk への変換(逆変換)を学習している (簡単な分布を難しい分布に) ― 方向は逆だけど,逆変換可能なので実質同じ 27
  28. 28. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. 28 Real NVP
  29. 29. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. TL;DR ◼ NICE で提案された アフィンカップリングがベース ◼ NICE では,MLPだけだったが,CNNへ拡張した ◼ NICE での,x1 と x2 の“入れ替え” を工夫したモデルを提案 ◼ Multi-scale Architecture の導入 29
  30. 30. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. アフィンカップリング ◼ NICEでのアフィンカップリングとほぼ同じ ― スケールの部分が exp になっている 30 変換 ヤコビ 加法と違って,Rescaling は入ってる 結局 log とるので,exp 入れたら計算が楽
  31. 31. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. Masked Convolution 31 checker board channel-wise 奇数・偶数 前半・後半 ◼ Convolution において,入力を2つに分ける機構を提案
  32. 32. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. Multi-scale architecture ◼ Squeeze Operation ― (s, s, c) から (s/2, s/2, 4c) へreshape する ― tensorflow でいう tf.space_to_depth ◼ reshape後に, ― 前半チャネルは,潜在変数 z に ― 後半チャネルは,次の層へ h 32 space_to_depth depth_to_space https://arxiv.org/abs/1609.05158
  33. 33. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. Experiments 33
  34. 34. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. まとめ ◼ NICE で提案された アフィンカップリングがベース ◼ NICE では,MLPだけだったが,CNNへ拡張した ◼ NICE での,x1 と x2 の“入れ替え” を工夫したモデルを提案 ― Checker board ― Channel-wise ◼ Multi-scale Architecture の導入 ― 前半チャネルは,潜在変数 z に ― 後半チャネルは,次の層へ h 34
  35. 35. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. 35 GLOW
  36. 36. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. 尤度ベースの生成モデルについて by Kingma ◼ 尤度ベースの生成モデル ― Autoregressive Models ― Variational Autoencoders ― Flow-based generative models ◼ Flow-based model のAdvantage ― 近似なしに潜在変数の推論と対数尤度の評価ができる (VAEとGANはできない) ― 並列化可能な推論と生成 (Autoregressive models はできない) ― 下流タスクにおいて有用な潜在空間が得られる (GANとAutoregressive modelsはできない) ― メモリ節約がめっちゃできる 36
  37. 37. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. Architecture of GLOW ◼ ベースはReal NVP ◼ +αは以下 ― Actnorm ― invertible 1 x 1 convolution 37
  38. 38. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. Actnorm ◼ RealNVP では,BatchNormalization が使われていた ― ただ,batch size が小さいときに問題あり (variance) ◼ チャネルごとにスケール s とバイアス b のパラメータを持って, アフィン変換する ◼ このときのs, b は最初のミニバッチが与えられたときに初期化される ― Actnorm の前の層の出力が平均0,分散が単位行列になるようにs と b を定める ― data dependent initialization (by Kingma) ― 初期化後は trainable params になる 38
  39. 39. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. invertible 1 x 1 convolution ◼ NiceやRealNVPでは,チャネルの順序を反転させる置換に等しい枠組みを持つ ◼ この“置換”を 1 x 1 convolution で表現する ― 回転行列で初期化 ― 順列の一般化 39 ⅹ Σ そもそも,1 x 1 conv は pixel-wise なチャネル方向の全結合層 w : (1, 1, c, c)
  40. 40. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. invertible 1 x 1 convolution ◼ Log-determinant の計算が必要だが,計算できる? ― O(c3) のようです... ◼ LU分解しよう ― O(c) になった 40
  41. 41. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. GLOW の処理 数式まとめ 41
  42. 42. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. Architecture ◼ Squeeze ― space_to_depth ― 空間解像度を落として,奥行き深く ◼ Flow ― actnorm – 1 x 1 conv – affine coupling ― この中で何度も変換を行う(K=32) ◼ Split ― 前半のチャネルを潜在変数に ― 後半のチャネルを次の層の入力に ― 1 x 1 conv で学習しているため, 前後入れ替えとかは必要なし 42 実験では, L=6, K=32
  43. 43. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. Experiments 43
  44. 44. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. Manipulation について ◼ Glowはconditional な生成の枠組みを持てない ◼ なので,Semantic Manipulation はあと付け ― CelebA にはAttributeが,バイナリで保存されている ― 例えば,メガネ属性が 1 の集合 XPOS と 0 の集合 XNEG を作成 ― それぞれの集合から,平均潜在変数 ZPOSと XNEG 求め ― 線形補間する 44
  45. 45. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. まとめ ◼ RealNVP に以下を追加 ― Actnorm ― Invertible 1 x 1 convolution ◼ Actnorm はBNの弱点をカバー ◼ 1 x 1 convolution でチャネルの順番操作を学習 ◼ 高解像度の画像生成に成功 45
  46. 46. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. 全体通してのまとめ ◼ Normalizing flowsは,単純な分布から複雑な分布へ変換を学習 ― 尤度計算は確率変数の変換によって得られる ― その尤度最大化(近似無しでわかる) ― 逆変換可能 ◼ NICEは,複雑な分布(データそのもの)から単純な分布へ変換を学習 ― 尤度計算は確率変数の変換によって得られる ― その尤度最大化(近似無しでわかる) ― 逆変換可能 ◼ GLOWは,NICE・RealNVPに色々工夫を加えたもの ― Actnorm ― 1 x 1 convolution 46 結局同じこと!!

×