基於流嘅生成模型
基於流嘅生成模型(英文: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]之類嘅技巧。
應用
編輯基於流嘅生成模型已應用於各種建模任務,包括:
考
編輯- ↑ Danilo Jimenez Rezende. "Variational Inference with Normalizing Flows". arXiv:1505.05770.
- ↑ Weng, Lilian (2018-10-13). "Flow-based Deep Generative Models". Lil'Log.
{{cite web}}
: CS1 maint: url-status (link) - ↑ Dinh. "NICE: Non-linear Independent Components Estimation". arXiv:1410.8516.
- ↑ Dinh. "Density estimation using Real NVP". arXiv:1605.08803.
- ↑ 5.0 5.1 Kingma. "Glow: Generative Flow with Invertible 1x1 Convolutions". arXiv:1807.03039.
- ↑ 6.0 6.1 6.2 Grathwohl. "FFJORD: Free-form Continuous Dynamics for Scalable Reversible Generative Models". arXiv:1810.01367.
- ↑ Chen. "Neural Ordinary Differential Equations". arXiv:1806.07366.
- ↑ Ping. "WaveFlow: A Compact Flow-based Model for Raw Audio". arXiv:1912.01219.
- ↑ Shi. "GraphAF: A Flow-based Autoregressive Model for Molecular Graph Generation". arXiv:2001.09382.
- ↑ Yang. "PointFlow: 3D Point Cloud Generation with Continuous Normalizing Flows". arXiv:1906.12320.
- ↑ Kumar. "VideoFlow: A Conditional Flow-Based Model for Stochastic Video Generation". arXiv:1903.01434.