Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Understanding deeplearning, Chapter 16: Normali...

yusumi
September 05, 2023

Understanding deeplearning, Chapter 16: Normalizing flows

Prince, S. J. D. (2023). Understanding Deep Learning. MIT Press. http://udlbook.com

yusumi

September 05, 2023
Tweet

More Decks by yusumi

Other Decks in Science

Transcript

  1. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 正規化フローと VAE 正規化フロー (Normalizing flows) 単純な分布を複雑な目標分布に変換する方法を学習する Chaper 16: Normalizing flows – yusumi 2/84
  2. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 正規化フローと VAE 正規化フロー (Normalizing flows) 単純な分布を複雑な目標分布に変換する方法を学習する VAE (Variational autoencoders) データの潜在的な特徴を捉えながら再構築と正規化1を学習する 1KL ダイバージェンスの最小化 Chaper 16: Normalizing flows – yusumi 3/84
  3. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 正規化フローと VAE 正規化フロー (Normalizing flows) 単純な分布を複雑な目標分布に変換する方法を学習する VAE (Variational autoencoders) データの潜在的な特徴を捉えながら再構築と正規化を学習する 絵の描画で例えるなら, • 正規化フローは対象物の描く手順を学ぶ • VAE は対象物の特徴や構造を学ぶ Chaper 16: Normalizing flows – yusumi 4/84
  4. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 関連する生成モデルとの比較 Efficient sampling 新しいサンプルの効率的な生成 High quality 学習したデータと区別がつかない Coverage 学習データの全範囲を表現できる Well-behaved 潜在変数の変化が観測変数の変化と対応する Interpretable 潜在空間の次元操作でデータの性質が変化する Efficient likelihood 尤度を正確に計算できる Chaper 16: Normalizing flows – yusumi 5/84
  5. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 目次 1 16.1 節: 一次元正規化フロー 2 16.2 節: 一般化 3 16.3 節: 逆変換可能なネットワーク層 4 16.4 節: マルチスケールフロー 5 16.5 節: 応用 6 16.6 節: まとめ Chaper 16: Normalizing flows – yusumi 6/84
  6. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 16.1 節: 一次元正規化フロー Chaper 16: Normalizing flows – yusumi 7/84
  7. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 16.1.1 節: 順変換 潜在空間の分布 Pr(z) を元のデータ分布 Pr(x) に変換する a) 潜在変数 z の分布 (標準正規分布) c) 元のデータ x の分布 Chaper 16: Normalizing flows – yusumi 8/84
  8. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 順変換 潜在空間の分布 Pr(z) を元のデータ分布 Pr(x) に変換する2 a) 潜在変数 z の分布 (標準正規分布) c) 元のデータ x の分布 z から x を生成するための関数 x = f[z, φ] を定義する 2別名: generative direction Chaper 16: Normalizing flows – yusumi 9/84
  9. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 関数の勾配と確率密度の関係 f[z, φ] の勾配が大きいところでは x の分布は引き伸ばされ, 小さいところでは密になっている Chaper 16: Normalizing flows – yusumi 10/84
  10. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 確率変数の変換 元のデータ x の分布は,確率変数の変換で得られる: Chaper 16: Normalizing flows – yusumi 11/84
  11. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 16.1.2 節: 逆変換 元のデータ分布 Pr(x) を潜在空間の分布 Pr(z) に変換する3 c) 潜在変数 z の分布 (標準正規分布) a) 元のデータ x の分布 f[z, φ] が逆関数を持つ場合に限り可能4 3別名: normalizing direction 4逆関数を持つための必要十分条件: 関数が全単射 Chaper 16: Normalizing flows – yusumi 12/84
  12. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 逆変換 元のデータ分布 Pr(x) を潜在空間の分布 Pr(z) に変換する a) 元のデータ x の分布 c) 潜在変数 z の分布 (標準正規分布) x から z を生成するために逆関数 z = f−1[x, φ] を計算する Chaper 16: Normalizing flows – yusumi 13/84
  13. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 16.1.3 節: 学習 学習データ {xi}I i=1 の分布をパラメータ φ で最尤推定する Chaper 16: Normalizing flows – yusumi 14/84
  14. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 16.2 節: 一般化 Chaper 16: Normalizing flows – yusumi 15/84
  15. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References データの多変量化とニューラルネットワークの適用 元データを x ∈ RD,潜在変数を z ∈ RD に拡張し, f[z, φ] を DNN とすると,確率変数の変換は次式で与えられる: • f[z, φ] は逆変換可能な DNN に限る • z = f−1[x, φ] と表現できる • ∂f[z,φ] ∂z −1 ∈ RD×D はヤコビアンの逆数である Chaper 16: Normalizing flows – yusumi 16/84
  16. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 16.2.1 節: DNN による順変換 潜在空間の分布 Pr(z) を元のデータ分布 Pr(x) に変換する 左から右への流れ 複数の DNN を経由することで段々と複雑な分布を表現できる Chaper 16: Normalizing flows – yusumi 17/84
  17. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References DNN による順変換 潜在空間の分布 Pr(z) を元のデータ分布 Pr(x) に変換する 左から右への流れ 数式での表現: Chaper 16: Normalizing flows – yusumi 18/84
  18. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References DNN による逆変換 元のデータ分布 Pr(x) を潜在空間の分布 Pr(z) に変換する 右から左への流れ 数式での表現: Chaper 16: Normalizing flows – yusumi 19/84
  19. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References ヤコビアンの計算 前の出力が次の入力となるため連鎖的に掛け合わされる 行列式はそれぞれの積で表される ※ fk = fk[•, φk] と略記している (逆変換も同様) Chaper 16: Normalizing flows – yusumi 20/84
  20. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 学習 学習データ {xi}I i=1 の分布をパラメータ φ で最尤推定する Chaper 16: Normalizing flows – yusumi 21/84
  21. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References ネットワーク層への要求 fk に対する 4 つの要求 1 任意の確率密度に変換するための十分な表現力をもつこと 2 逆変換が可能であること 入力と出力が一対一対応,つまり全単射 3 効率的な逆変換の計算が可能であること 一般的な逆行列の計算には O(次元数3 ) 必要 4 効率的なヤコビアンの計算が可能であること 一般的な行列式の計算には O(次元数3 ) 必要 Chaper 16: Normalizing flows – yusumi 22/84
  22. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 16.3 節: 逆変換可能なネットワーク層 Chaper 16: Normalizing flows – yusumi 23/84
  23. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References ネットワーク層の種類 逆変換可能なネットワーク層の紹介 1 16.3.1 節: 線形フロー 2 16.3.2 節: 要素ごとのフロー 3 16.3.3 節: カップリングフロー 4 16.3.4 節: 自己回帰フロー 5 16.3.6 節: iRevNet 6 16.3.7 節: iResNet Chaper 16: Normalizing flows – yusumi 24/84
  24. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References ネットワーク層の種類 逆変換可能なネットワーク層の紹介 1 16.3.1 節: 線形フロー 2 16.3.2 節: 要素ごとのフロー 3 16.3.3 節: カップリングフロー 4 16.3.4 節: 自己回帰フロー 5 16.3.6 節: iRevNet 6 16.3.7 節: iResNet Chaper 16: Normalizing flows – yusumi 25/84
  25. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 16.3.1 節: 線形フロー (Linear flows) 単純な線形変換で表されるフロー f[h] = β + Ωh h ∈ RD: 入力,β ∈ RD: バイアス,Ω ∈ RD×D: 重み行列 もし Ω が正則であれば,逆変換可能である h = Ω−1(f[h] − β) Chaper 16: Normalizing flows – yusumi 26/84
  26. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 16.3.1 節: 線形フロー (Linear flows) 単純な線形変換で表されるフロー f[h] = β + Ωh h ∈ RD: 入力,β ∈ RD: バイアス,Ω ∈ RD×D: 重み行列 もし Ω が正則であれば,逆変換可能である h = Ω−1(f[h] − β) しかし逆行列の計算,ヤコビアンの計算に O[D3] かかる Chaper 16: Normalizing flows – yusumi 27/84
  27. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 表現力の高さと効率化のトレード・オフ 計算を効率化するための Ω の形式を考えよう 対角行列? 利点: 逆行列と行列式の計算量が O[D] まで減る 欠点: 線形変換で h の要素間の影響が無視される 直交行列? 利点: 逆行列 Ω の計算量は O[D],行列式は常に 1 欠点: 特定の次元のみを拡大・縮小することができない 三角行列? 利点: 逆行列の計算量は O[D2],行列式は O[D] まで減る Chaper 16: Normalizing flows – yusumi 28/84
  28. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 表現力の高さと効率化のトレード・オフ 対角行列? 利点: 逆行列と行列式の計算量が O[D] まで減る 欠点: 線形変換で h の要素間の影響が無視される 直交行列? 利点: 逆行列 Ω の計算量は O[D],行列式は常に 1 欠点: 特定の次元のみを拡大・縮小することができない 三角行列? 利点: 逆行列の計算量は O[D2],行列式は O[D] まで減る 欠点の少なさから三角行列が広く使われている Chaper 16: Normalizing flows – yusumi 29/84
  29. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 重み行列の三角化 重み行列 Ω を部分ピボット付きの LU 分解5で表現する P: 並び替え行列,L: 下三角行列,U: 上三角行列,D: 対角行列 この変換により,逆行列の計算量 O[D2], 行列式の計算量 O[D] まで落とせる 5参考: https://cattech-lab.com/science-tools/lecture-mini-pivotting-lu/ Chaper 16: Normalizing flows – yusumi 30/84
  30. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 線形フローの問題 潜在空間に多変量正規分布を仮定した場合, ネットワーク層を経由した後も多変量正規分布になる Normh[µ, Σ] f[h]=β+Ωh − − − − − − − → Normh[β + Ωµ, ΩΣΩ ] 多層にしたところで正規分布以外の分布を表現できない Chaper 16: Normalizing flows – yusumi 31/84
  31. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References ネットワーク層の種類 逆変換可能なネットワーク層の紹介 1 16.3.1 節: 線形フロー 2 16.3.2 節: 要素ごとのフロー 3 16.3.3 節: カップリングフロー 4 16.3.4 節: 自己回帰フロー 5 16.3.6 節: iRevNet 6 16.3.7 節: iResNet Chaper 16: Normalizing flows – yusumi 32/84
  32. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 16.3.2 節: 要素ごとのフロー (Elementwise flows) 非線形なフローを実現するための最も単純な方法 入力の各次元に非線形変換を行う: f[•, φ]: パラメータ φ を持つ逆変換可能な非線形関数 ヤコビ行列は対角行列となるため,以下の式になる: Chaper 16: Normalizing flows – yusumi 33/84
  33. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 逆変換可能な非線形関数の例 区分線形関数がある K k=1 φk = 1, φk ≥ 0,K: ビン数,b = Khd ,f : [0, 1] − → [0, 1] h = f[h, φ],K = 5 の例 Chaper 16: Normalizing flows – yusumi 34/84
  34. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 要素ごとのフローの問題 入力次元を混合しないため,変数間の相関を考慮できない Chaper 16: Normalizing flows – yusumi 35/84
  35. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References ネットワーク層の種類 逆変換可能なネットワーク層の紹介 1 16.3.1 節: 線形フロー 2 16.3.2 節: 要素ごとのフロー 3 16.3.3 節: カップリングフロー 4 16.3.4 節: 自己回帰フロー 5 16.3.6 節: iRevNet 6 16.3.7 節: iResNet Chaper 16: Normalizing flows – yusumi 36/84
  36. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 16.3.3 節: カップリングフロー (Coupling flows) 入力 h を2つの組 h = [h1, h2] に分割して混合するフロー 変数間の相関を考慮しつつ計算を効率化できる Chaper 16: Normalizing flows – yusumi 37/84
  37. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References a) 順変換 • 上半分 h1 はそのままコピーする • 下半分 h2 は g[•, φ] を通る • φ[•] はニューラルネットワーク,g[•, φ] は非線形フロー Chaper 16: Normalizing flows – yusumi 38/84
  38. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References a) 順変換 • 上半分 h1 はそのままコピーする • 下半分 h2 は g[•, φ] を通る 入力次元の混合を多様化するため, 一般的には層毎に次元をランダムに並び替える Chaper 16: Normalizing flows – yusumi 39/84
  39. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References b) 逆変換 • 上半分 h1 はそのままコピーする • 下半分 h2 は非線形フローを通る ※ニューラルネットワーク φ[•] は逆変換を必要としない Chaper 16: Normalizing flows – yusumi 40/84
  40. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 計算の効率化 入力 h = [h1, h2] (h1 ∈ Rk, h2 ∈ RD−k) において, 上半分 h1 は変換を施さないためヤコビ行列は単位行列となる ∂f[h1] ∂h1 = Ik Chaper 16: Normalizing flows – yusumi 41/84
  41. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 計算の効率化 入力 h = [h1, h2] (h1 ∈ Rk, h2 ∈ RD−k) において, 上半分 h1 は変換を施さないためヤコビ行列は単位行列となる ∂f[h1] ∂h1 = Ik 下半分 h2 について,非線形フローが要素ごとのフローならば, ヤコビ行列は対角行列となる6 ∂f[h2] ∂h2 = diag(hk+1, · · · , hD) 633 ページの非線形変換から明らか Chaper 16: Normalizing flows – yusumi 42/84
  42. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 計算の効率化 入力 h = [h1, h2] (h1 ∈ Rk, h2 ∈ RD−k) において, 上半分 h1 は変換を施さないためヤコビ行列は単位行列となる ∂f[h1] ∂h1 = Ik 下半分 h2 について,非線形フローが要素ごとのフローならば, ヤコビ行列は対角行列となる7 ∂f[h2] ∂h2 = diag(hk+1, · · · , hD) 従って全体のヤコビアンは計算量 O[D − k] まで減らせる ∂f[h] ∂h = D d=k+1 ∂f[hd] ∂hd 733 ページの非線形変換から明らか Chaper 16: Normalizing flows – yusumi 43/84
  43. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References ネットワーク層の種類 逆変換可能なネットワーク層の紹介 1 16.3.1 節: 線形フロー 2 16.3.2 節: 要素ごとのフロー 3 16.3.3 節: カップリングフロー 4 16.3.4 節: 自己回帰フロー 5 16.3.6 節: iRevNet 6 16.3.7 節: iResNet Chaper 16: Normalizing flows – yusumi 44/84
  44. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 16.3.4 節: 自己回帰フロー (Autoregressive flows) カップリングフローの分割数を入力次元数に拡張させたフロー カップリングフローの一般化と見なせる Chaper 16: Normalizing flows – yusumi 45/84
  45. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References a) 順変換 入力次元数 D = 4 の場合の例 • 直前の入力次元までを考慮 • 並列計算が可能 Chaper 16: Normalizing flows – yusumi 46/84
  46. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References a) 順変換 • 直前の入力次元までを考慮 • 並列計算が可能 一般化すると以下の式で表せる8: 8g[•, •] は transformer,φ, φ[h1 ], φ[h1:2 ], · · · は conditioners と呼ばれる Chaper 16: Normalizing flows – yusumi 47/84
  47. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References b) 逆変換 • 直前の入力次元までを考慮 • 並列計算は不可能 ※ φ, φ[h1], φ[h1:2], · · · は逆変換を必要としない Chaper 16: Normalizing flows – yusumi 48/84
  48. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 16.3.5 節: 2 種類の自己回帰フロー どちらの手法も各次元が以前の次元にのみ依存して計算される Masked autoregressive flow (MAF) 逆変換の計算を効率化した手法9 • 順変換: 逐次計算が必要 • 逆変換: 並列計算が可能 Inverse autoregressive flow (IAF) 順変換の計算を効率化した手法 (MAF の逆)10 • 順変換: 並列計算が可能 • 逆変換: 逐次計算が必要 9次の次元を参照できない点で”masked” という単語が用いられている 10前スライドの説明では IAF を示している Chaper 16: Normalizing flows – yusumi 49/84
  49. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References ネットワーク層の種類 逆変換可能なネットワーク層の紹介 1 16.3.1 節: 線形フロー 2 16.3.2 節: 要素ごとのフロー 3 16.3.3 節: カップリングフロー 4 16.3.4 節: 自己回帰フロー 5 16.3.6 節: iRevNet 6 16.3.7 節: iResNet Chaper 16: Normalizing flows – yusumi 50/84
  50. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 16.3.6 節: Residual flows: iRevNet iRevNet: Deep invertible networks ResNet (Residual Network) の残差接続を取り入れたフロー 入力 h を2つの組 h = [h1, h2] に分割する (カップリングフローと同様) Chaper 16: Normalizing flows – yusumi 51/84
  51. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References a) 順変換 残差接続を追加することで勾配消失問題を緩和し, より深い層まで学習できる Chaper 16: Normalizing flows – yusumi 52/84
  52. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References b) 逆変換 ※ f1[•, φ1], f2[•, φ2] は逆変換を必要としない Chaper 16: Normalizing flows – yusumi 53/84
  53. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References b) 逆変換 誤差逆伝播用に各層の出力を保存する必要がない (出力から直接入力を計算できるため,メモリ節約効果がある)11 11通常は順変換時に出力結果を記録する必要がある Chaper 16: Normalizing flows – yusumi 54/84
  54. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References ネットワーク層の種類 逆変換可能なネットワーク層の紹介 1 16.3.1 節: 線形フロー 2 16.3.2 節: 要素ごとのフロー 3 16.3.3 節: カップリングフロー 4 16.3.4 節: 自己回帰フロー 5 16.3.6 節: iRevNet 6 16.3.7 節: iResNet Chaper 16: Normalizing flows – yusumi 55/84
  55. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 16.3.7 節: iResNet バナッハの不動点定理12による変換を採用した手法 バナッハの不動点定理 (X, dist) を空でない完備距離空間13とし,ある 0 < β < 1 と f : X → X に対して以下を満たす: dist f[z ], f[z] ≤ β · dist z , z ∀z, z (1) 式 (1) を満たすような写像 f を縮小写像という 関数が繰り返し更新可能な場合 (i.e. 出力が次の入力となる), 不動点 f[z∗] = z∗ に収束する 12cf. リプシッツ連続 13コーシー列が収束する距離空間 Chaper 16: Normalizing flows – yusumi 56/84
  56. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References iResNet の準備 1: 縮小写像による不動点収束 更新式 zn+1 = f[zn] をたどり不動点に到達する Chaper 16: Normalizing flows – yusumi 57/84
  57. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References iResNet の準備 2: 縮小写像を利用した逆変換 次の入力 z,出力 y を考える: y = z + f[z] f[z] が縮小写像であれば,不動点 f[z ] = z が存在する Chaper 16: Normalizing flows – yusumi 58/84
  58. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References iResNet の準備 2: 縮小写像を利用した逆変換 次の入力 z,出力 y を考える: y = z + f[z] f[z] が縮小写像であれば,不動点 f[z ] = z が存在する この形式により,ある出力値 ytarget に対応する z の不動点 z∗ を求めることができる (z と z∗ は別) Chaper 16: Normalizing flows – yusumi 59/84
  59. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References iResNet の準備 2: 縮小写像を利用した逆変換 次の入力 z,出力 y を考える: y = z + f[z] f[z] は縮小写像であり,不動点 f[z ] = z が存在する より具体的に 出力値 ytarget が与えられた時,h(z) = ytarget − f[z] は 縮小写像である14ことから,対応する不動点 z∗ が存在する15 h(z∗) = z∗ 14式 (1) に代入して証明してみよう 15この文脈では,逆変換とは出力から不動点を求めることを意味する Chaper 16: Normalizing flows – yusumi 60/84
  60. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References iResNet の準備 2: 縮小写像を利用した逆変換 更新式 zn+1 = ytarget − f[zn] をたどり不動点に到達する Chaper 16: Normalizing flows – yusumi 61/84
  61. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References iResNet の準備 2: 縮小写像を利用した逆変換 ※不動点 f[z ] = z (a) と h[z∗] = z∗ (b) は同一とは限らない Chaper 16: Normalizing flows – yusumi 62/84
  62. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 縮小写像を適用した正規化フロー iResNet: Residual flows and constraction mappings (i-RevNet の改良版) 残差接続 h = h + f[h, φ] において f[h, φ] を縮小写像とした手法 縮小写像となる条件 式 (1) を満たす 0 < β < 1 が存在すればよい つまり, 「重み行列 Ω の最大固有値が 1 未満」 16 かつ 「活性化関数の傾きが 1 未満」であればよい 16線形写像(行列 Ω による変換)の「拡大・縮小の度合い」は, その固有値によって決まる Chaper 16: Normalizing flows – yusumi 63/84
  63. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References iResNet のヤコビアン ヤコビアンの対数は以下のように求めることができる: • 1 行目は三角行列 A において log |A| = trace[log [A]] が 成り立つことを利用 • 2 行目は整級数展開 log (1 + x) = ∞ n=1 (−1)n+1xn n (|x| < 1) を 行列に拡張 Chaper 16: Normalizing flows – yusumi 64/84
  64. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References iResNet のヤコビアン ヤコビアンの対数は以下のように求めることができる: • 1 行目は三角行列 A において log |A| = trace[log [A]] が 成り立つことを利用 • 2 行目は整級数展開 log (1 + x) = ∞ n=1 (−1)n+1xn n (|x| < 1) を 行列に拡張 trace[A] の計算には少し工夫が必要 Chaper 16: Normalizing flows – yusumi 65/84
  65. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References Hutchinson のトレース推定法 確率変数 ∼ N(0, I) とすると,trace[A] は次式で変換できる: • 1 行目は E[ ] = I を利用 • 2 行目は期待値の性質を利用 • 3 行目は trace の線形性を利用 • 4 行目は trace の循環性を利用 • 5 行目は A がスカラー であることを利用 Chaper 16: Normalizing flows – yusumi 66/84
  66. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References ハッチンソン (Hutchinson) のトレース推定法 確率変数 ∼ N(0, I) とすると,trace[A] は次式で変換できる: 以上より,モンテカルロ近似をすると以下のように推定できる: Chaper 16: Normalizing flows – yusumi 67/84
  67. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 16.4 節: マルチスケールフロー Chaper 16: Normalizing flows – yusumi 68/84
  68. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 正規化フローの欠点 潜在空間と実空間の次元が一致する必要があり,計算効率が悪い Chaper 16: Normalizing flows – yusumi 69/84
  69. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References マルチスケールフロー (Multi-scale flows) 潜在変数 z を z = [z1, · · · , zN] に分割して変換するフロー z1, · · · , zN を層毎に結合することで計算を効率化 Chaper 16: Normalizing flows – yusumi 70/84
  70. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 16.5 節: 応用 Chaper 16: Normalizing flows – yusumi 71/84
  71. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 16.5.1 節: 密度推定 応用先の一つに異常検知がある iResNet での密度推定結果 確率値の低い観測は外れ値として扱われる Chaper 16: Normalizing flows – yusumi 72/84
  72. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 16.5.2 節: Glow GLOW: Generative Flow with Invertible 1 × 1 Convolutions LU 分解,カップリング層,マルチスケールフローを含有 逆変換可能な 1×1 畳み込みを適用し,生成画像の品質が向上17 17負の対数尤度が既存研究 (RealNVP) に比べて減少した Chaper 16: Normalizing flows – yusumi 73/84
  73. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References Glow 提案モデル 1 セット ×K 個分をマルチスケールフローに結合 Chaper 16: Normalizing flows – yusumi 74/84
  74. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 画像生成 GLOW による画像生成18 CelebA データセットで学習した GLOW サンプル 18画像の品質は GAN や Diffusion Model に劣る Chaper 16: Normalizing flows – yusumi 75/84
  75. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 画像ブレンド GLOW による画像生成 両端の画像は実在する人物 2 つの潜在変数を,ある特定の比率でブレンドして画像生成 Chaper 16: Normalizing flows – yusumi 76/84
  76. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 16.5.3 節: 他の密度モデルの近似 評価は簡単でもサンプリングが難しい分布は多く存在する (多峰性の分布,高次元の分布など) 考案されたサンプリングアルゴリズム • ボックス・ミュラー変換 • 棄却サンプリング • マルコフ連鎖モンテカルロ法... など Chaper 16: Normalizing flows – yusumi 77/84
  77. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 他の密度モデルの近似 評価は簡単でもサンプリングが難しい分布は多く存在する (多峰性の分布,高次元の分布など) 既存のサンプリングアルゴリズム • ボックス・ミュラー変換 • 棄却サンプリング • マルコフ連鎖モンテカルロ法... など 順変換で分布を近似すれば,逆変換で効率的にサンプリング可能 Chaper 16: Normalizing flows – yusumi 78/84
  78. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 正規化フローによる代理サンプリング 正規化フローで目標分布を近似する Pr(xi , φ): 順変換で得られる分布,q(xi ): 目標分布19 19評価は簡単だがサンプリングが難しい分布とする Chaper 16: Normalizing flows – yusumi 79/84
  79. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 正規化フローによる代理サンプリング 正規化フローで目標分布を近似する Pr(xi , φ): 正規化フロー,q(xi ): 目標分布 ※尤度の最大化とは対照的である: δ[x − xi ]: 尤度と等価にするために導入したデルタ関数 (5.7 節復習) Chaper 16: Normalizing flows – yusumi 80/84
  80. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 目的別の正規化フローの適用 a, b) 尤度の最大化 c, d) 目標分布の近似 Chaper 16: Normalizing flows – yusumi 81/84
  81. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 16.6 節: まとめ Chaper 16: Normalizing flows – yusumi 82/84
  82. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 正規化フローのまとめ 単純な密度分布を新しい密度分布に変換する手法 重要な特徴 1 尤度を直接評価できる 2 各層が逆変換可能である必要がある 3 サンプル生成に逆変換が必要 4 尤度の評価に逆変換が必要 5 ヤコビアンを効率的に計算するための工夫 6 メモリの効率化 Chaper 16: Normalizing flows – yusumi 83/84
  83. 16.1 節 16.2 節 16.3 節 16.4 節 16.5 節

    16.6 節 References 参考文献 I [1] Simon J.D. Prince. Understanding Deep Learning. MIT Press, 2023. URL https://udlbook.github.io/udlbook/. Chaper 16: Normalizing flows – yusumi 84/84