基於流嘅生成模型

基於流嘅生成模型係機器學習當中用嘅一種生成模型，種模型旨在顯式噉建模出一個概率分佈，當中用到歸一化流呢種方法、一種憑藉變量變化公式捉簡單分佈轉換為複雜分佈嘅統計方法。

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

相比之下，好多生成建模方法作爲替代嘅同埋生成對抗網絡）都冇明確表示到個概似函數。

方法同推導 
設係具有分佈嘅隨機變量。

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

個對數概似係：

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

1.容易求逆；

2.容易計出Jacobi行列式。

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

反向訓練 
考慮有同，根據變量變化公式：

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

對於變化前後嘅一細橛範圍，保持總概率對應有：

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

其中係嘅Jacobi矩陣個行列式。

通常嚟講，條式適用於任何同埋，所以可以透過歸納法一路從目標分佈推到某個理想分佈：

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

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

正向生成 
對於變量變化公式應用反函數定理掉轉個行列式嘅分子分母：

因，有：

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

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

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

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

連續歸一化流 
比起按函數組合構造流，另一種方法即連續歸一化流係將個流就公式化成一種連續時間動態。 設係具有分佈嘅潛在變量。映射呢個潛在變量到數據空間可以用返呢種流函數：

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

個反函數就自然係：

嘅對數概似即為：

由於使到積分，喺實踐中可能要用到類似神經常微分方程之類嘅技巧。

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

音頻生成
 圖像生成
 分子圖生成
 點雲建模
 影片生成

考

連出去 
 基於流嘅深度生成模型 - Weng, Lilian
 歸一化流量模型
Flow-based Generative Model - 李宏毅

機械學習