[DL輪読会]NVAE: A Deep Hierarchical Variational Autoencoder

1.3K Views

November 13, 20

スライド概要

2020/11/13
Deep Learning JP:
http://deeplearning.jp/seminar-2/

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

DEEP LEARNING JP NVAE: A Deep Hierarchical Variational Autoencoder [DL Papers] Presenter: Keno Harada, The University of Tokyo, B4 http://deeplearning.jp/ 1

2.

目次 ● 書誌情報 ● 背景 ● 提案手法 ○ ○ ○ ○ ● ● ● ● Depth wise convolution Residual parameterization of posterior parameters Spectral regularization 階層構造 実験結果 NVAE使ってみた on BAIR Robot push dataset Very deep VAE(ICLR 2021 underreview) 感想 2

3.

書誌情報 ● ● ● ● NVAE: A Deep Hierarchical Variational Autoencoder 著者: Arash Vahdat, Jan Kautz (NVIDIA) Neural Information Processing Systems (NeurIPS) 2020 (spotlight) 関連URL ○ ○ 論文: https://arxiv.org/pdf/2007.03898.pdf 著者実装: https://github.com/NVlabs/NVAE ● 概要 ○ 階層的なVAEにおいてKL項の安定のためにSpectral Regularizationとpriorの確率分布パラメー タとの差分を学習させるResidual Parameterizationを組み合わせ, またGeneratorが広範囲の関 係性をモデル化するためにDepth wise convolutionを使用してパラメータを増やしすぎること なくCNNのfilterサイズを大きくしたNVAEを提案, 256 * 256の高解像度な画像生成を可能にし た. 3

4.

背景 ~make VAEs great again by architecture design~ ● VAEの改善においてNeural network architectureの設計は見過ごされてきた ○ ○ Classificationでうまくいった仕組みをそのまま取り入れていた VAEの特徴に合わせた設計を ■ 入力データと潜在変数間で相互情報量の最大化 ■ パラメータ増やした時の挙動が特殊 ● Decoderはover parameterizeしちゃうと良くない ● Encoderはパラメータ増やすとamortization gapが減る ■ long-range correlations in dataをうまくモデル化すべき ■ 階層的なVAEではKL項によって学習が不安定に 4

5.

提案手法 Nouveau VAE ● Depth wise convolutions (Generatorのみ) ○ ○ 通常のConvよりもパラメータ数を増やずにreceptive fieldの拡大, MobileNetなどで使われる 左右対称性とか肌のuniformさをモデル化したい ● Residual parameterization of approximate posterior parameters ○ KL項の安定化 ● Spectral regularization ○ KL項の安定化 ● 階層構造 ○ ○ long-range correlationsへの対処 IAF-VAEの構造を参考に ● この他様々な工夫あり(活性化関数やKL warmingなど) 5

6.

Depth wise convolutions parameter数 2d conv: Cin * K * K * Cout Depth wise: Cin * K * K NVAE (Fig3a) Point wise: Cin * 1 * 1 * Cout (K * K * Cin + Cin*Cout) / (Cin * K * K * Cout) = 1/Cout + 1/K**2 計算量と表現力の工夫のため Inverted residualを採用 MobileNetV2: Inverted Residuals and Linear Bottlenecks (Fig3b) 詳しくは: https://qiita.com/yu4u/items/dc26d220e85279e76157 6

7.

Depth wise convolutions 7

8.

Residual parameterization of approximate posterior parameters なんでうまくいくの?? 8

9.

Residual parameterization of approximate posterior parameters 9

10.

Spectral regularization ● KL項を安定させたい ○ Encoderの入力が変化しても大きな変動がないような出力をさせたい ■ リプシッツ定数をコントロールする ● → Spectral Regularization ● GANの学習の安定性に大きく寄与した要素 Spectral normalizationについての輪読会資料: https://www.slideshare.net/DeepLearningJP2016/dl-spectral-norm-regularization-for-improving-the-generalizability-ofdeep-learningspectral-normalization-for-gans 10

11.

Spectral regularization 11

12.

階層構造 12

13.

階層構造 Improved Variational Inference with Inverse Autoregressive Flow Fig6 13

14.

モデル構造 14

15.

実験結果 bits per dimension: NLL * 1. / np.log(2.) / (C*H*W) が右図の値, 解像度が異なっ ても比較できるようにする 15

16.

実験結果 16

17.

zの標準偏差を狭めても多様性のある生成が可能 Sample時Batch Normのチューニングによって質が良くなることを報告 17

18.

NVAE 使ってみた on BAIR push dataset 18

19.

NVAE 使ってみた on BAIR push dataset 19

20.

Very deep VAE(ICLR 2021 under review) https://openreview.net/pdf?id=RLRXCV6DbEJ 潜在変数の階層が観測変数の次元と同じになればVAEが自己回帰モデルと等価で あるという導入から階層の深さに着目, 高解像度の画像生成に成功 学習の安定化のための施策 ● 重みの初期化 ○ Residual bottlleneck blockの最後のCNNを1/√Nで初期化(Nは層の深さ) ■ その他の層はPyTorchのデフォルトの設定 ● upsamplingをNearest neighborで行う ○ ○ 階層が深くなっても勾配がscaleすることなく伝わる free bits, KL warming upのような工夫を除いてもうまくいった ● 勾配ノルムが一定以上の場合はupdateをskip ○ Spectral Regularizationとは違ったヒューリスティックな方法 ● p(z)を固定してq(z|x)の学習を行う(epochの半分) 20

21.

Very deep VAE(ICLR 2021 under review) NVAEに比べてzの階層をより深くした パラメータ数も少ない NVAEは畳み込みのチャンネル数が多い NVAEの工夫をVery deep VAEに取り込むことは 可能 21

22.

感想 ● NVAEの実装から滲み出てくる大量の実験を回すための工夫 ○ ○ モデルを切り出して他のタスクに使うみたいなハードルが高い ■ 切り出し試み中 チャンネル数, 階層の数を同じにした工夫なしのモデルとの比較見てみたい ● Residual parameterizationがなぜうまくいくのかよくわからない ● Very deep + 既存の工夫で次のSoTA? ● disentangleについてあまり考察されていない 22