SlideShare a Scribd company logo
1 of 46
Download to read offline
Up to GLOW
生成モデル勉強会
M2 中塚俊介
Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved.
お品書き
◼ Normalizing Flows
◼ NICE: Non-linear Independent Components Estimation
◼ Real NVP
◼ GLOW
2
Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. 3
Normalizing Flows
Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved.
Variational Inference
◼ Variational Inference において,近似事後分布の選定は大事
― VAEでは,標準正規分布を用いている
― ただ,これ制限されすぎでは?
◼ Normalizing Flows では,より強力な近似事後分布を
変換を繰り返すことで獲得する
4
尤度関数
(Decoder)
事前分布近似事後分布
(Encoder)
VAEのcontribution はココ
reparameterization trick
Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved.
DLGM: Deep Latent Gaussian Models
◼ NNの各層の出力zl が,N(0, 1) に従うと仮定
◼ zl+1は, zl にしか依存しないので,同時分布は
L を大きくすれば,複雑なモデルになる?
◼ 真の分布はもっと複雑なことが多い
◼ そもそもこの変換では,スケールが変わってない
5
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
Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved.
確率変数の変換
7
について,
分布 q(z) を持つ確率変数 z を f で変換して,z′ を得る
確率分布 q′(z′) は
Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved.
確率変数の変換(1次元)
◼ X は Uniform(0, 1)
◼ Y = f(X) = 2X + 1
8
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) の変化は一致する
(総確率の保存)
Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved.
確率変数の変換(1次元)
◼ 変形すると
10
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 で正規化する必要あり
これつまり,ヤコビアン
Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved.
Chain of K transforms
◼ ここが Normalizing Flows の キモ
◼ 関数 f を連鎖して,変形を繰り返す
◼ 初期の分布さえ,決定すれば後の分布は自由
― 表現力の向上
― q0(z0)さえわかれば,解析的に対数尤度がわかる
12
Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved.
Normalizing flow を使って分布の変形
◼ 2次元の正規分布からスタートして,
NLLを最小化することでfitting
13
Transform する関数 f として,
Planar flow と Radial flow を提案
(Jacobian の計算コストが低い & 逆変換ができる必要がある)
Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved.
Planar flow
◼ 学習されるパラメータ
◼ h は非線形関数 (Leaky ReLU)
◼ Jacobian がO(D) で計算可能
14
Jacobian Log Likelihood
Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved.
Radial flow
◼ 学習されるパラメータ
◼ その他の計算
◼ Jacobian がO(D) で計算可能
15
Jacobian
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
Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved.
Representative Power of Normalizing Flows
17
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
Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. 19
NICE
Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved.
TL;DR
◼ NF での変換関数 f をNNを使って定義したモデル
(NF の前年に発表された)
◼ データ x を x1, x2 に分割し,片方にだけMLP+ReLUの非線形変換 m
◼ 逆変換も用意に定義可能
20
変換 逆変換
Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved.
確率変数の変換
◼ 基本的に考え方は,NF と全く同じ
◼ 論文内で定義している式は1層分の変換のみ
◼ ただ,最終的に積層するので,NFと同じ形になる
21
Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved.
Architecture
◼ 変換f (encoder) と 逆変換 f-1 (decoder) はヤコビアンが
容易に計算できる必要あり
― 重みが三角行列なら,NNでも計算が容易
― ただ,そのNNは制約が強すぎて,表現力が低い
◼ そこで,Coupling Layer を用いる
22
変換
逆変換
𝑥𝐼1𝑥𝐼2
非線形変換
Coupling Law
三角行列になる
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
論文内では加法カップリングを使用
Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved.
Rescaling
◼ 加法カップリングを使うと,ヤコビアンの行列式が 1 になる
― 計算が楽になって良し
― ただ,これだと分布のスケールが全く変わらない
◼ スケーリング行列 S (対角行列)を分布に掛けてあげる
24
この S はPCA の固有ベクトルのようなもので,
各次元がどのくらいばらつきを持っているか表している
と考えることができる
Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved.
Experiments
◼ 層を重ねる際には,変換する/しない入力を切り替える
25
x1
x2
𝒉 𝟏
𝟏
𝒉 𝟐
𝟏
𝒉 𝟏
𝟐
𝒉 𝟐
𝟐
𝒉 𝟐
𝟑
𝒉 𝟏
𝟑
m mm m
𝒉 𝟐
𝟒
𝒉 𝟏
𝟒
Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved.
Experiments
26
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
Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. 28
Real NVP
Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved.
TL;DR
◼ NICE で提案された アフィンカップリングがベース
◼ NICE では,MLPだけだったが,CNNへ拡張した
◼ NICE での,x1 と x2 の“入れ替え” を工夫したモデルを提案
◼ Multi-scale Architecture の導入
29
Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved.
アフィンカップリング
◼ NICEでのアフィンカップリングとほぼ同じ
― スケールの部分が exp になっている
30
変換
ヤコビ
加法と違って,Rescaling は入ってる
結局 log とるので,exp 入れたら計算が楽
Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved.
Masked Convolution
31
checker board channel-wise
奇数・偶数 前半・後半
◼ Convolution において,入力を2つに分ける機構を提案
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
Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved.
Experiments
33
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
Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. 35
GLOW
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
Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved.
Architecture of GLOW
◼ ベースはReal NVP
◼ +αは以下
― Actnorm
― invertible 1 x 1 convolution
37
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
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)
Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved.
invertible 1 x 1 convolution
◼ Log-determinant の計算が必要だが,計算できる?
― O(c3) のようです...
◼ LU分解しよう
― O(c) になった
40
Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved.
GLOW の処理 数式まとめ
41
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
Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved.
Experiments
43
Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved.
Manipulation について
◼ Glowはconditional な生成の枠組みを持てない
◼ なので,Semantic Manipulation はあと付け
― CelebA にはAttributeが,バイナリで保存されている
― 例えば,メガネ属性が 1 の集合 XPOS と 0 の集合 XNEG を作成
― それぞれの集合から,平均潜在変数 ZPOSと XNEG 求め
― 線形補間する
44
Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved.
まとめ
◼ RealNVP に以下を追加
― Actnorm
― Invertible 1 x 1 convolution
◼ Actnorm はBNの弱点をカバー
◼ 1 x 1 convolution でチャネルの順番操作を学習
◼ 高解像度の画像生成に成功
45
Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved.
全体通してのまとめ
◼ Normalizing flowsは,単純な分布から複雑な分布へ変換を学習
― 尤度計算は確率変数の変換によって得られる
― その尤度最大化(近似無しでわかる)
― 逆変換可能
◼ NICEは,複雑な分布(データそのもの)から単純な分布へ変換を学習
― 尤度計算は確率変数の変換によって得られる
― その尤度最大化(近似無しでわかる)
― 逆変換可能
◼ GLOWは,NICE・RealNVPに色々工夫を加えたもの
― Actnorm
― 1 x 1 convolution
46
結局同じこと!!

More Related Content

What's hot

【DL輪読会】NeRF-VAE: A Geometry Aware 3D Scene Generative Model
【DL輪読会】NeRF-VAE: A Geometry Aware 3D Scene Generative Model【DL輪読会】NeRF-VAE: A Geometry Aware 3D Scene Generative Model
【DL輪読会】NeRF-VAE: A Geometry Aware 3D Scene Generative ModelDeep Learning JP
 
論文紹介 No-Reward Meta Learning (RL architecture勉強会)
論文紹介 No-Reward Meta Learning (RL architecture勉強会)論文紹介 No-Reward Meta Learning (RL architecture勉強会)
論文紹介 No-Reward Meta Learning (RL architecture勉強会)Yusuke Nakata
 
SSII2022 [TS1] Transformerの最前線〜 畳込みニューラルネットワークの先へ 〜
SSII2022 [TS1] Transformerの最前線〜 畳込みニューラルネットワークの先へ 〜SSII2022 [TS1] Transformerの最前線〜 畳込みニューラルネットワークの先へ 〜
SSII2022 [TS1] Transformerの最前線〜 畳込みニューラルネットワークの先へ 〜SSII
 
[DL輪読会]PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metr...
[DL輪読会]PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metr...[DL輪読会]PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metr...
[DL輪読会]PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metr...Deep Learning JP
 
[DL輪読会]GQNと関連研究,世界モデルとの関係について
[DL輪読会]GQNと関連研究,世界モデルとの関係について[DL輪読会]GQNと関連研究,世界モデルとの関係について
[DL輪読会]GQNと関連研究,世界モデルとの関係についてDeep Learning JP
 
[DL輪読会]Learning Latent Dynamics for Planning from Pixels
[DL輪読会]Learning Latent Dynamics for Planning from Pixels[DL輪読会]Learning Latent Dynamics for Planning from Pixels
[DL輪読会]Learning Latent Dynamics for Planning from PixelsDeep Learning JP
 
Neural scene representation and rendering の解説(第3回3D勉強会@関東)
Neural scene representation and rendering の解説(第3回3D勉強会@関東)Neural scene representation and rendering の解説(第3回3D勉強会@関東)
Neural scene representation and rendering の解説(第3回3D勉強会@関東)Masaya Kaneko
 
Superpixel Sampling Networks
Superpixel Sampling NetworksSuperpixel Sampling Networks
Superpixel Sampling Networksyukihiro domae
 
SSII2022 [SS1] ニューラル3D表現の最新動向〜 ニューラルネットでなんでも表せる?? 〜​
SSII2022 [SS1] ニューラル3D表現の最新動向〜 ニューラルネットでなんでも表せる?? 〜​SSII2022 [SS1] ニューラル3D表現の最新動向〜 ニューラルネットでなんでも表せる?? 〜​
SSII2022 [SS1] ニューラル3D表現の最新動向〜 ニューラルネットでなんでも表せる?? 〜​SSII
 
変分推論と Normalizing Flow
変分推論と Normalizing Flow変分推論と Normalizing Flow
変分推論と Normalizing FlowAkihiro Nitta
 
Active Convolution, Deformable Convolution ―形状・スケールを学習可能なConvolution―
Active Convolution, Deformable Convolution ―形状・スケールを学習可能なConvolution―Active Convolution, Deformable Convolution ―形状・スケールを学習可能なConvolution―
Active Convolution, Deformable Convolution ―形状・スケールを学習可能なConvolution―Yosuke Shinya
 
[DL輪読会]Disentangling by Factorising
[DL輪読会]Disentangling by Factorising[DL輪読会]Disentangling by Factorising
[DL輪読会]Disentangling by FactorisingDeep Learning JP
 
三次元表現まとめ(深層学習を中心に)
三次元表現まとめ(深層学習を中心に)三次元表現まとめ(深層学習を中心に)
三次元表現まとめ(深層学習を中心に)Tomohiro Motoda
 
Transformerを雰囲気で理解する
Transformerを雰囲気で理解するTransformerを雰囲気で理解する
Transformerを雰囲気で理解するAtsukiYamaguchi1
 
【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)
【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)
【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)Deep Learning JP
 
20190706cvpr2019_3d_shape_representation
20190706cvpr2019_3d_shape_representation20190706cvpr2019_3d_shape_representation
20190706cvpr2019_3d_shape_representationTakuya Minagawa
 
【DL輪読会】"Masked Siamese Networks for Label-Efficient Learning"
【DL輪読会】"Masked Siamese Networks for Label-Efficient Learning"【DL輪読会】"Masked Siamese Networks for Label-Efficient Learning"
【DL輪読会】"Masked Siamese Networks for Label-Efficient Learning"Deep Learning JP
 
大域的探索から局所的探索へデータ拡張 (Data Augmentation)を用いた学習の探索テクニック
大域的探索から局所的探索へデータ拡張 (Data Augmentation)を用いた学習の探索テクニック 大域的探索から局所的探索へデータ拡張 (Data Augmentation)を用いた学習の探索テクニック
大域的探索から局所的探索へデータ拡張 (Data Augmentation)を用いた学習の探索テクニック 西岡 賢一郎
 

What's hot (20)

【DL輪読会】NeRF-VAE: A Geometry Aware 3D Scene Generative Model
【DL輪読会】NeRF-VAE: A Geometry Aware 3D Scene Generative Model【DL輪読会】NeRF-VAE: A Geometry Aware 3D Scene Generative Model
【DL輪読会】NeRF-VAE: A Geometry Aware 3D Scene Generative Model
 
論文紹介 No-Reward Meta Learning (RL architecture勉強会)
論文紹介 No-Reward Meta Learning (RL architecture勉強会)論文紹介 No-Reward Meta Learning (RL architecture勉強会)
論文紹介 No-Reward Meta Learning (RL architecture勉強会)
 
SSII2022 [TS1] Transformerの最前線〜 畳込みニューラルネットワークの先へ 〜
SSII2022 [TS1] Transformerの最前線〜 畳込みニューラルネットワークの先へ 〜SSII2022 [TS1] Transformerの最前線〜 畳込みニューラルネットワークの先へ 〜
SSII2022 [TS1] Transformerの最前線〜 畳込みニューラルネットワークの先へ 〜
 
[DL輪読会]PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metr...
[DL輪読会]PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metr...[DL輪読会]PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metr...
[DL輪読会]PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metr...
 
[DL輪読会]GQNと関連研究,世界モデルとの関係について
[DL輪読会]GQNと関連研究,世界モデルとの関係について[DL輪読会]GQNと関連研究,世界モデルとの関係について
[DL輪読会]GQNと関連研究,世界モデルとの関係について
 
[DL輪読会]Learning Latent Dynamics for Planning from Pixels
[DL輪読会]Learning Latent Dynamics for Planning from Pixels[DL輪読会]Learning Latent Dynamics for Planning from Pixels
[DL輪読会]Learning Latent Dynamics for Planning from Pixels
 
Neural scene representation and rendering の解説(第3回3D勉強会@関東)
Neural scene representation and rendering の解説(第3回3D勉強会@関東)Neural scene representation and rendering の解説(第3回3D勉強会@関東)
Neural scene representation and rendering の解説(第3回3D勉強会@関東)
 
Superpixel Sampling Networks
Superpixel Sampling NetworksSuperpixel Sampling Networks
Superpixel Sampling Networks
 
SSII2022 [SS1] ニューラル3D表現の最新動向〜 ニューラルネットでなんでも表せる?? 〜​
SSII2022 [SS1] ニューラル3D表現の最新動向〜 ニューラルネットでなんでも表せる?? 〜​SSII2022 [SS1] ニューラル3D表現の最新動向〜 ニューラルネットでなんでも表せる?? 〜​
SSII2022 [SS1] ニューラル3D表現の最新動向〜 ニューラルネットでなんでも表せる?? 〜​
 
変分推論と Normalizing Flow
変分推論と Normalizing Flow変分推論と Normalizing Flow
変分推論と Normalizing Flow
 
Active Convolution, Deformable Convolution ―形状・スケールを学習可能なConvolution―
Active Convolution, Deformable Convolution ―形状・スケールを学習可能なConvolution―Active Convolution, Deformable Convolution ―形状・スケールを学習可能なConvolution―
Active Convolution, Deformable Convolution ―形状・スケールを学習可能なConvolution―
 
Point net
Point netPoint net
Point net
 
[DL輪読会]Disentangling by Factorising
[DL輪読会]Disentangling by Factorising[DL輪読会]Disentangling by Factorising
[DL輪読会]Disentangling by Factorising
 
三次元表現まとめ(深層学習を中心に)
三次元表現まとめ(深層学習を中心に)三次元表現まとめ(深層学習を中心に)
三次元表現まとめ(深層学習を中心に)
 
Transformerを雰囲気で理解する
Transformerを雰囲気で理解するTransformerを雰囲気で理解する
Transformerを雰囲気で理解する
 
Graph U-Nets
Graph U-NetsGraph U-Nets
Graph U-Nets
 
【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)
【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)
【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)
 
20190706cvpr2019_3d_shape_representation
20190706cvpr2019_3d_shape_representation20190706cvpr2019_3d_shape_representation
20190706cvpr2019_3d_shape_representation
 
【DL輪読会】"Masked Siamese Networks for Label-Efficient Learning"
【DL輪読会】"Masked Siamese Networks for Label-Efficient Learning"【DL輪読会】"Masked Siamese Networks for Label-Efficient Learning"
【DL輪読会】"Masked Siamese Networks for Label-Efficient Learning"
 
大域的探索から局所的探索へデータ拡張 (Data Augmentation)を用いた学習の探索テクニック
大域的探索から局所的探索へデータ拡張 (Data Augmentation)を用いた学習の探索テクニック 大域的探索から局所的探索へデータ拡張 (Data Augmentation)を用いた学習の探索テクニック
大域的探索から局所的探索へデータ拡張 (Data Augmentation)を用いた学習の探索テクニック
 

Similar to Up to GLOW

Deep learning実装の基礎と実践
Deep learning実装の基礎と実践Deep learning実装の基礎と実践
Deep learning実装の基礎と実践Seiya Tokui
 
猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoderSho Tatsuno
 
AI2: Safety and Robustness Certification of Neural Networks with Abstract Int...
AI2: Safety and Robustness Certification of Neural Networks with Abstract Int...AI2: Safety and Robustness Certification of Neural Networks with Abstract Int...
AI2: Safety and Robustness Certification of Neural Networks with Abstract Int...T T
 
FPGA・リコンフィギャラブルシステム研究の最新動向
FPGA・リコンフィギャラブルシステム研究の最新動向FPGA・リコンフィギャラブルシステム研究の最新動向
FPGA・リコンフィギャラブルシステム研究の最新動向Shinya Takamaeda-Y
 
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)智啓 出川
 
PRML復々習レーン#9 6.3-6.3.1
PRML復々習レーン#9 6.3-6.3.1PRML復々習レーン#9 6.3-6.3.1
PRML復々習レーン#9 6.3-6.3.1sleepy_yoshi
 
DIC-PCGソルバーのpimpleFoamに対する時間計測と高速化
DIC-PCGソルバーのpimpleFoamに対する時間計測と高速化DIC-PCGソルバーのpimpleFoamに対する時間計測と高速化
DIC-PCGソルバーのpimpleFoamに対する時間計測と高速化Fixstars Corporation
 

Similar to Up to GLOW (10)

ICML2018 勉強会
ICML2018 勉強会ICML2018 勉強会
ICML2018 勉強会
 
Deep learning実装の基礎と実践
Deep learning実装の基礎と実践Deep learning実装の基礎と実践
Deep learning実装の基礎と実践
 
Graph U-Net
Graph U-NetGraph U-Net
Graph U-Net
 
猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder
 
AI2: Safety and Robustness Certification of Neural Networks with Abstract Int...
AI2: Safety and Robustness Certification of Neural Networks with Abstract Int...AI2: Safety and Robustness Certification of Neural Networks with Abstract Int...
AI2: Safety and Robustness Certification of Neural Networks with Abstract Int...
 
FPGA・リコンフィギャラブルシステム研究の最新動向
FPGA・リコンフィギャラブルシステム研究の最新動向FPGA・リコンフィギャラブルシステム研究の最新動向
FPGA・リコンフィギャラブルシステム研究の最新動向
 
How good is my GAN?
How good is my GAN?How good is my GAN?
How good is my GAN?
 
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)
 
PRML復々習レーン#9 6.3-6.3.1
PRML復々習レーン#9 6.3-6.3.1PRML復々習レーン#9 6.3-6.3.1
PRML復々習レーン#9 6.3-6.3.1
 
DIC-PCGソルバーのpimpleFoamに対する時間計測と高速化
DIC-PCGソルバーのpimpleFoamに対する時間計測と高速化DIC-PCGソルバーのpimpleFoamに対する時間計測と高速化
DIC-PCGソルバーのpimpleFoamに対する時間計測と高速化
 

More from Shunsuke NAKATSUKA

CVPR2020_ECCV2020_Anomaly_Detection_まとめ
CVPR2020_ECCV2020_Anomaly_Detection_まとめCVPR2020_ECCV2020_Anomaly_Detection_まとめ
CVPR2020_ECCV2020_Anomaly_Detection_まとめShunsuke NAKATSUKA
 
【CVPR 2019】Latent Space Autoregression for Novelty Detection
【CVPR 2019】Latent Space Autoregression for Novelty Detection 【CVPR 2019】Latent Space Autoregression for Novelty Detection
【CVPR 2019】Latent Space Autoregression for Novelty Detection Shunsuke NAKATSUKA
 
最新事例紹介資料 異常検知(2018.11.19)
最新事例紹介資料 異常検知(2018.11.19)最新事例紹介資料 異常検知(2018.11.19)
最新事例紹介資料 異常検知(2018.11.19)Shunsuke NAKATSUKA
 
最新事例紹介資料 異常検知 + alpha(2018.10.15)
最新事例紹介資料 異常検知 + alpha(2018.10.15)最新事例紹介資料 異常検知 + alpha(2018.10.15)
最新事例紹介資料 異常検知 + alpha(2018.10.15)Shunsuke NAKATSUKA
 
最新事例紹介資料 異常検知(2018.09.20)
最新事例紹介資料 異常検知(2018.09.20)最新事例紹介資料 異常検知(2018.09.20)
最新事例紹介資料 異常検知(2018.09.20)Shunsuke NAKATSUKA
 
最新事例紹介資料 異常検知(2018.08.24)
最新事例紹介資料 異常検知(2018.08.24)最新事例紹介資料 異常検知(2018.08.24)
最新事例紹介資料 異常検知(2018.08.24)Shunsuke NAKATSUKA
 
最新研究紹介資料(異常検知)
最新研究紹介資料(異常検知)最新研究紹介資料(異常検知)
最新研究紹介資料(異常検知)Shunsuke NAKATSUKA
 

More from Shunsuke NAKATSUKA (8)

CVPR2020_ECCV2020_Anomaly_Detection_まとめ
CVPR2020_ECCV2020_Anomaly_Detection_まとめCVPR2020_ECCV2020_Anomaly_Detection_まとめ
CVPR2020_ECCV2020_Anomaly_Detection_まとめ
 
【CVPR 2019】Latent Space Autoregression for Novelty Detection
【CVPR 2019】Latent Space Autoregression for Novelty Detection 【CVPR 2019】Latent Space Autoregression for Novelty Detection
【CVPR 2019】Latent Space Autoregression for Novelty Detection
 
最新事例紹介資料 異常検知(2018.11.19)
最新事例紹介資料 異常検知(2018.11.19)最新事例紹介資料 異常検知(2018.11.19)
最新事例紹介資料 異常検知(2018.11.19)
 
最新事例紹介資料 異常検知 + alpha(2018.10.15)
最新事例紹介資料 異常検知 + alpha(2018.10.15)最新事例紹介資料 異常検知 + alpha(2018.10.15)
最新事例紹介資料 異常検知 + alpha(2018.10.15)
 
最新事例紹介資料 異常検知(2018.09.20)
最新事例紹介資料 異常検知(2018.09.20)最新事例紹介資料 異常検知(2018.09.20)
最新事例紹介資料 異常検知(2018.09.20)
 
最新事例紹介資料 異常検知(2018.08.24)
最新事例紹介資料 異常検知(2018.08.24)最新事例紹介資料 異常検知(2018.08.24)
最新事例紹介資料 異常検知(2018.08.24)
 
最新研究紹介資料(異常検知)
最新研究紹介資料(異常検知)最新研究紹介資料(異常検知)
最新研究紹介資料(異常検知)
 
Tutorial of GANs in Gifu Univ
Tutorial of GANs in Gifu UnivTutorial of GANs in Gifu Univ
Tutorial of GANs in Gifu Univ
 

Up to GLOW

  • 2. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. お品書き ◼ Normalizing Flows ◼ NICE: Non-linear Independent Components Estimation ◼ Real NVP ◼ GLOW 2
  • 3. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. 3 Normalizing Flows
  • 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. 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. 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. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. 確率変数の変換 7 について, 分布 q(z) を持つ確率変数 z を f で変換して,z′ を得る 確率分布 q′(z′) は
  • 8. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. 確率変数の変換(1次元) ◼ X は Uniform(0, 1) ◼ Y = f(X) = 2X + 1 8
  • 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. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. 確率変数の変換(1次元) ◼ 変形すると 10
  • 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. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. Chain of K transforms ◼ ここが Normalizing Flows の キモ ◼ 関数 f を連鎖して,変形を繰り返す ◼ 初期の分布さえ,決定すれば後の分布は自由 ― 表現力の向上 ― q0(z0)さえわかれば,解析的に対数尤度がわかる 12
  • 13. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. Normalizing flow を使って分布の変形 ◼ 2次元の正規分布からスタートして, NLLを最小化することでfitting 13 Transform する関数 f として, Planar flow と Radial flow を提案 (Jacobian の計算コストが低い & 逆変換ができる必要がある)
  • 14. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. Planar flow ◼ 学習されるパラメータ ◼ h は非線形関数 (Leaky ReLU) ◼ Jacobian がO(D) で計算可能 14 Jacobian Log Likelihood
  • 15. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. Radial flow ◼ 学習されるパラメータ ◼ その他の計算 ◼ Jacobian がO(D) で計算可能 15 Jacobian
  • 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. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. Representative Power of Normalizing Flows 17
  • 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. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. 19 NICE
  • 20. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. TL;DR ◼ NF での変換関数 f をNNを使って定義したモデル (NF の前年に発表された) ◼ データ x を x1, x2 に分割し,片方にだけMLP+ReLUの非線形変換 m ◼ 逆変換も用意に定義可能 20 変換 逆変換
  • 21. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. 確率変数の変換 ◼ 基本的に考え方は,NF と全く同じ ◼ 論文内で定義している式は1層分の変換のみ ◼ ただ,最終的に積層するので,NFと同じ形になる 21
  • 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. 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. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. Rescaling ◼ 加法カップリングを使うと,ヤコビアンの行列式が 1 になる ― 計算が楽になって良し ― ただ,これだと分布のスケールが全く変わらない ◼ スケーリング行列 S (対角行列)を分布に掛けてあげる 24 この S はPCA の固有ベクトルのようなもので, 各次元がどのくらいばらつきを持っているか表している と考えることができる
  • 25. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. Experiments ◼ 層を重ねる際には,変換する/しない入力を切り替える 25 x1 x2 𝒉 𝟏 𝟏 𝒉 𝟐 𝟏 𝒉 𝟏 𝟐 𝒉 𝟐 𝟐 𝒉 𝟐 𝟑 𝒉 𝟏 𝟑 m mm m 𝒉 𝟐 𝟒 𝒉 𝟏 𝟒
  • 26. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. Experiments 26
  • 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. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. 28 Real NVP
  • 29. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. TL;DR ◼ NICE で提案された アフィンカップリングがベース ◼ NICE では,MLPだけだったが,CNNへ拡張した ◼ NICE での,x1 と x2 の“入れ替え” を工夫したモデルを提案 ◼ Multi-scale Architecture の導入 29
  • 30. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. アフィンカップリング ◼ NICEでのアフィンカップリングとほぼ同じ ― スケールの部分が exp になっている 30 変換 ヤコビ 加法と違って,Rescaling は入ってる 結局 log とるので,exp 入れたら計算が楽
  • 31. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. Masked Convolution 31 checker board channel-wise 奇数・偶数 前半・後半 ◼ Convolution において,入力を2つに分ける機構を提案
  • 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. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. Experiments 33
  • 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. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. 35 GLOW
  • 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. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. Architecture of GLOW ◼ ベースはReal NVP ◼ +αは以下 ― Actnorm ― invertible 1 x 1 convolution 37
  • 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. 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. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. invertible 1 x 1 convolution ◼ Log-determinant の計算が必要だが,計算できる? ― O(c3) のようです... ◼ LU分解しよう ― O(c) になった 40
  • 41. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. GLOW の処理 数式まとめ 41
  • 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. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. Experiments 43
  • 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. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. まとめ ◼ RealNVP に以下を追加 ― Actnorm ― Invertible 1 x 1 convolution ◼ Actnorm はBNの弱点をカバー ◼ 1 x 1 convolution でチャネルの順番操作を学習 ◼ 高解像度の画像生成に成功 45
  • 46. Copyright © 2018 Gifu-U Kato-Lab All Rights Reserved. 全体通してのまとめ ◼ Normalizing flowsは,単純な分布から複雑な分布へ変換を学習 ― 尤度計算は確率変数の変換によって得られる ― その尤度最大化(近似無しでわかる) ― 逆変換可能 ◼ NICEは,複雑な分布(データそのもの)から単純な分布へ変換を学習 ― 尤度計算は確率変数の変換によって得られる ― その尤度最大化(近似無しでわかる) ― 逆変換可能 ◼ GLOWは,NICE・RealNVPに色々工夫を加えたもの ― Actnorm ― 1 x 1 convolution 46 結局同じこと!!