基於流嘅生成模型

基於流嘅生成模型英文Flow-based generative model)係機器學習當中用嘅一種生成模型,種模型旨在顯式噉建模出一個概率分佈,當中用到歸一化流(normalizing flow)[1]呢種方法、一種憑藉變量變化公式(change-of-variable formula)捉簡單分佈轉換為複雜分佈嘅統計方法。

直接建模概似性英文likelihood)會有啲優勢。譬如,負對數概似率可以直接計算得出而且可以作爲損失函數來最細化。另外,仲可以透過採返初始分佈嘅樣本並應用流變換嚟生成新樣本。

相比之下,好多生成建模方法作爲替代嘅(例如變分自動編碼器(VAE)同埋生成對抗網絡)都冇明確表示到個概似函數。

方法同推導

編輯

 係具有分佈 隨機變量(可能係多變量)。

對於序數 ,設 係一條隨機變量序列、啲 係從 遍歷轉換而嚟嘅,噉樣一趟「遍歷」亦即係所謂嘅「流」[2]。其中啲函數 要係可逆嘅,即存在有反函數 。個最終輸出 就可以幫目標分佈建模。

 個對數概似係:

 

為唨有效噉計得出呢個對數概似,啲函數 要滿足:

1.容易求逆;

2.容易計出Jacobi行列式。

喺實踐當中,啲函數 係用深度神經網絡建模嘅,並透過訓練嚟幫目標分佈啲數據樣本嚟最細化佢個負對數概似,亦即係最佳化個損失函數。啲架構通常係設計成僅衹需要到神經網絡個前向傳遞功能(forward pass),就計得出個逆同埋啲Jacobi行列式。噉樣嘅架構包括有示例似NICE[3]、RealNVP[4]同埋Glow[5]

反向訓練

編輯

考慮有  ,根據變量變化公式:

 

呢條式表示變化前後嘅總概率保持係1。

對於變化前後嘅一細橛範圍,保持總概率對應(方向可以掉轉,所以加絕對值)有:

 

留意有 ,亦即係 ,攞一般意義下嘅變量變化公式嚟表示 個分佈:

 

其中  嘅Jacobi矩陣(經常攞嚟表示向量導數)個行列式

通常嚟講,條式適用於任何 同埋 ,所以可以透過歸納法一路從目標分佈推到某個理想分佈(好多時係高斯分佈):

 

兩頭取對數得到編碼器嘅對數概似:

 

當中左右都跟目標樣本 有關,所以從目標樣本當中取樣可以訓練出一串聯 出來,個串聯表示一串變換,捉啲目標樣本 逆推出最啱理想分佈 嘅啲 嘅。

正向生成

編輯

對於變量變化公式應用反函數定理掉轉個行列式嘅分子分母(由 好易睇得出):

 

  係一個可逆矩陣),有:

 

所以原本嘅分佈式又可以表示成:

 

注意右便唔會再同左便嘅輸出相關,所以可以攞嚟生成。

同樣經過遞歸同埋對數化可以得到生成模型嘅對數概似:

 

其中 可以由 取逆好容易噉得到,表示一串聯變換,可以捉理想分佈 底下啲樣本 轉換成目標分佈。

連續歸一化流

編輯

比起按函數組合構造流,另一種方法即連續歸一化流(continuous normalizing flow,CNF)係將個流就公式化成一種連續時間動態(continuous-time dynamic)[6]。 設 係具有分佈 嘅潛在變量。映射呢個潛在變量到數據空間可以用返呢種流函數:

 

其中 係一個任意函數,可以用神經網絡之類幫佢建模。

個反函數就自然係:[6]

 

 嘅對數概似即為:[6]

 

由於使到積分,喺實踐中可能要用到類似神經常微分方程(Neural ODE)[7]之類嘅技巧。

應用

編輯

基於流嘅生成模型已應用於各種建模任務,包括:

  1. Danilo Jimenez Rezende. "Variational Inference with Normalizing Flows". arXiv:1505.05770.
  2. Weng, Lilian (2018-10-13). "Flow-based Deep Generative Models". Lil'Log.{{cite web}}: CS1 maint: url-status (link)
  3. Dinh. "NICE: Non-linear Independent Components Estimation". arXiv:1410.8516.
  4. Dinh. "Density estimation using Real NVP". arXiv:1605.08803.
  5. 5.0 5.1 Kingma. "Glow: Generative Flow with Invertible 1x1 Convolutions". arXiv:1807.03039.
  6. 6.0 6.1 6.2 Grathwohl. "FFJORD: Free-form Continuous Dynamics for Scalable Reversible Generative Models". arXiv:1810.01367.
  7. Chen. "Neural Ordinary Differential Equations". arXiv:1806.07366.
  8. Ping. "WaveFlow: A Compact Flow-based Model for Raw Audio". arXiv:1912.01219.
  9. Shi. "GraphAF: A Flow-based Autoregressive Model for Molecular Graph Generation". arXiv:2001.09382.
  10. Yang. "PointFlow: 3D Point Cloud Generation with Continuous Normalizing Flows". arXiv:1906.12320.
  11. Kumar. "VideoFlow: A Conditional Flow-Based Model for Stochastic Video Generation". arXiv:1903.01434.

連出去

編輯