7.5K Views
October 12, 23
スライド概要
"2019/03/08
Deep Learning JP:
http://deeplearning.jp/seminar-2/ "
DL輪読会資料
DEEP LEARNING JP [DL Papers] Flow-based Deep Generative Models Presenter: Masahiro Suzuki, Matsuo Lab http://deeplearning.jp/ 1
発表内容について • フローベース生成モデルのまとめ – フローベース生成モデル:深層生成モデルのアプローチの一つ – 他の深層生成モデル(VAE,GAN)にはない利点を持っている(尤度が求められる,逆変換ができる, など) • 選定理由 – あまりフローベースをまとめている資料がなかったので – 最近フローの進歩が目覚ましいので – 先日の講義の資料が使い回せるので • 参考にしたページ・サイト – https://lilianweng.github.io/lil-log/2018/10/13/flow-based-deep-generative-models.html, Lilian Weng (正直このページ見れば充分) – https://blog.evjang.com/2018/01/nf1.html, Eric Jang(正規化フローのチュートリアル) – この2つのサイトから図もお借りしています. • フローベース研究の頭のおかしさ(いい意味で)が伝われば幸いです. 2
深層生成モデル(おさらい) 3
生成モデル • データの生成過程を数理的にモデル化したもの – 数理モデルは確率分布によって表される 観測データはある数理モデルから 生成されたとする 学習 𝑝 𝑥; 𝜃 生成 生成モデル パラメータ 観測データ – 𝑥𝑖 が確率𝑝 𝑥; 𝜃 から生成されるときは𝑥𝑖 ~𝑝 𝑥; 𝜃 と表記する. – 𝑝 𝑥; 𝜃 を𝑝𝜃 𝑥 と書くこともある 4
生成モデルの学習 • 真の分布(データ分布)𝑝𝑑𝑎𝑡𝑎 (𝑥)と近いモデル分布(生成モデル)𝑝𝜃 (𝑥)を求めたい – つまり適切な𝜃を求めたい 𝑝𝜃 (𝑥) 𝑝𝑑𝑎𝑡𝑎 (𝑥) – データ分布は実際にはわからないことにも注意 • カルバック・ライブラー(KL)ダイバージェンスで分布間の「距離」を測る. 𝐷𝐾𝐿 [𝑝𝑑𝑎𝑡𝑎 (𝑥)||𝑝𝜃 (𝑥)] 対数尤度関数 𝑝𝑑𝑎𝑡𝑎 (𝑥) = )𝑥( 𝑎𝑡𝑎𝑑𝑝 log 𝑝 (𝑥) 𝑑𝑥 = 𝐸𝑝𝑑𝑎𝑡𝑎 (𝑥) log 𝑝𝑑𝑎𝑡𝑎 (𝑥) − 𝐸𝑝𝑑𝑎𝑡𝑎 (𝑥) log 𝑝𝜃 (𝑥) 𝜃 • したがって,対数尤度関数の期待値を最大化するようなパラメータを選べば良い(最尤推定). – 実際にはデータ分布は得られないので,サンプル近似(訓練データ)で推定. 𝑁 𝐸𝑝𝑑𝑎𝑡𝑎 (𝑥) log 𝑝𝜃 (𝑥) ≅ 1 log 𝑝𝜃 𝑥𝑛 , 𝑁 ただし𝑥𝑛 ~𝑝𝑑𝑎𝑡𝑎 (𝑥) 𝑛=1 5
深層生成モデル • 生成モデルを深層ニューラルネットワーク(DNN)によって表現する(深層生成モデル). – 従来の確率分布だと,複雑な入力を直接扱えない. – DNNで表現することで,より複雑な入力xを扱えるようになる. • 一般物体画像のような複雑な画像も生成できる • DNNによるモデル化には次のようなアプローチがある(有向モデルの場合). – 𝑝(𝑥|𝑧) (生成器,generator)をモデル化する. • 𝑧を入力,𝑥を出力とするDNN𝑥 = 𝑓(𝑧)によって表現. • VAE,GAN,フローベースなど. 𝑧 生成器 𝑥 – 𝑝(𝑥)を直接モデル化する(自己回帰モデル). • 𝑝 𝑥 = ς𝑖 𝑝(𝑥𝑖 |𝑥1 , … , 𝑥𝑖−1 )として,各条件付き分布をモデル化. • NADE[Larochelle+ 11],PixelRNN(CNN)[Oord+ 16] など. https://deepmind.com/blog/wavenet-generative-model-raw-audio/ 6
深層生成モデルの分類 • 一部例外あり(例えばエンコーダを持つGANなど) • (項目は独断と偏見) 有向 or 無向 確率密度関数が 明示的or暗黙的 学習するモデル 学習方法 サンプリング (生成) 潜在変数への推論 エネルギーベース (RBM) 無向 明示的 エネルギー関数 𝐸(𝑥, 𝑧) 対数尤度の最大化 (CD法) 低コスト 可能 VAE 有向 明示的 生成モデル 𝑝 𝑥 𝑧 推論モデル 𝑞 𝑧 𝑥 ELBOの最大化 低コスト 近似事後分布(推論分 布)によって可能 自己回帰モデル 有向 明示的 条件付きモデル(の積) 対数尤度の最大化 高コスト 潜在変数自体がない ෑ 𝑝(𝑥𝑖 |𝑥1 , … , 𝑥𝑖−1 ) 𝑖 フローベース (可逆な生成モデル) 有向 明示的 フロー 𝑥 = 𝑓(𝑧) 対数尤度の最大化 低コスト フローの逆変換で可能 GAN 有向 暗黙的 生成器 𝐺(𝑧) 識別器 𝐷(𝑥) 敵対的学習 低コスト 推論はモデル化されない 7
深層生成モデルの分類 • 一部例外あり(例えばエンコーダを持つGANなど) • (項目は独断と偏見) 有向 or 無向 確率密度関数が 明示的or暗黙的 学習するモデル 学習方法 サンプリング (生成) 潜在変数への推論 エネルギーベース (RBM) 無向 明示的 エネルギー関数 𝐸(𝑥, 𝑧) 対数尤度の最大化 (CD法) 低コスト 可能 VAE 有向 明示的 生成モデル 𝑝 𝑥 𝑧 推論モデル 𝑞 𝑧 𝑥 ELBOの最大化 低コスト 近似事後分布(推論分 布)によって可能 自己回帰モデル 有向 明示的 条件付きモデル(の積) 対数尤度の最大化 高コスト 潜在変数自体がない フローベース生成モデル ෑ 𝑝(𝑥𝑖 |𝑥1 , … , 𝑥𝑖−1 ) 𝑖 フローベース (可逆な生成モデル) 有向 明示的 フロー 𝑥 = 𝑓(𝑧) 対数尤度の最大化 低コスト フローの逆変換で可能 GAN 有向 暗黙的 生成器 𝐺(𝑧) 識別器 𝐷(𝑥) 敵対的学習 低コスト 推論はモデル化されない 8
フローベース生成モデル 9
潜在空間を含んだモデル • 次のような潜在変数𝑧~𝑝𝑧 (𝑧)を持つ確率モデルを考える. 𝑧 𝑧~ 𝑝𝑧 (𝑧) 𝑥 = 𝑓(𝑧) 𝑥 • 𝑝𝑧 (𝑧)は尤度やサンプリングが容易な確率分布とする. • 𝑧から𝑥については決定論的な写像𝑥 = 𝑓(𝑧)を用いるとする. – なお,写像𝑓は可逆(𝑧 = 𝑓 −1 (𝑥))とする(=全単射). – また,𝑥と𝑧の次元は同じとする. -> 𝑥についての確率密度関数𝑝𝑥 (𝑥)を求めるには ? 10
確率密度関数における変数変換 • 確率密度関数の変数変換の公式より,𝑥における確率密度関数は以下のように計算できる. – 𝑥が1次元(スカラー)のとき −1 (𝑥) 𝑑𝑧 𝑑𝑓 𝑝𝑥 𝑥 = 𝑝𝑧 𝑧 = 𝑝𝑧 𝑓 −1 (𝑥) 𝑑𝑥 𝑑𝑥 – 𝑥が多次元(多変量)のとき −1 𝑑𝐳 𝑑𝑓 (𝐱) −1 𝑝𝑥 𝐱 = 𝑝𝑧 𝐳 det = 𝑝𝑧 𝑓 (𝐱) det 𝑑𝐱 𝑑𝐱 • det 𝑑𝑓 −1 (𝐱) 𝑑𝐱 はヤコビ行列式(ヤコビアン,Jacobian) 11
変数変換の直感的なイメージ • 確率密度関数の積分(微小区間では四角形の面積)は変数変換前後で等しくなければならない 𝑝 𝑥 𝑑𝑥 = 𝑝 𝑦 𝑑𝑦 • 分布を保つ上では,変化の「量」だけを気にすればいいので,変換後の確率密度関数は, 𝑑𝑥 𝑝 𝑦 =𝑝 𝑥 𝑑𝑦 – 変数が2次元や3次元になると,微小量変化の比は「面積」や「体積」になる(行列式になる理由) 12
変数変換による対数尤度関数 𝑧 𝑧~ 𝑝𝑧 (𝑧) 𝑥 = 𝑓(𝑧) 𝑥 • 変数変換によって,対数尤度関数(生成モデルの目的関数)は, −1 (𝐱) 𝑑𝑓 log 𝑝𝑥 𝐱 = log 𝑝𝑧 𝑓 −1 (𝐱) + log det 𝑑𝐱 となる. 13
正規化フロー • • 式より,𝑓は「可逆」かつ「ヤコビ行列式が簡単に計算できなればならない」. しかし,そのような𝑓は単純な変換しかできない. – これまでの深層生成モデルように,複雑な関数で変数間の関係をモデル化したい. • そこで,𝑓を繰り返し適用する(関数の合成)ことで複雑な分布を表現することを考える. 𝐱 = 𝐳𝐾 = 𝑓𝐾 ∘ 𝑓𝐾−1 ∘ ⋯ ∘ 𝑓1 (𝐳0 ) 可逆な写像𝑓による𝑧~ 𝑝𝑧 (𝑧)からの合成変換の流れのことをフロー(flow)といい,フローに よって有効な分布が構成される場合は正規化フロー(normalizing flow)という. 14
フローのポイント • 可逆な写像で構成されているので,そのフローの合成関数も可逆となる. 𝑓𝐾 ∘ 𝑓𝐾−1 ∘ ⋯ ∘ 𝑓1 𝐳0 −1 −1 = 𝑓1−1 ∘ ⋯ ∘ 𝑓𝐾−1 ∘ 𝑓𝐾−1 𝐳𝐾 • 𝑝(𝐱)からのサンプリングのためには,𝑝0 (𝐳0 )だけサンプリングすればいい. • したがって,任意の関数ℎの𝑝(𝐱)における期待値計算も,𝑝0 (𝐳0 )における期待値になる. 𝔼𝐱~𝑝(𝐱) ℎ 𝐱 = 𝔼𝐳0 ~𝑝0 𝐳0 [ℎ(𝑓𝐾 ∘ 𝑓𝐾−1 ∘ ⋯ ∘ 𝑓1 (𝐳0 ))] 15
フローの対数尤度関数 • ある時点𝑖の分布𝑝𝑖 (𝐳𝑖 )は, 𝑝𝑖 𝐳𝑖 = 𝑝𝑖−1 (𝑓𝑖−1 𝑑𝑓𝑖−1 𝐳𝑖 ) det 𝑑𝑧𝑖 𝑑𝑓𝑖 = 𝑝𝑖−1 (𝐳𝑖−1 ) det 𝑑𝐳𝑖−1 𝑑𝑓𝑖 = 𝑝𝑖−1 (𝐳𝑖−1 ) det 𝑑𝐳𝑖−1 • よって, log 𝑝𝑖 𝐳𝑖 −1 𝑥 = 𝑓(𝑧),𝑧 = 𝑓 −1 (𝑥)のとき −1 −1 𝑑𝑓 −1 𝑑𝑧 𝑑𝑥 𝑑𝑓 = = = 𝑑𝑥 𝑑𝑥 𝑑𝑧 𝑑𝑧 −1 det 𝑀−1 = det 𝑀 −1 𝑑𝑓𝑖 = log 𝑝𝑖−1 (𝐳𝑖−1 ) − log det 𝑑𝐳𝑖−1 16
フローの対数尤度関数 • したがって,フローの対数尤度関数は log 𝑝 (𝐱) = log 𝑝𝐾 (𝐳𝐾 ) = log 𝑝𝐾−1 𝐳𝐾−1 𝑑𝑓𝐾 − log det 𝑑𝐳𝐾−1 = (log 𝑝𝐾−2 𝐳𝐾−2 𝑑𝑓𝐾−1 𝑑𝑓𝐾 − log det ) − log det 𝑑𝐳𝐾−2 𝑑𝐳𝐾−1 =⋯ 𝐾 = log 𝑝0 𝐳0 𝑑𝑓𝑖 − log det 𝑑𝐳𝑖−1 𝑖=1 各層でlog-Jacobianを計算する 17
フローベース生成モデルの種類 • 「フローベース」と一言で言っても,使われ方などで次の3種類に分類することができる. 1. 可逆な生成モデル:フローによって潜在変数を持つ生成モデルを設計 2. 自己回帰フロー:自己回帰モデルの条件付きモデルにフローを用いる 3. フローによる変分推論:フローを変分推論の近似事後分布を柔軟にするために利用 – 各分類の名前は適当につけた. [Grathwohl+ 18]では,それぞれ 1. Partitioned transformations 2. Autoregressive transformations 3. Normalizing flows と呼んでいる(これらの総称をreversible generative modelsとしている). – 実際はそれぞれ独立ではない. • IAFのように,2と3の両方のモデルとかある 18
フローによる可逆な生成モデル 19
可逆な生成モデル • フローベースでは,従来の深層生成モデルで困難だった推論は逆変換によって直ちに計算できる. -> 可逆な生成モデル (invertible generative model) 注:この図では推論を𝑓,生成を𝑓 −1 としています(その場合ヤコビアンの項の符号が逆になる) • フローを用いて可逆な生成モデルを設計するためには,各層の𝑓のヤコビ行列式(Jacobian)が簡 単に計算できることが必要 – 各層に対応する複数のヤコビ行列式があるので,計算コストとメモリコストが重要 20
深層生成モデルの比較 • VAEでは推論のために推論モデル(エンコーダ)が必要だったが,フローベースでは単一の モデルでできる. 21
ヤコビ行列式 • 𝑓: ℝ𝑛 → ℝ𝑛 のヤコビ行列式は, 𝑑𝑓1 𝑑𝑥1 det ⋮ 𝑑𝑓𝑛 𝑑𝑥1 𝑑𝑓1 ⋯ 𝑑𝑥𝑛 ⋱ ⋮ 𝑑𝑓𝑛 ⋯ 𝑑𝑥𝑛 次元𝑛が大きくなるほど,ヤコビ行列式の計算は困難になる. • なるべくヤコビ行列式の計算を節約するには? 22
三角行列と行列式の計算 • 三角行列の行列式は, 𝑎11 det ⋮ 0 ⋯ 𝑎1𝑛 ⋱ ⋮ = 𝑎11 ⋯ 𝑎𝑛𝑛 ⋯ 𝑎𝑛𝑛 となり,対角成分の積で計算できる. – 上の例は,上三角行列. – 任意の正則行列は,LU分解で2つの三角行列(上三角と下三角)に分解できる. • フローのヤコビ行列式の計算も,なんらかの方法で三角行列に制約してコスト削減したい. – しかし,写像𝑓の「重み」自体を三角行列に制約するのは,アーキテクチャが限定されすぎる. -> 重みではなく,ヤコビ行列式が三角行列になる可逆変換𝑓を考える. 23
カップリング層 • 入力𝑥 ∈ ℝ𝐷 を2つのブロックに分ける. – 𝑥 = 𝑥1:d : 𝑥𝑑+1:𝐷 = [𝑥𝐼1 : 𝑥𝐼2 ] • それぞれのブロックに対して,次のような変換を考える(カップリング層) ൝ 𝑦𝐼1 = 𝑥𝐼1 𝑦𝐼2 = 𝑔(𝑥𝐼2 ; 𝑚 𝑥𝐼1 ) – ただし,𝑔: ℝ𝐷−𝑑 × 𝑚 ℝ𝑑 → ℝ𝐷−𝑑 は可逆関数, 𝑚は任意の関数(ニューラルネットワークなど, カップリング関数という) 24
カップリング層のヤコビ行列式 • 𝑑𝑦 カップリング層のヤコビ行列は,𝑑𝑥𝐼 1 = 𝐼𝑑 , 𝐼1 𝑑𝑦𝐼 1 𝑑𝑥𝐼 1 𝑑𝑦 = 𝑑𝑦𝐼 2 𝑑𝑥 𝑑𝑥𝐼 1 • 𝑑𝑦𝐼 1 𝑑𝑥𝐼 2 = 0より, 𝑑𝑦𝐼 1 𝐼𝑑 𝑑𝑥𝐼 2 = 𝑑𝑦𝐼 2 𝑑𝑦𝐼 2 𝑑𝑥𝐼 1 𝑑𝑥𝐼 2 0 𝑑𝑦𝐼 2 𝑑𝑥𝐼 2 ൝ 𝑦𝐼1 = 𝑥𝐼1 𝑦𝐼2 = 𝑔(𝑥𝐼2 ; 𝑚 𝑥𝐼1 ) 三角行列になるので,ヤコビ行列式は, 𝑑𝑦𝐼 2 𝑑𝑦 det = det 𝑑𝑥 𝑑𝑥𝐼 2 となる. ->𝐷 × 𝐷の行列式から, (𝐷 − 𝑑) × (𝐷 − 𝑑)の行列式になる 25
カップリング層の逆変換 • カップリング層 ൝ • 𝑦𝐼1 = 𝑥𝐼1 𝑦𝐼2 = 𝑔(𝑥𝐼2 ; 𝑚 𝑥𝐼1 ) 𝑔は可逆写像なので,カップリング層の逆変換は, 𝑥𝐼1 = 𝑦𝐼1 ൝ 𝑥𝐼2 = 𝑔−1 (𝑦𝐼2 ; 𝑚 𝑦𝐼1 ) となる. – 𝑚は逆変換の必要がないことに注意 26
NICE • Non-linear Independent Component Estimation(NICE)[Dinh+ 14] – 𝑔に加法カップリング(additive coupling)を利用:𝑔(𝑎; 𝑏) = 𝑎 + 𝑏 – カップリング層は, – このとき,逆変換は – また,ヤコビ行列式は ൝ ൝ 𝑦𝐼1 = 𝑥𝐼1 𝑦𝐼2 = 𝑥𝐼2 + 𝑚 𝑥𝐼1 𝑥𝐼1 = 𝑦𝐼1 𝑥𝐼2 = 𝑦𝐼2 − 𝑚 𝑦𝐼1 𝑑𝑦𝐼 2 𝑑𝑦 det = det =1 𝑑𝑥 𝑑𝑥𝐼 2 となり,変換前後で体積が不変(volume preserving)となる. • したがって,対数尤度関数は単にフロー𝑧 = 𝑓(𝑥)によって log 𝑝𝑥 (𝑥) = log 𝑝𝑧 𝑓 𝑥 27
NICEにおける工夫 • カップリング層の結合 – 変換していない入力に変換をかけるように,ブロックを交換して次のカップリング層に入力する(後ほ ど説明) – 全ての次元間での関係性を含めるには,少なくとも3層のカップリング層が必要 • スケーリング行列の導入 – 尤度計算は簡単になるが,分布もヤコビ行列式が1になるように制約されるため,変化しないという問題 がある. – そこでスケーリング行列として対角行列𝑆を導入し,最上層にかける – このとき,対数尤度は次のようになる(対角行列なので,行列式は対角成分の積) 𝐷 log 𝑝𝑥 𝑥 = [log 𝑝𝑧𝑖 𝑓𝑖 𝑥 + log |𝑆𝑖𝑖 |] 𝑖=1 • 事前分布𝑝𝑧 (𝑧) – 各次元で独立とし,ロジスティック分布やガウス分布を利用 28
画像生成(NICE) • 潜在変数からランダムにサンプリングして画像生成 29
Real NVP • Real-valued Non-Volume Preserving(Real NVP)[Dinh+ 17] – アフィンカップリング(affine coupling)を利用 – 𝑔 𝑎; 𝑏 = 𝑎⨀𝑏𝑠 + 𝑏𝑡 , 𝑏𝑠 = exp 𝑠 𝑥𝐼 1 ,𝑏𝑡 = 𝑡(𝑥𝐼 1 ) – ただし, 𝑠: ℝ𝑑 → ℝ𝐷−𝑑 ,𝑡: ℝ𝑑 → ℝ𝐷−𝑑 . • ヤコビ行列式は, 𝐼𝑑 𝑑𝑦 det = det 𝑑𝑦𝐼 2 𝑑𝑥 𝑑𝑥𝐼 1 0 𝑑𝑖𝑎𝑔(exp(𝑠(𝑥𝐼 1 ))) 𝐷−𝑑 = 𝑑𝑖𝑎𝑔(exp(𝑠(𝑥𝐼 1 ))) = exp( 𝑠 𝑥𝐼 1 ) 𝑖 𝑖=1 – NICEと異なり,行列式が1ではない(変換前後で体積が変わる(non-volume preserving) ) – 𝑑𝑖𝑎𝑔(exp(𝑠(𝑥𝐼 1 )))は対角行列なので,簡単に行列式が計算できる. • 𝑠や𝑡についてのヤコビ行列式は計算しなくていい. 30
Real NVP • カップリング層の変換は ቐ • 𝑦𝐼2 = 𝑥𝐼2 ⨀ exp 𝑠 𝑥𝐼 1 + 𝑡 𝑥𝐼1 逆変換は, ቐ • 𝑦𝐼1 = 𝑥𝐼1 𝑥𝐼1 = 𝑦𝐼1 𝑥𝐼2 = (𝑦𝐼2 − 𝑡(𝑦𝐼 1 ))⨀ exp −𝑠 𝑥𝐼 1 逆変換でも,𝑠や𝑡の逆変換を計算する必要がない – Real NVPなどでは,𝑠や𝑡に畳み込みResNetを用いる. 31
マスキングによるカップリング • マスク𝑏 ∈ {0,1}を用いると,カップリング層の変換は次のようにまとめて書ける • 画像における全次元・チャネルの関係性を考慮するため, 1. 市松模様(左図)のマスク 2. スクイーズ(𝑠 × 𝑠 × 𝑐 → 2 × 2 × 4𝑐) 𝑠 𝑠 3. チャネルごと(前半と後半で分ける,右図)のマスク を行う. 32
カップリング層の結合 • • カップリング層では,一方のブロック𝑥𝐼1 については変換されない(𝑦𝐼1 = 𝑥𝐼1 ) よって,カップリング変換していない部分については,次の層で変換することにする. – 変換が互い違いになるイメージ 33
Multi-scale architecture • 交互のカップリングK回(市松模様マスク)->スクイーズ->交互のカップリングK回(チャネル ごとマスク)->逆スクイーズを1層とする(下図の𝑓) . – 各カップリング処理では,畳み込みResNet+重み正規化+バッチ正規化 • それを多層にして全体を構成する. – ただし各層でこの処理を行うのは計算コスト的に辛いので,層が増えたら,入力次元を半分減らすよう にする(下図). -> multi-scale architecture 34
画像生成(Real NVP) NICEと比べて大幅に綺麗な画像を生成できるようになった. 35
Glow • Glow[Kingma+ 2018] – Real NVPのフローを改良した手法 • Glowでは次の2つの新たな工夫がある. – Activation normalization(actnorm) • バッチ正規化とほぼ同じだが,バッチサイズが1でも正規化可能 – Invertible 1×1 conv • Glowではカップリング層の前に1×1の畳み込み処理を入れることで,チャネル間全体の依存関係を捉える. -> Real NVPのような交互のマスクや,シャッフルなどをしなくてもいい. • ただし1×1 convなので,次元間(画素間)については全ての関係性を捉えられない(なのでスクイーズは必要) • 逆変換の際は,𝐖の逆行列の計算が必要だが,サイズが小さいので比較的簡単. 36
Glowのアーキテクチャ • • • 基本的にはReal NVPと同じ. ただし,1×1 convのおかげで交互にマスクする話が出てこない 実験では,K(1層のフロー数)=32,L(層の数)=3などとしている 37
画像生成(Glow) はるかに綺麗に生成できるようになった. ※Glowについて,より詳しくは河野くんの発表([DL輪読会]Glow: Generative Flow with Invertible 1×1 Convolutions)を参照 38
VideoFlow • VideoFlow [Kumar+ 19] – 4日前に出た論文(著者がめっちゃオールスター) – ビデオ生成するフローベースモデル. • 各時間ステップでの生成𝐱 𝑡 = 𝑓(𝐳𝑡 )にフローを利用 – Glowのmulti-scale architectureを用いる(𝐿層) • 一方,対数尤度 𝑝(𝐱)の計算のために, 𝑝(𝐳) (事前分布)として,自己回帰的な因数分解を考える. • 各時間ステップは潜在変数の階層で以下のように因数分解されるとする – これは単純に , のようにパラメータ化 39
生成動画(VideoFlow) • BAIR robot pushing dataset [Ebert+ 17] • 温度パラメータは,事前分布の分散を調整 [Kingma+ 18] • パラメータが大きい方が,よく動く一方ノイズが入りやすい. • 動画は https://sites.google.com/view/videoflow/home に掲載されている. 40
フローによる可逆な生成モデルの利点・欠点 • 利点: – 厳密な推論と,対数尤度の評価ができる. • 既存の手法では,RBM系以外はできなかった. • 画像生成以外にも,異常検知など,幅広い分野での利用が期待できる. – 推論と生成の両方が効率的. – 潜在変数内での操作ができる. – メモリ使用量を層に対して抑えられる. • 欠点: – アーキテクチャに制限がある. • 層を増やしても次元は変わらない. • 逆変換やヤコビ行列式の計算が容易である層を利用する必要 – 各フローでヤコビ行列式などを取っておく必要から,全体としてはメモリコストがかかる. 41
自己回帰フロー 42
自己回帰モデル • 𝑥 = [𝑥1 , … , 𝑥𝐷 ]について,尤度を各次元における条件付き分布の積で構成する. 𝐷 𝑝 𝑥 = ෑ 𝑝 𝑥𝑖 𝑥1 , … , 𝑥𝑖−1 𝑖=1 -> 自己回帰生成モデル – フローベースのように厳密に尤度を評価できる. • 自己回帰モデルでは,どのように条件付き分布を効率的に計算できるかがポイント – 1次元ごとに愚直に条件付き分布からサンプリングしていくと,計算コストが膨大になる. 43
MADE • Masked Autoencoder for Distribution Estimation(MADE)[Germain+ 15] – オートエンコーダの各層にマスクをかけて,先の要素以外から条件づけられるように構成する. • 隠れ層に適当な番号をつける. • その番号より大きいユニットからのユニットを遮断するようにマスクを1にする -> 一回の順伝播で,自己回帰の全条件付き分布の出力を得ることができる. – クロスエントロピー損失が負の尤度に対応 𝐷 − log 𝑝 𝐱 = −𝑥𝑑 log 𝑝 𝑥𝑑 = 1 𝐱 <𝑑 − 1 − 𝑥𝑑 log 𝑝 𝑥𝑑 = 0 𝐱 <𝑑 𝑑 𝐷 = −𝑥𝑑 log𝑥ො𝑑 − 1 − 𝑥𝑑 log(1 − 𝑥ො𝑑 ) 𝑑 44
フローとしての自己回帰 • 条件付き分布𝑝(𝑥𝑖 |𝑥1:𝑖−1 )がガウス分布でモデル化された自己回帰モデルを考える. – 平均と分散はVAEと同様に,DNNによって定義 • 条件付き分布からのサンプリングは,再パラメータ化トリック(アフィン変換)によって, -> この自己回帰モデルは𝐱 = 𝑓 𝐮 (𝐮~𝑁(𝟎, 𝐈) )という変換とみなすことができる 45
Masked Autoregressive Flow • この写像𝑥 = 𝑓(𝑢)の各要素の逆変換は, のように求められる. • また,ヤコビ行列式は 𝑑𝑢1 𝑑𝑥1 det ⋮ 𝑑𝑢𝐷 𝑑𝑥1 ⋯ ⋱ ⋯ 𝑑𝑢1 exp(−𝛼1 ) ⋯ 0 𝐷 𝑑𝑥𝐷 ⋮ ⋱ ⋮ = exp(− 𝛼𝑖 ) ⋮ = det 𝑑𝑢𝐷 𝑑𝑢𝐷 ⋯ exp(−𝛼𝐷 ) 𝑖=1 𝑑𝑥1 𝑑𝑥𝐷 のように簡単に計算することができる. • したがって,この変換𝑓をフローと見なすことができる. -> Masked Autoregressive Flow(MAF) [Papamakarios+ 17] 46
Masked Autoregressive Flow • この写像𝐱 = 𝑓(𝐮)の各要素の逆変換は, のように求められる. • また,ヤコビ行列式は 𝑑𝑢1 𝑑𝑥1 det ⋮ 𝑑𝑢𝐷 𝑑𝑥1 自己回帰の性質と逆変換の式(上式)より 𝑑𝑢 𝑖 < 𝑗のとき 𝑑𝑥 𝑖 = (𝑥𝑖 − 𝜇𝑖 ) 𝑑exp(− 𝑓𝑎𝑖 𝑥1:𝑖−1 ) 𝑗 ⋯ ⋱ ⋯ 𝑑𝑥𝑗 =0 𝑑𝑢1 exp(−𝛼1 ) ⋯ 0 𝐷 𝑑𝑥𝐷 ⋮ ⋱ ⋮ = exp(− 𝛼𝑖 ) ⋮ = det 𝑑𝑢𝐷 𝑑𝑢𝐷 ⋯ exp(−𝛼𝐷 ) 𝑖=1 𝑑𝑥1 𝑑𝑥𝐷 のように簡単に計算することができる. 𝑖= 𝑑𝑢 𝑗のとき 𝑑𝑥 𝑖 𝑗 逆変換の式より 𝑑𝑥 = exp(− 𝑓𝑎𝑖 𝑥1:𝑖−1 ) 𝑑𝑥𝑖 = exp(− 𝑓𝑎𝑖 𝑥1:𝑖−1 ) 𝑗 • したがって,この変換𝑓をフローと見なすことができる. -> Masked Autoregressive Flow(MAF) [Papamakarios+ 17] 47
MAFにおけるMADEの利用 • MAFの密度推定には,逆変換(推論) 𝐮 = 𝑓 −1 (𝐱)が必要 – 𝜇𝑖 = 𝑓𝜇𝑖 (𝑥1:𝑖−1 )と𝛼𝑖 = 𝑓𝛼𝑖 (𝑥1:𝑖−1 )は𝐮に依存しないので,ベクトル𝝁と𝜶を𝐱から一気に求めることができれ ば,𝐮 = 𝐱 − 𝝁 exp(−𝜶)で高速に推論できる. • パラメータネットワーク(𝑓𝛼 と𝑓𝜇 )の設計にMADEを使う. – すると,1つのパスだけで𝐱から𝝁と𝜶を一気に求めることができる. • ただし生成𝐱 = 𝑓 (𝐮) は, 𝜇𝑖 や𝛼𝑖 が𝑥1:𝑖−1 に依存するので,一気にできない(D次元分かかる). 48
Inverse Autoregressive Flow • Inverse Autoregressive Flow(IAF)[Kingma+ 16] – MAFとほとんど同じだが,パラメータネットワーク(MADE)の入力が ノイズ𝐮 になっている点が異なる. • MAFでは,データ𝐱が入力だった. MAF IAF – そのため,MAFとは異なり,高速にサンプリング(生成)することができる • 元論文では,変分推論における柔軟な推論のために導入されている(フローによる変分推論). • 推論のフローがサンプリングとなる. – その一方で,尤度の推定(つまり訓練)は遅くなる. 49
MAF vs IAF 50
Parallel WaveNet • Parallel WaveNet [Oord+ 17] – WaveNetは自己回帰モデルなのでサンプリングは遅い(が高性能). – そこで,サンプリングが高速なParallel WaveNetを自己回帰のWaveNetに近づける. • Parallel WaveNetとして生成が高速な(しかし訓練が遅い)IAFを用いる(生徒). – 近づける方法としては,確率密度蒸留(probability density distillation)を提案している. ※Parallel Wavenetについて,より詳しくは阿久澤くんの発表([DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech Synthesis)を参照 51
Neural Autoregressive Flow • Neural Autoregressive Flow(NAF)[Huang+ 18] – IAFやMAFのアフィン変換を特殊なDNNに置き換えた手法 • 自己回帰フロー(ここではIAF)をconditioner 𝑐とtransformer 𝜏に分解する. 𝐱 𝑡 = 𝑓 𝐮1:𝑡 = 𝜏(𝑐 𝐮1:𝑡−1 , 𝐮𝑡 ) – これまでは,𝑐をMADE,𝜏をアフィン変換(再パラ)と考えていた. • NAFでは,DNNによってこれを次のようにモデル化する. 𝜏 𝑐 𝐮1:𝑡−1 , 𝐮𝑡 = 𝐷𝑁𝑁(𝐮𝑡 ; 𝜙 = 𝑐(𝐮1:𝑡−1 )) ※図では,uがx,xがyとなっている – ただし𝜙はDNNの重み. – つまり,conditionerを𝐮1:𝑡−1 から得られるtransformerの重み(擬似パラメータ)と考える. • transformer は入力と出力が両方1次元とするDNN. 52
Transformerの種類と性能 • Deep Sigmoidal Flow(DSF)とDeep Dense Sigmoidal Flows(DDSF)を提案. – 従来の変換(アフィン変換)よりも柔軟な変換を実現 – いずれも可逆で,ヤコビ行列式も連鎖律で容易に計算できる. • 実験では,密度推定とサンプリングの両方でアフィン変換のMAF/IAFよりも高い性能 サンプリング 真の分布 IAF-affine NAF(IAF-DSF) 密度推定 真の分布 MAF-affine NAF(MAF-DSF) 53
フローによる変分推論 54
変分推論 • 背景:潜在変数を持つ確率モデル(例えば𝑝 𝐱, 𝐳 = 𝑝 𝐱 𝐳 𝑝(𝐳))の周辺対数尤度log 𝑝 𝐱 = log 𝐱 𝑝 , 𝐳 𝑑𝐳は通常計算困難なため,直接最大化できない. • 近似事後分布𝑞(𝐳|𝐱)を導入(amortized variational inference)して,イェンセンの不等式より 𝑝 𝐱, 𝐳 log 𝑝 𝐱 ≥ )𝐱|𝐳(𝑞 log 𝑑𝑧 ≡ ℒ(𝐱) 𝑞 𝐳|𝐱 ℒ(𝐱)はエビデンス下界(evidence lower bound, ELBO) – 対数尤度の代わりにELBOを最大化する. • ここで,対数尤度とELBOの差は, 𝑝 𝐱, 𝐳 log 𝑝 𝐱 − ℒ 𝐱 = න 𝑞 𝐳|𝐱 log 𝑝 𝐱 𝑑𝐳 − න 𝑞 𝐳|𝐱 log 𝑑𝐳 = 𝐷𝐾𝐿 [𝑞 𝐳|𝐱 ||𝑝 𝐳|𝐱 ] 𝑞 𝐳|𝐱 • したがって,ELBOが対数尤度となるべく等しくなるためには,KLダイバージェンスがなるべく 小さくなるような柔軟な近似事後分布を設計することが重要 55
フローによる変分推論 • 事後分布𝑞(𝐳|𝐱)は再パラメータ化トリックの都合上,パラメータ化が容易な分布(ガウス分布と か)しか使えない. • そこで,フローによってシンプルな分布をより柔軟な事後分布に変換することを考える. -> フローによる変分推論 • フローによる事後分布𝑞(𝐳|𝐱) = 𝑞𝐾 (𝐳𝐾 ), 𝐳𝐾 = 𝑓𝐾 ∘ 𝑓𝐾−1 ∘ ⋯ ∘ 𝑓1 (𝐳0 ) (パラメータ化容易な初期分 布は𝑞0 (𝐳0 ) )によって,ELBOは, 𝑝 𝐱, 𝐳 )𝐱|𝐳(𝑞 log 𝑑𝐳 = 𝑞 0 𝐳0 log𝑝(𝐱, 𝐳𝐾 )𝑑𝑧 − 𝑞 0 𝐳0 log𝑞𝐾 (𝐳𝐾 )𝑑𝐳 𝑞(𝐳|𝐱) = 𝑞 0 𝐳0 log𝑝(𝐱, 𝐳𝐾 )𝑑𝐳 𝐾 𝑑𝑓𝑖 −𝔼𝑞0 𝐳0 [log𝑞0 𝐳0 − log det ] 𝑑𝐳𝑖−1 𝑖=1 • これまでと同様,ヤコビ行列式が簡単に計算できる必要がある – ただし可逆な生成モデルと異なり,入力データから直接学習する必要はないことに注意. 56
Planar Flow • Planar Flow [Rezende+ 15] – この研究で初めてNormalizing flowという単語が登場 – 次のような変換を考える 𝐳 ′ = 𝐳 + 𝐮ℎ(𝐰 𝑇 𝐳 + 𝑏) ただし,𝐮, 𝒘 ∈ ℝ𝐷 , ℎはtanhなどの活性化関数 – この変換は, tanhのとき,𝐮𝑇 𝐰 ≥ −1ならば可逆. – ℎ(𝐰 𝑇 𝐳 + 𝑏)の出力はスカラーとなることに注意(出力ユニットが1のMLP) • Matrix determinant lemmaを用いて,ヤコビ行列式は Matrix determinant lemma det 𝐈 + 𝐮ℎ′ 𝐰 𝑇 𝐳 + 𝑏 𝐰 𝑇 = 1 + 𝐮ℎ′ 𝐰 𝑇 𝐳 + 𝑏 𝐰 𝑇 ただし,ℎ′はℎの導関数 – したがって,このフローは𝑂(𝐷)のオーダーで計算できる. 𝐀が可逆行列のとき det 𝐀 + 𝐮𝐯 𝑇 = 1 + 𝐯 𝑇 𝐀−1 𝐮 det 𝐀 が成り立つ. 57
Sylvester normalizing flow • Sylvester normalizing flow(SNF)[Berg+ 18] – MLPの出力をスカラーではなく𝑀( ≤ 𝐷)次元に一般化したフロー – 𝐀 ∈ ℝD×𝑀 , 𝐁 ∈ ℝM×𝐷 , 𝐛 ∈ ℝM のとき,単層のMLP + Residual connectionを考える. 𝐳 ′ = 𝐳 + 𝐀ℎ(𝐁𝐳 + 𝐛) – しかしこのフローは一般的に可逆ではない&ヤコビ行列式も困難 • ෩ と直交行列𝐐によって𝐀 = 𝐐𝐑と𝐁 = 𝐑 ෩ 𝐐𝑇 のように制約する. そこで,上三角行列𝐑, 𝐑 ෩ 𝐐𝑇 𝐳 + 𝐛) 𝐳 ′ = 𝐳 + 𝐐𝐑ℎ(𝐑 • Sylvester’s determinant identityより,ヤコビ行列式は det(𝐈𝑀 + 𝑑𝑖𝑎𝑔(ℎ′ ෩ 𝐐𝑇 𝐳 + 𝐛 )𝐑 ෩ 𝐑) 𝐑 Sylvester’s determinant identity det(𝐈𝐷 + 𝐀𝐁) = det(𝐈𝑀 + 𝐁𝐀) となり, 𝑂(𝐷)のオーダーで計算できる.また,一定の条件の下(Theorem 2参照)で可逆になる. 58
直交行列Qの計算とIAFとの関係 • 直交行列Qの計算は困難なので,次の3つの方法を提案(詳細は省略) – Orthogonal SNF:直交行列に収束するように反復的に更新する – Householder SNF:計算が容易なハウスホルダー鏡映の積で表現 – Triangular SNF:フローごとに交互に,単位行列あるいはそれを列方向に反転したものをQとする 𝑡−1 𝑡−1 • IAF(𝑧𝑖𝑡 = 𝜇𝑖𝑡 𝐳1:𝑖−1 + 𝜎𝑖𝑡 (𝐳1:𝑡−1 )・𝑧𝑖𝑡−1 )との比較 – SNFは,IAFの分散を1に固定した場合(mean-only IAF)とみなせる. – mean-only IAFはヤコビ行列式が1となるが,SNFでは1ではない – またIAFでは,全てのフローでパラメータが固定となるが,SNFではフローごとに推論する. SNF IAF 59
実験結果(SNF) • PlanarやIAFよりも良い結果 60
まとめ • フローは,密度関数の評価・逆変換可能という大きな利点がある. • しかし可逆とヤコビアンの制約があるため,解きたい問題設定に応じた手法が提案されている. – 可逆な生成モデルは,アーキテクチャにかなり制約があるものの,フローだけで潜在変数を含んだ生成 モデルを記述できる. – 自己回帰フローは,密度推定とサンプリングのトレードオフがあるものの,ヤコビ行列式を効率よく計 算できる. • Neural Ordinary Differential Equation[Chen+ 18]の登場 – FFJORD(Free-Form Jacobian of Reversible Dynamics)[Greathwohl+ 19] – これの登場によって,フローにおける諸々の制約が外れた • • • • フローのダイナミクスが離散から連続的になった. (それに関連して)モデルのパラメータ数が大幅に減った. ヤコビ行列式の計算コストが低くなった. 密度推定とサンプリングの両方が効率的. ※詳しくは冨山くんの発表([DL輪読会]Neural Ordinary Differential Equations)を参照 61
感想 • やばい人たちがやばいモデルを提案しまくっている印象 • 今後は – 表現学習としてのフロー – 系列情報とフロー(VideoFlow) – 他の深層生成モデルとの組み合わせ(すでにflow-GAN[Grover+ 17]などいくつかある) – フローの実応用 あたりが重要になりそう. • 個人的には,単独で使われる技術にはならずに,世界モデルの一部として組み込まれる感じがい い気がしている. • 可逆な性質は,階層間に双方向結合がある脳的にも興味深い. 62