[DL輪読会]Glow: Generative Flow with Invertible 1×1 Convolutions

193 Views

July 23, 18

スライド概要

2018/07/20
Deep Learning JP:
http://deeplearning.jp/seminar-2/

シェア

またはPlayer版

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

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

DEEP LEARNING JP [DL Papers] Glow: Generative Flow with Invertible 1⨯1 Convolutions Makoto Kawano, Keio Univ. http://deeplearning.jp/ 1

2.

書誌情報 2 タイトル:Glow: 著者:Diederik  Generative Flow with Invertible 1x1 Convolutions P. Kingma, Prafulla Dhariwal OpenAI, San Francisco -> 投稿日:2018/7/9 選定理由:VAE・Adamの提案者であるD.P.Kingmaの論文  Flow-basedの生成モデルは読んだことがなかった • 一応NICE,realNVPも読んだので紹介します  画像生成することを合成って呼びます ※某ars-pytorchで実装され始めてるのを見てやる気無くした ※間違ってたら指摘よろしくお願いします

3.

概要 厳密な潜在空間の推論および尤度評価が可能な 可逆変換を持つ生成モデルを提案  従来のRealNVPに1x1の畳み込みとactnormを導入  高解像度で鮮明な画像生成が可能 3

4.

はじめに 機械学習分野における2つの課題  データ効率性:人間のように少ないデータで学習が可能  汎化:タスクかそのコンテクストの変化に強い 生成モデルはこれらの課題に強い  現実世界モデルを学習可能 • エージェントが実際に行動する前に世界の変化を予見できる  入力の重要な特徴を学習可能 • 人間による教師やラベルがほぼなくても可能 様々な中間アプリケーションに応用可能  音声合成,テキスト分析,半教師あり学習,モデルベース制御? 4

5.

生成モデル 多くの生成モデルは,尤度ベースかGANで提案されている GAN:大きく,realisticな画像の合成が可能  潜在空間へのエンコーダがない  最適化が難しい  過剰適合なのか汎化なのか判断できない 尤度ベース:3種類に分類可能  自己回帰モデル:PixelCNN・PixelRNNなど  変分オートエンコーダ (VAE)  Flo w- based生成モデル(この論文) 5

6.

自己回帰モデル RNNが一般的に使われる  PixelRNN,Parallel wavenetなど Pros.  単純であること 今まで生成したピクセルをもとに次のピクセルを合成 Cons.  合成の並列化ができない  データの次元に比例して合成するデータの長さが増える 大きい画像や映像に対応するのが難しい 6

7.

変分オートエンコーダ Variational Autoencoder, VAE 対数尤度の変分下界を最適化する Pros:  学習と生成を並列化できる Cons:  最適化が難しい(Kingma本人曰く) 7

8.

Flow-based生成モデル 厳密な潜在変数の推論と対数尤度評価が可能  VAE:データ点に対応する潜在変数のみを近似的に推論  GAN:エンコーダがないため,推論不可能 効率の良い推論と合成が可能  自己回帰モデル:逆関数化は可能だが,並列化はできない 使いやすい潜在空間  自己回帰モデル:隠れ層が不明な周辺分布であるため,データ操作が困難  GAN:データ点を直接潜在空間で表現できず,分布全てを網羅できない メモリ使用量を抑えられる  Glowモデル:勾配計算に必要なメモリは層の深さに対して線形ではなく一定 8

9.

変数変換(change of variables) 生成モデルに対して,変数変換を適用する  g:可逆変換な関数(全単射,bijective)  最尤推定にも適用  9

10.

(Normalizing) flow|NICE 10 関数fの分解: 対数尤度 Non-linear Independent Components Estimation criterion  NICE, realNVP, Glowいずれも尤度最大化によるfの最適化を行う  fが可逆関数であるためには,ヤコビ行列式が存在するようにする

11.

ヤコビ行列式の計算 11 hiの次元数が大きいと,ヤコビ行列式の計算が大変  ヤコビ行列=対角行列や三角行列  行列式の計算が対角成分の和になる  多くの正方行列は,LU分解が可能| • P:置換行列,L:対角成分1の下三角行列,U:対角成分0の上三角行列,s:ベクトル

12.

General Coupling Layer General coupling layer  入力xをチャンネル方向で2つに分ける:x = [x1:d; xd+1:D]=[xI1; xI2]  ニューラルネットワーク  可逆可能写像  この関数のヤコビ行列 12

13.

Coupling Layerの亜種 Additive 13 coupling layer: Volume preserving Affine coupling layer(realNVP, Glow) None- V olume Preservi ng

14.

複数のcoupling layer 単純にcoupling 14 layerを繰り返してもdimensionが変わらない 並び替え(permutation)が必要  NICE, realNVP:チャンネルの順番を逆転させる  Glow: 1x1畳み込み(入出力チャンネルは一緒) • 入力: • 重み:    

15.

Actnorm realRVP:BatchNormalizationを使っている  ミニバッチ数に反比例して,ノイズバリアンスが増えて性能悪化  入力画像が大きいと必然的にバッチサイズは1になってしまう Glow: Activation Normalizationを提案  基本的にはBatchNormと一緒  初期値が,データ依存初期化で決定される • 最初のミニバッチがactnorm後に平均ゼロ,分散1になるようにする  初期化後は,パラメータが学習される 15

16.

1flowステップ Actnorm -> 1x1畳み込み -> affine coupling layer 16

17.

Multi-scaleアーキテクチャ 17 realNVPで提案された構造  Squeeze:2x2xc -> 1x1x4c  K:Flowの繰返回数  L:階層 L=3

18.

定量的評価 GlowとrealNVPの比較 ベンチマークデータセットをGlowに適用して,対数尤度比較 NN:畳み込み3つ,チャンネル512 Adam(lr: 0.001) 18

19.

定量的評価 各Coupling layerにおける各並び替えの効果検証 複数ベンチマークにおけるNLL比較 19

20.

定性的評価 20 CelebA-HQデータセットを使った顔合成  30000の高解像度(256x256)画像→K=32, L=6  ミニバッチサイズ:1  画像の色を忠実にするため,5-bit画像で学習(わからない) 高品質画像合成のため,換算温度モデル?からサンプリング  温度がTの時, からサンプル

21.

顔合成 21

22.

内挿 22

23.

セマンティックな合成 23

24.

温度変化 0, 0.25, 24 0.6, 0.7, 0.8, 0.9, 1.0

25.

まとめ 25 新しいFlow-based生成モデルGlowを提案  可逆変換なモデルを構築  複数のベンチマークにおいて対数尤度で性能を発揮  尤度ベースモデルにおいて,最も効率的で高解像度な自然画像を合成 ※残りの合成画像は,論文を見てください ※某ars-pytorchで実装され始めてるのを見てやる気無くした

26.

!!!!!! 26