Prince, S. J. D. (2023). Understanding Deep Learning. MIT Press. http://udlbook.com
Chapter 16: Normalizing flowsUnderstanding deep learning, Prince [2023]yusumi
View Slide
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 References正規化フローと VAE正規化フロー (Normalizing flows)単純な分布を複雑な目標分布に変換する方法を学習するChaper 16: Normalizing flows – yusumi 2/84
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
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
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
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
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 References16.1 節: 一次元正規化フローChaper 16: Normalizing flows – yusumi 7/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 References16.1.1 節: 順変換潜在空間の分布 Pr(z) を元のデータ分布 Pr(x) に変換するa) 潜在変数 z の分布 (標準正規分布) c) 元のデータ x の分布Chaper 16: Normalizing flows – yusumi 8/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 References順変換潜在空間の分布 Pr(z) を元のデータ分布 Pr(x) に変換する2a) 潜在変数 z の分布 (標準正規分布) c) 元のデータ x の分布z から x を生成するための関数 x = f[z, φ] を定義する2別名: generative directionChaper 16: Normalizing flows – yusumi 9/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 References関数の勾配と確率密度の関係f[z, φ] の勾配が大きいところでは x の分布は引き伸ばされ,小さいところでは密になっているChaper 16: Normalizing flows – yusumi 10/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 References確率変数の変換元のデータ x の分布は,確率変数の変換で得られる:Chaper 16: Normalizing flows – yusumi 11/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 References16.1.2 節: 逆変換元のデータ分布 Pr(x) を潜在空間の分布 Pr(z) に変換する3c) 潜在変数 z の分布 (標準正規分布) a) 元のデータ x の分布f[z, φ] が逆関数を持つ場合に限り可能43別名: normalizing direction4逆関数を持つための必要十分条件: 関数が全単射Chaper 16: Normalizing flows – yusumi 12/84
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
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 References16.1.3 節: 学習学習データ {xi}Ii=1の分布をパラメータ φ で最尤推定するChaper 16: Normalizing flows – yusumi 14/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 References16.2 節: 一般化Chaper 16: Normalizing flows – yusumi 15/84
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.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 References16.2.1 節: DNN による順変換潜在空間の分布 Pr(z) を元のデータ分布 Pr(x) に変換する左から右への流れ複数の DNN を経由することで段々と複雑な分布を表現できるChaper 16: Normalizing flows – yusumi 17/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 ReferencesDNN による順変換潜在空間の分布 Pr(z) を元のデータ分布 Pr(x) に変換する左から右への流れ数式での表現:Chaper 16: Normalizing flows – yusumi 18/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 ReferencesDNN による逆変換元のデータ分布 Pr(x) を潜在空間の分布 Pr(z) に変換する右から左への流れ数式での表現:Chaper 16: Normalizing flows – yusumi 19/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 Referencesヤコビアンの計算前の出力が次の入力となるため連鎖的に掛け合わされる行列式はそれぞれの積で表される※ fk = fk[•, φk] と略記している(逆変換も同様)Chaper 16: Normalizing flows – yusumi 20/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 References学習学習データ {xi}Ii=1の分布をパラメータ φ で最尤推定するChaper 16: Normalizing flows – yusumi 21/84
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
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 References16.3 節: 逆変換可能なネットワーク層Chaper 16: Normalizing flows – yusumi 23/84
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 節: iRevNet6 16.3.7 節: iResNetChaper 16: Normalizing flows – yusumi 24/84
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 節: iRevNet6 16.3.7 節: iResNetChaper 16: Normalizing flows – yusumi 25/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 References16.3.1 節: 線形フロー (Linear flows)単純な線形変換で表されるフローf[h] = β + Ωhh ∈ RD: 入力,β ∈ RD: バイアス,Ω ∈ RD×D: 重み行列もし Ω が正則であれば,逆変換可能であるh = Ω−1(f[h] − β)Chaper 16: Normalizing flows – yusumi 26/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 References16.3.1 節: 線形フロー (Linear flows)単純な線形変換で表されるフローf[h] = β + Ωhh ∈ RD: 入力,β ∈ RD: バイアス,Ω ∈ RD×D: 重み行列もし Ω が正則であれば,逆変換可能であるh = Ω−1(f[h] − β)しかし逆行列の計算,ヤコビアンの計算に O[D3] かかるChaper 16: Normalizing flows – yusumi 27/84
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
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
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
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
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 節: iRevNet6 16.3.7 節: iResNetChaper 16: Normalizing flows – yusumi 32/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 References16.3.2 節: 要素ごとのフロー (Elementwise flows)非線形なフローを実現するための最も単純な方法入力の各次元に非線形変換を行う:f[•, φ]: パラメータ φ を持つ逆変換可能な非線形関数ヤコビ行列は対角行列となるため,以下の式になる:Chaper 16: Normalizing flows – yusumi 33/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 References逆変換可能な非線形関数の例区分線形関数があるKk=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
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 References要素ごとのフローの問題入力次元を混合しないため,変数間の相関を考慮できないChaper 16: Normalizing flows – yusumi 35/84
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 節: iRevNet6 16.3.7 節: iResNetChaper 16: Normalizing flows – yusumi 36/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 References16.3.3 節: カップリングフロー (Coupling flows)入力 h を2つの組 h = [h1, h2] に分割して混合するフロー変数間の相関を考慮しつつ計算を効率化できるChaper 16: Normalizing flows – yusumi 37/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 Referencesa) 順変換• 上半分 h1 はそのままコピーする• 下半分 h2 は g[•, φ] を通る• φ[•] はニューラルネットワーク,g[•, φ] は非線形フローChaper 16: Normalizing flows – yusumi 38/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 Referencesa) 順変換• 上半分 h1 はそのままコピーする• 下半分 h2 は g[•, φ] を通る入力次元の混合を多様化するため,一般的には層毎に次元をランダムに並び替えるChaper 16: Normalizing flows – yusumi 39/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 Referencesb) 逆変換• 上半分 h1はそのままコピーする• 下半分 h2は非線形フローを通る※ニューラルネットワーク φ[•] は逆変換を必要としないChaper 16: Normalizing flows – yusumi 40/84
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= IkChaper 16: Normalizing flows – yusumi 41/84
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
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=Dd=k+1∂f[hd]∂hd733 ページの非線形変換から明らかChaper 16: Normalizing flows – yusumi 43/84
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 節: iRevNet6 16.3.7 節: iResNetChaper 16: Normalizing flows – yusumi 44/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 References16.3.4 節: 自己回帰フロー (Autoregressive flows)カップリングフローの分割数を入力次元数に拡張させたフローカップリングフローの一般化と見なせるChaper 16: Normalizing flows – yusumi 45/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 Referencesa) 順変換入力次元数 D = 4 の場合の例• 直前の入力次元までを考慮• 並列計算が可能Chaper 16: Normalizing flows – yusumi 46/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 Referencesa) 順変換• 直前の入力次元までを考慮• 並列計算が可能一般化すると以下の式で表せる8:8g[•, •] は transformer,φ, φ[h1], φ[h1:2], · · · は conditioners と呼ばれるChaper 16: Normalizing flows – yusumi 47/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 Referencesb) 逆変換• 直前の入力次元までを考慮• 並列計算は不可能※ φ, φ[h1], φ[h1:2], · · · は逆変換を必要としないChaper 16: Normalizing flows – yusumi 48/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 References16.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
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 節: iRevNet6 16.3.7 節: iResNetChaper 16: Normalizing flows – yusumi 50/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 References16.3.6 節: Residual flows: iRevNetiRevNet: Deep invertible networksResNet (Residual Network) の残差接続を取り入れたフロー入力 h を2つの組 h = [h1, h2] に分割する(カップリングフローと同様)Chaper 16: Normalizing flows – yusumi 51/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 Referencesa) 順変換残差接続を追加することで勾配消失問題を緩和し,より深い層まで学習できるChaper 16: Normalizing flows – yusumi 52/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 Referencesb) 逆変換※ f1[•, φ1], f2[•, φ2] は逆変換を必要としないChaper 16: Normalizing flows – yusumi 53/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 Referencesb) 逆変換誤差逆伝播用に各層の出力を保存する必要がない(出力から直接入力を計算できるため,メモリ節約効果がある)1111通常は順変換時に出力結果を記録する必要があるChaper 16: Normalizing flows – yusumi 54/84
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 節: iRevNet6 16.3.7 節: iResNetChaper 16: Normalizing flows – yusumi 55/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 References16.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
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 ReferencesiResNet の準備 1: 縮小写像による不動点収束更新式 zn+1 = f[zn] をたどり不動点に到達するChaper 16: Normalizing flows – yusumi 57/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 ReferencesiResNet の準備 2: 縮小写像を利用した逆変換次の入力 z,出力 y を考える:y = z + f[z]f[z] が縮小写像であれば,不動点 f[z ] = z が存在するChaper 16: Normalizing flows – yusumi 58/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 ReferencesiResNet の準備 2: 縮小写像を利用した逆変換次の入力 z,出力 y を考える:y = z + f[z]f[z] が縮小写像であれば,不動点 f[z ] = z が存在するこの形式により,ある出力値 ytarget に対応するz の不動点 z∗ を求めることができる (z と z∗ は別)Chaper 16: Normalizing flows – yusumi 59/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 ReferencesiResNet の準備 2: 縮小写像を利用した逆変換次の入力 z,出力 y を考える:y = z + f[z]f[z] は縮小写像であり,不動点 f[z ] = z が存在するより具体的に出力値 ytarget が与えられた時,h(z) = ytarget − f[z] は縮小写像である14ことから,対応する不動点 z∗ が存在する15h(z∗) = z∗14式 (1) に代入して証明してみよう15この文脈では,逆変換とは出力から不動点を求めることを意味するChaper 16: Normalizing flows – yusumi 60/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 ReferencesiResNet の準備 2: 縮小写像を利用した逆変換更新式 zn+1 = ytarget − f[zn] をたどり不動点に到達するChaper 16: Normalizing flows – yusumi 61/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 ReferencesiResNet の準備 2: 縮小写像を利用した逆変換※不動点 f[z ] = z (a) と h[z∗] = z∗ (b) は同一とは限らないChaper 16: Normalizing flows – yusumi 62/84
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
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 ReferencesiResNet のヤコビアンヤコビアンの対数は以下のように求めることができる:• 1 行目は三角行列 A において log |A| = trace[log [A]] が成り立つことを利用• 2 行目は整級数展開 log (1 + x) = ∞n=1(−1)n+1xnn(|x| < 1) を行列に拡張Chaper 16: Normalizing flows – yusumi 64/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 ReferencesiResNet のヤコビアンヤコビアンの対数は以下のように求めることができる:• 1 行目は三角行列 A において log |A| = trace[log [A]] が成り立つことを利用• 2 行目は整級数展開 log (1 + x) = ∞n=1(−1)n+1xnn(|x| < 1) を行列に拡張trace[A] の計算には少し工夫が必要Chaper 16: Normalizing flows – yusumi 65/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 ReferencesHutchinson のトレース推定法確率変数 ∼ N(0, I) とすると,trace[A] は次式で変換できる:• 1 行目は E[ ] = I を利用• 2 行目は期待値の性質を利用• 3 行目は trace の線形性を利用• 4 行目は trace の循環性を利用• 5 行目は A がスカラーであることを利用Chaper 16: Normalizing flows – yusumi 66/84
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
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 References16.4 節: マルチスケールフローChaper 16: Normalizing flows – yusumi 68/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 References正規化フローの欠点潜在空間と実空間の次元が一致する必要があり,計算効率が悪いChaper 16: Normalizing flows – yusumi 69/84
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
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 References16.5 節: 応用Chaper 16: Normalizing flows – yusumi 71/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 References16.5.1 節: 密度推定応用先の一つに異常検知があるiResNet での密度推定結果確率値の低い観測は外れ値として扱われるChaper 16: Normalizing flows – yusumi 72/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 References16.5.2 節: GlowGLOW: Generative Flow with Invertible 1 × 1 ConvolutionsLU 分解,カップリング層,マルチスケールフローを含有逆変換可能な 1×1 畳み込みを適用し,生成画像の品質が向上1717負の対数尤度が既存研究 (RealNVP) に比べて減少したChaper 16: Normalizing flows – yusumi 73/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 ReferencesGlow提案モデル 1 セット ×K 個分をマルチスケールフローに結合Chaper 16: Normalizing flows – yusumi 74/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 References画像生成GLOW による画像生成18CelebA データセットで学習した GLOW サンプル18画像の品質は GAN や Diffusion Model に劣るChaper 16: Normalizing flows – yusumi 75/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 References画像ブレンドGLOW による画像生成両端の画像は実在する人物2 つの潜在変数を,ある特定の比率でブレンドして画像生成Chaper 16: Normalizing flows – yusumi 76/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 References16.5.3 節: 他の密度モデルの近似評価は簡単でもサンプリングが難しい分布は多く存在する(多峰性の分布,高次元の分布など)考案されたサンプリングアルゴリズム• ボックス・ミュラー変換• 棄却サンプリング• マルコフ連鎖モンテカルロ法... などChaper 16: Normalizing flows – yusumi 77/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 References他の密度モデルの近似評価は簡単でもサンプリングが難しい分布は多く存在する(多峰性の分布,高次元の分布など)既存のサンプリングアルゴリズム• ボックス・ミュラー変換• 棄却サンプリング• マルコフ連鎖モンテカルロ法... など順変換で分布を近似すれば,逆変換で効率的にサンプリング可能Chaper 16: Normalizing flows – yusumi 78/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 References正規化フローによる代理サンプリング正規化フローで目標分布を近似するPr(xi , φ): 順変換で得られる分布,q(xi ): 目標分布1919評価は簡単だがサンプリングが難しい分布とするChaper 16: Normalizing flows – yusumi 79/84
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
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 References目的別の正規化フローの適用a, b) 尤度の最大化 c, d) 目標分布の近似Chaper 16: Normalizing flows – yusumi 81/84
16.1 節 16.2 節 16.3 節 16.4 節 16.5 節 16.6 節 References16.6 節: まとめChaper 16: Normalizing flows – yusumi 82/84
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
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