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

Understanding deeplearning, Chapter 16: Normalizing flows

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. Chapter 16: Normalizing flows
    Understanding deep learning, Prince [2023]
    yusumi

    View Slide

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

    View Slide

  3. 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

    View Slide

  4. 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

    View Slide

  5. 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

    View Slide

  6. 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

    View Slide

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

    View Slide

  8. 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

    View Slide

  9. 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

    View Slide

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

    View Slide

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

    View Slide

  12. 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

    View Slide

  13. 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

    View Slide

  14. 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

    View Slide

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

    View Slide

  16. 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

    View Slide

  17. 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

    View Slide

  18. 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

    View Slide

  19. 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

    View Slide

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

    View Slide

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

    View Slide

  22. 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

    View Slide

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

    View Slide

  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 24/84

    View Slide

  25. 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

    View Slide

  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] − β)
    Chaper 16: Normalizing flows – yusumi 26/84

    View Slide

  27. 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

    View Slide

  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 28/84

    View Slide

  29. 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

    View Slide

  30. 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

    View Slide

  31. 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

    View Slide

  32. 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

    View Slide

  33. 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

    View Slide

  34. 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

    View Slide

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

    View Slide

  36. 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

    View Slide

  37. 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

    View Slide

  38. 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

    View Slide

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

    View Slide

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

    View Slide

  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
    Chaper 16: Normalizing flows – yusumi 41/84

    View Slide

  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 について,非線形フローが要素ごとのフローならば,
    ヤコビ行列は対角行列となる6
    ∂f[h2]
    ∂h2
    = diag(hk+1, · · · , hD)
    633 ページの非線形変換から明らか
    Chaper 16: Normalizing flows – yusumi 42/84

    View Slide

  43. 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

    View Slide

  44. 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

    View Slide

  45. 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

    View Slide

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

    View Slide

  47. 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

    View Slide

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

    View Slide

  49. 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

    View Slide

  50. 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

    View Slide

  51. 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

    View Slide

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

    View Slide

  53. 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

    View Slide

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

    View Slide

  55. 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

    View Slide

  56. 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

    View Slide

  57. 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

    View Slide

  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 が存在する
    Chaper 16: Normalizing flows – yusumi 58/84

    View Slide

  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 に対応する
    z の不動点 z∗ を求めることができる (z と z∗ は別)
    Chaper 16: Normalizing flows – yusumi 59/84

    View Slide

  60. 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

    View Slide

  61. 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

    View Slide

  62. 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

    View Slide

  63. 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

    View Slide

  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) を
    行列に拡張
    Chaper 16: Normalizing flows – yusumi 64/84

    View Slide

  65. 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

    View Slide

  66. 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

    View Slide

  67. 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

    View Slide

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

    View Slide

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

    View Slide

  70. 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

    View Slide

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

    View Slide

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

    View Slide

  73. 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

    View Slide

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

    View Slide

  75. 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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  79. 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

    View Slide

  80. 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

    View Slide

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

    View Slide

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

    View Slide

  83. 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

    View Slide

  84. 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

    View Slide