基於流的生成模型是機器學習中的一類生成模型，利用歸一化流顯式建模機率分佈。這是一種使用機率密度變數變換法將簡單分佈轉換為複雜分佈的統計方法。 直接建模似然函式具有很多優點。例如，可以直接計算得到負對數似然並將其作為損失函式最小化。此外，透過從初始分佈中取樣並應用流變換可以生成新的樣本。 相比之下，變分自編碼器、生成對抗網路等其他生成模型無法顯式地表示似然函式。 方法 考慮隨機變數 z_1 和 z_0，其中 z_0 f1_1 z_1。對於 i 1 K，定義一系列由 z_0 變換得到的隨機變數 z_i f_i z_i1。其中函式 f_1 f_K 滿足可逆性，即存在反函式 f1_i。最終輸出變數 z_K 用於對目標分佈進行建模。 z_K 的對數似然為（參見下方推導過程）： log p_K z_K log p_0 z_0 sum_i1K log leftdet frac df_i z_i1dz_i1right 為了高效計算對數似然，函式 f_1 f_K 應既易於求逆，也易於計算其雅可比矩陣的行列式。在實踐中，這些函式通常使用深度神經網路建模，並透過訓練以最小化目標分佈資料樣本的負對數似然。這些架構一般設計為只需神經網路的正向傳播即可完成逆運算與雅可比行列式的計算，例如 NICE、RealNVP、Glow 等。 對數似然的推導 考慮 z_1 與 z_0，兩者之間滿足 z_0 f1_1 z_1。透過機率密度變數變換公式，z_1 的分佈為： p_1 z_1 p_0 z_0leftdet frac df_11z_1dz_1right 其中 det frac df_11z_1dz_1 是 f1_1 的雅可比矩陣的行列式。 由反函式定理可以得到 p_1 z_1 p_0 z_0leftdet left frac df_1 z_0dz_0right1right 使用行列式性質 det A1 det A1（其中 A 是可逆矩陣），則有： p_1 z_1 p_0 z_0leftdet frac df_1 z_0dz_0right1 對上式取對數後得到對數似然： log p_1 z_1 log p_0 z_0 log leftdet frac df_1 z_0dz_0right 對於任意 z_i 和 z_i1 都能得到類似結論。最終由遞迴關係可以得到： log p_K z_K log p_0 z_0 sum_i1K log leftdet frac df_i z_i1dz_i1right 訓練方法 與訓練其他一些深度學習模型類似，歸一化流的目標是最小化模型的似然分佈與目標分佈之間的 KL 散度。將模型的似然分佈記為 p_theta，要學習的目標分佈記為 p，則（正向）KL 散度為： D_KLpxp_thetax mathbb E_pxlog p_thetax mathbb E_pxlog px 上式右邊第二項表示目標分佈的熵，與模型引數 theta 無關，因此在最佳化時可以忽略，留下需要最小化的項是目標分佈下的負對數似然的期望。由於此項難以直接計算，可以透過重要性取樣的蒙特卡洛方法來近似。若已從目標分佈 px 中獨立取樣得到的資料集 x_i_i1N 從的樣本，則該項可近似估計為： hat mathbb E_pxlog p_thetax frac 1N sum_i0N log p_thetax_i 因此，可以將學習目標 underset thetaoperatorname argmin D_KLpxp_thetax 替換為 underset thetaoperatorname argmax sum_i0N log p_thetax_i 換句話說，最小化 KL 相度相當於最大化模型在觀測樣本下的似然。 訓練歸一化流的虛擬碼如下： 輸入：資料集 x_1n，歸一化流模型 f_theta cdot p_0 求解：透過梯度下降法最化 max_theta sum_j ln p_theta x_j 輸出：最佳化後的引數 hattheta 變體 平面流 平面流是最早的歸一化流方法。給定某個啟用函式 h，以及具有適當維度的引數 theta u w b，可以定義 x f_theta z z u h langle w z rangle b 一般而言，逆對映 f_theta1 沒有解析解。 相應的雅可比行列式為 det I hlangle w z rangle b uwT 1 hlangle w z rangle b langle u wrangle 。 為保證其處處可逆，行列式必須在整個定義域內非零。例如當 h tanh、langle u w rangle 1 時可以滿足可逆性要求。 非線性獨立成分估計（NICE） 非線性獨立成分估計（，簡稱）假設 x zin R2n 是偶數維變數，並將其從中間分成兩部分。此時歸一化流的定義為 x begin bmatrix x_1 x_2 end bmatrix f_theta z begin bmatrix z_1 z_2 end bmatrix begin bmatrix 0 m_theta z_1 end bmatrix 其中 m_theta 是任何帶有權重 theta 的神經網路。 其逆對映 f_theta1 為 z_1 x_1 z_2 x_2 m_theta x_1，雅可比行列式為 1，即該歸一化流動是體積保持的。 當 n1 時，這一映身可以視為沿 x_2 方向的一種曲線剪下。 實值非體積保持（Real NVP） 實值非體積保持（，簡稱）是 NICE 模型的一種推廣，定義為： x begin bmatrix x_1 x_2 end bmatrix f_theta z begin bmatrix z_1 es_theta z_1 odot z_2 end bmatrix begin bmatrix 0 m_theta z_1 end bmatrix 其逆對映是 z_1 x_1 z_2 es_theta x_1odot x_2 m_theta x_1，相應的雅可比行列式為 prodn_i1 es_theta z_1。當 s_theta 0 時，退化為 NICE 模型。由於 Real NVP 對映將向量 x 的兩部分分開處理，通常需要在每一層後新增一個置換操作 x_1 x_2 mapsto x_2 x_1。 生成流（Glow） 生成流（，簡稱）模型中每層由三個部分組成： 通道方向的仿射變換 y_cij s_c x_cij b_c 相應的雅可比行列式為 prod_c s_cHW 。 可逆 1x1 卷積 z_cij sum_c K_cc y_cij 相應的雅可比行列式為 det KHW，其中 K 是任意可逆矩陣。 Real NVP 部分，其雅可比行列式如前所述。 生成流透過引入可逆 1x1 卷積，改進了 Real NVP 中僅僅置換前後兩部分的方式，而是對所有層的通道進行總體上的置換。 掩碼自迴歸流（MAF） 掩碼自迴歸流（，簡稱）基於自迴歸模型，其定義了一個分佈在 Rn 上的隨機過程： begin align x_1 sim N mu_1 sigma_12 x_2 sim N mu_2 x_1 sigma_2 x_12 cdots x_n sim N mu_n x_1n1 sigma_n x_1n12 end align 其中 mu_i Ri1 to R 和 sigma_i Ri1 to 0 infty 是定義自迴歸模型的固定函式。 使用，該自迴歸模型可以被推廣為歸一化流： begin align x_1 mu_1 sigma_1 z_1 x_2 mu_2 x_1 sigma_2 x_1 z_2 cdots x_n mu_n x_1n1 sigma_n x_1n1 z_n end align 令 z sim N 0 I_n 可以重新得到自迴歸模型。 正向對映由於是順序性的因而會很慢，但反向對映因為可以並列而會比較很快。 相應的雅可比矩陣是下對角矩陣，其行列式為 sigma_1 sigma_2 x_1cdots sigma_n x_1n1 。 透過反轉 f_theta 和 f_theta1 這兩個對映，可以得到逆自迴歸流 ，簡稱。與 MAF 相反，IAF 的正向對映較快、反向對映較慢。 連續歸一化流（CNF） 除了透過函式組合來構建流的方法，另一種方法是將流表示為連續時間動力學，得到連續歸一化流（，簡稱）。設 z_0 為具有分佈 p z_0 的潛變數，使用以下流函式將此潛變數對映到資料空間： x F z_0 z_T z_0 int_0T f z_t t dt 其中 f 是任意函式，可以使用神經網路等進行建模。其反函式為： z_0 F1x z_T int_T0 f z_t t dt z_T int_0T f z_tt dt 於是可以得到 x 的對數似然： log p x log p z_0 int_0T text Trleft frac partial fpartial z_t right dt 由於上式中的跡僅取決於雅可比矩陣 partial_z_t f 的對角線，這意味著對雅可比矩陣的形式沒有任何限制。這與先前的離散歸一化模型不同，後者將雅可比矩陣設計為上對角或下對角形式，以便更高效地計算其行列式。 其中的跡可以使用 哈欽森技巧來估計：給定任意矩陣 Win Rntimes n 以及滿足 E uuT I 的任意隨機向量 uin Rn，可以得到 E uT W u tr W 。 通常，隨機向量 u 可以從正態分佈 N 0 I 或 pm n12n 中進行取樣。 當 f 由神經網路實現時，需要使用神經常微分方程。實際上，CNF 最早是與神經常微分方程在同一篇論文中提出的。 CNF 主要存在兩個缺陷：一是連續流必須是同胚的，從而保持方向性和（例如，不可能透過空間連續變形將左手翻轉為右手，也不可能將球面外翻或解開一個結），二是學習到的流 f 可能會由於退化而表現不佳（有無數個可能的 f 都能解決同一問題。 透過增加額外的維度，CNF 可以獲得足夠的自由度來反轉方向並突破環境同痕（類似於可以在三維空間中翻轉一個多邊形，或在四維空間中解開一個結），從而得到 增強神經常微分方程。 透過結合流形的和神經網路的通用近似定理，能夠證明 Rn 的任何同胚可以由 R2n1 上的神經常微分方程近似。 還可以為流 f 引入正則化損失，例如基於最優傳輸理論的正則化損失： lambda_K int_0Tleftf z_t tright2 dt lambda_J int_0Tleftnabla_z f z_t tright_F2 dt 其中 lambda_K lambda_J 0 是超引數。第一項懲罰模型隨時間變化流場的振盪，第二項則懲罰模型隨空間變化流場的振盪。這兩項共同引導模型生成在空間和時間上平滑的流。 缺點 儘管歸一化流在估計高維機率密度函式方面取得了成功，但其設計仍然存在一些缺陷。首先，歸一化流的潛空間並不是一個低維空間，因此基於流的模型預設情況下不支援資料壓縮，需要很大的計算量。不過，仍有辦法可以用它們進行影像壓縮。 此外，基於流的模型在估計分佈外樣本（即非訓練集分佈中抽取的樣本）的似然值時通常表現不佳。學者提出了一些假設來解釋這一現象，其中包括典型集假設、模型訓練中的估計問題或由於資料分佈熵引起的基礎性問題 。 歸一化流最有趣的特性之一是其學習到的雙射對映的可逆性。這一特性透過模型設計中的約束得以保證，從而確保理論上的可逆性。逆對映對確保變數變換定理的適用性、雅可比行列式的計算以及模型取樣都至關重要。然而在實踐中，由於數值不精確性，這種可逆性可能被破壞，進而導致逆對映爆炸。 應用 基於流的生成模型已應用於多種場景，例如： 音訊生成 影像生成 分子圖生成 點雲建模 影片生成 有損影像壓縮 異常檢測 參考文獻 Category 機器學習 Category 統計模型 Category 機率模型 Category 生成式人工智慧