深度生成模型基本概念


基本概念[3]

生成模型

  • 統計學和機器學習的一個主要目標是根據從某個分布得到的樣本建模該分布,這是無監督學習的一個例子,有時稱作生成建模generative modelling。應用包括密度估計density estimation, 異常檢測outlier detection, 先驗創建prior construction以及數據集概括dataset summarization
  • 生成模型: 數據分布的模型。真實數據分布\(p_{data}(\vec x)\),建模數據分布\(p_{\theta}(\vec x)\),其中\(\theta\)是參數。最大似然估計:為數據指定最大似然來找到模型,\( \begin{equation} \begin{aligned} \theta^* & = \arg\min_{\theta}D_{KL}(p_{data}(\vec x)||p_{\theta}(\vec x)) \\ & = \arg\min_{\theta}E_{p_{data}(\vec x)}[\log p_{data}(\vec x)-\log p_{\theta}(\vec x)] \\ & = \arg\max_{\theta}E_{p_{data}(\vec x)}[\log p_{\theta}(\vec x)] \approx \frac{1}{N}\sum_{i=1}^N\log p_{\theta}(\vec x^{(i)}) \end{aligned} \end{equation} \)
    • 學習生成模型:可以生成新數據樣例(從學到的分布中采樣);當數據生成的成本很高時這是有用的,如一個需要很長時間運行的現實世界的實驗;采樣也用於創建高維空間積分的估計器。可以計算測試數據的似然,用於拒絕采樣或判斷模型的好壞。可以發現變量之間的條件關系。可以從數據中抽取結構
    • 深度生成模型:使用深度神經網絡建模數據分布的生成模型

深度生成模型的分類

  • 自回歸模型autoregressive models: 機器翻譯;可歸到精確似然模型
  • 隱含變量模型(explicit)latent variable models: VAE[2]
  • 隱式生成模型implicit generative models: GAN[1]; 模型被定義為隱式采樣過程
  • 基於能量模型energy-based models
  • 基於標准化流精確似然模型exact-likelihood models based on normalizing flows(可逆生成模型invertible generative models/可逆顯式隱含變量模型invertible explicit latent variable models): RealNVP
    • 在VAE背景下增加變分后驗的靈活性
    • 直接作為生成模型
  • GAN和VAE都不允許新點概率密度的精確計算exact evaluation,且訓練是有挑戰的(由於一系列現象包括模式崩潰mode collapse,后驗崩潰posterior collapse, 梯度消失vanishing gradients和訓練不穩定training instability)

標准化流[4,5]

基本信息

  • 標准化流(continuous) normalizing flows: 深度生成模型
  • 將一個簡單的分布\(p_Z(\vec{z}^{(0)})\)(基密度base density,如標准高斯分布,可很容易計算其密度),通過應用一系列可逆、可微的映射\(f_1,f_2,...,f_K:R^d\to R^d\),變換成一個復雜的分布\(p_Z(\vec{z}^{(K)})=p_X(\vec{x})\)

變量變換公式

  • 考慮一維隨機變量的線性變換
    • \(X\)服從均勻分布\((0,1)\)\(Y=f(X)=2X+1\),這里\(Y\)\(X\)的一個簡單仿射affine(放縮scale和平移shift或translation)變換
      圖片名稱
    • \(x\)\(x+dx\)應用\(f\),則會得到\((y,y+dy)\)。為了保持二者的變化量相等,要使得\(p(x)dx=p(y)dy\)。但我們只關心改變的量,而不關心其方向。因此,\(p(y)=p(x)|dx/dy|\),等價於\(\log p(y)=\log p(x)+\log |dx/dy|\)
      圖片名稱
  • 考慮多變量(multivariate)情況(如,兩個變量)
    • 將下圖的正方形乘以矩陣\(\begin{bmatrix} a & b \\ c & d \\ \end{bmatrix}\),變換成一個面積為\(ad-bc\)的平行四邊形,正是線性變換行列式determinant的絕對值
      圖片名稱
    • volume的局部線性改變locally-linear change是\(|det(J(f^{-1}))|\)(標准化normalized因子),這里\(J(f^{-1})\)表示變換函數逆函數的雅可比矩陣Jacobian,是\(|dx/dy|\)的高維形式,形如\(J=\begin{bmatrix} \frac{\partial f_1}{\partial x_1} & \cdots & \frac{\partial f_1}{\partial x_n} \\ \vdots & \ddots & \vdots \\ \frac{\partial f_m}{\partial x_1} & \cdots & \frac{\partial f_m}{\partial x_n} \\ \end{bmatrix}\)
  • 綜上:

\[x=f(z) \\ p(x)=p(f^{-1}(x))|det(J(f^{-1}(x)))|=p(f^{-1}(x))|det(\frac{\partial f^{-1}}{\partial x})| \\ \log p(x)=\log p(f^{-1}(x))+\log |det(J(f^{-1}(x)))| \]

  • 使用變量變換公式the change-of-variables formula確定精確數據似然
    • \(p_X(\vec{x})=p_Z(\vec{z}^{(K)})=p_Z(\vec{z}^{(0)})·\prod_{k=1}^{K}|det\frac{\partial \vec{z}^{(k-1)}}{\partial f_{k}(\vec{z}^{(k-1)})}|\),這里\(\vec{z}^{(k)}=f_{k}(\vec{z}^{(k-1)})\)
    • 疊加流(Layered Flow):合成compose多個流(仍是一個有效的標准化流)可得到更加復雜的分布,從而提升\(p_X(\vec x)\)的表達能力
      • 每個流編碼一個可逆函數,該函數具有一個可線性計算的雅可比行列式(a linearly computable Jacobian determinant)
      • 在函數合成下,可逆性是閉合的(invertibility is closed under function composition)
      • 雅可比行列式可分解(factorize)
    • 通過疊加流並改變每一層的依賴順序,更靈活的分布可被創建
      • 改變層之間的順序允許所有的\(x_d's\)\(z_d's\)去和每一層交互
      • 逆轉(reversing)或shuffling依賴的順序
        圖片名稱

標准化流的設計

  • 設計標准化流:1)使變換容易進行逆運算;2)使變換的雅可比行列式容易被計算
  • 對於任意\(N\times N\)的雅可比矩陣,其行列式計算的最壞情況是\(O(N^3)\),所以有必要限制變換,使其逆具有對角或三角雅可比矩陣,這樣就能以\(O(N)\)來計算,此時行列式為矩陣對角元素的乘積
  • 流變換的具體例子:
    • planar/radial flows[7]和IAF用於變分推斷,因為它們只能計算自己樣本的密度,而不能計算外部提供的數據點的密度
    • NICE[8]、RealNVP[9]和MAF[10]用於密度估計
    • Glow[11]使用\(1\times 1\)卷積來執行變換
    • Flow++[13]

自回歸流

  • MAF(Masked Autoregressive Flow)和IAF(Inverse Autoregressive Flow)
    • MAF: \(\vec \mu\)\(\vec \alpha\)\(\vec x\)的自回歸函數,\( \mu_i=f_{\mu_i}(\vec x_{1:i-1}) \\ \alpha_i=f_{\alpha_i}(\vec x_{1:i-1})\)
    • IAF[12]: \(\vec \mu\)\(\vec \alpha\)\(\vec z\)的自回歸函數, \( \mu_i=f_{\mu_i}(\vec z_{1:i-1}) \\ \alpha_i=f_{\alpha_i}(\vec z_{1:i-1})\)
      圖片名稱
      圖片名稱
  • 結構上的不同使兩者具有不同的計算trade-offs:
    • 1)MAF能夠通過模型經一個pass計算任意數據\(x\)的密度\(p(x)\),但采樣需要執行D(數據維數)個順序passes
    • 2)IAF能夠經一個pass生成樣本和計算它們的密度,但計算一個外部提供的數據點\(x\)的密度\(p(x)\)需要D個passes來尋找和\(x\)相關的\(z\)
    • 3)MAF和IAF編碼不同的inductive biases,這會阻礙MAF和IAF的泛化能力
  • 自回歸流的雅可比矩陣是下三角矩陣,所以其行列式是其對角線元素的乘積:\(|det(\frac{\partial f^{-1}}{\partial x})|=exp(-\sum_i\alpha_i)\)
    • 使用masking執行函數集合\(\{f_{\mu_i}, f_{\alpha_i}\}\)
      • MADE: feedforward網絡,以\(x\)為輸入,經單個forward pass輸出\(\mu_i\)\(\alpha_i\)。通過將MADE的權重矩陣與適當構造的二進制masks相乘來實現自回歸屬性。使用具有高斯分布的MADE作為流的building layer或component layer
        圖片名稱
        • 沒有masks時:\( h^0=x \\ h^l=activation^l(W^lh^{l-1}+b^l) \\ \hat{x}=\sigma (Vh^L+c)\)
        • 有masks時:每個隱含結點被賦予一個值在[1, D-1]之間的整數,對於第l層的第k個單元,這個整數記作\(m_k^l\)。二元mask矩陣則根據層之間兩個結點對應的整數確定,輸入層和隱含層、隱含層和隱含層之間的masks要求前一層結點的整數值要小於等於后一層結點的整數值;隱含層和輸出層之間的masks要求前一層結點的整數值要小於后一層結點的整數值:

\[h^0=x \\ h^l=activation^l((W^l\odot M^{W^l})h^{l-1}+b^l) \\ \hat{x}=\sigma ((V\odot M^V)h^L+c) \\ M_{k^{'},k}^{W^l}= \begin{cases} 1, & \text{if $m_{k^{'}}^l \geq m_k^{l-1}$} \\ 0, & \text{otherwise} \end{cases} \\ M_{d,k}^{V}= \begin{cases} 1, & \text{if $d > m_k^{L}$} \\ 0, & \text{otherwise} \end{cases}\]

二部bipartite流

  • 非線性變換輸入的子集
  • RealNVP(real-valued non-volume preserving)
    • 二部流不如自回歸流的表達能力強,因為變量的一個子集沒有進行變換。但它可快速進行forward和inverse計算(生成數據和估計密度都只需要一個forward pass),使其適合生成建模(需要快速生成)
    • 耦合層是MAF和IAF中使用的自回歸變換的特例。在MAF中,使得\(\mu_i=\alpha_i=0 \quad for \quad i \leq d;\quad \mu_i和\alpha_i只是x_{1:d}的函數for \quad i>d\)。在IAF中,使得\(\mu_i=\alpha_i=0 \quad for \quad i \leq d;\quad \mu_i和\alpha_i只z_{1:d}的函數for \quad i>d\)
  • NICE(non-linear independent components estimation): RealNVP的先驅predecessor。其變換層是additive耦合層,即沒有放縮的仿射層,\( x_{1:d}=z_{1:d} \\ x_{d+1:D}=z_{d+1:D}+m(z_{1:d})\\ z_{1:d}=x_{1:d} \\ z_{d+1:D}=x_{d+1:D}-m(x_{1:d})\)

標准化流的優點

  • 強大的模型靈活性和非自回歸生成non-autoregressive generation(generation speed/parallel generation)

核心操作

  • 用流定義的兩個核心操作:
    • 采樣,即\(x\sim p(x)\):先從基密度\(z\sim p(z)\)中采樣,然后應用forward變換\(x=f(z)\)
    • 密度估計,即給定一個已知的\(x\),計算\(p(x)\):先進行逆變換\(z=f^{-1}(x)\),然后計算基密度\(p(z)\),並乘以雅可比行列式(由一系列可逆變換引起的volume改變:每個變換的雅可比行列式絕對值的乘積)
    • 密度估計和采樣都有效[6]: 概率密度蒸餾Probability Density Distillation(使用最大化對數似然來訓練逆函數,然后固定它並作為teacher網絡。使用teacher網絡以最小化采樣點的分布與由teacher網絡建模的數據分布之間的散度來訓練student網絡,即forward函數)

任務

  • 兩個任務:變分推斷和密度估計
    • 變分推斷:引入近似后驗approximate posterior;最大化ELBO,但梯度計算不直接not straightforward;使用標准化流重參數化reparametrize近似后驗;只能計算采樣數據點的似然

應用

推廣到非歐空間

  • 流形上的流
  • 離散分布/離散隨機變量:建模離散數據/discrete data(events/sequences)
    • 離散數據
      • ordinal data如圖像,整數代表量化值(quantized values)
      • nomial/categorical data沒有本質上的順序且具有復雜和隱含的關系(如詞之間的同義synonymy), 如文本/語言(詞作為categorical/one-hot變量)、集合、圖
    • 將連續標准化流應用於離散數據會導致不想要的密度模型(任意高似然會落在特定值上)(離散數據點在一個連續分布中代表delta peaks)(產生一個降級解degenerate solution,將所有概率落在離散數據點上)
      • 解決這個問題的常見方法是先通過一個“去量化dequantization”過程將離散數據分布轉換成連續分布,然后使用連續密度模型建模得到連續分布。可分為均勻去量化uniform dequantization和變分去量化variational dequantization[13]
      • 使用去量化(給每個值添加一個小的噪聲: \(v=x+u,u\in [0,1]^D\),其中x是整數,從v到x的逆向映射:為每個元素\(v_i\)找到the next lower whole number)可將離散數據映射到連續空間中,但不適用於類數據(值表示本質上沒有順序的類)。將類看作整數來進行去量化會使數據偏向bias於不存在的順序
      • 去量化表示dequantized representation \(p_{model}(v)\) 約束lower-bounds建模好的離散分布\(P_{model}(x)\)的下界,下界為\(E_{x\sim P_{data}}[logP_{model}(x)]\ge E_{x\sim P_{data}}E_{u\sim q(\cdot|x)}[log\frac{p_{model}(v)}{q(u|x)}]\)\(q(u|x)\)為去量化分布dequantization distribution,可為均勻uniform(忽略x的依賴)或通過第二個標准化流被學習(variational dequantization)
    • 兩個角度解決建模離散數據問題:1)修改變量變換公式change-of-variables formula,使其應用於離散變量[15-16];2)利用變分推斷(variational dequantization)將離散變量映射到連續空間(隱含空間)中,對連續空間中的變量應用流模型[17-19]
      • 離散流[15]:變量變換公式為\(p_{Y}(\vec{y})=p_{Z}(f^{-1}(\vec{y}))\),沒有雅可比項;對於離散變量函數的反向傳播,使用straight-through梯度估計器[20-22]。但這種方法無法擴展到具有大量元素的分布
      • 整數離散流[16]:利用加性耦合層建模\(Z_D\)上的雙射
      • 隱含流[17]: 基於VAE的生成模型;聯合學習隱含空間中基於標准化流的分布和一個到可觀測離散空間的隨機映射,同時要求基於流的分布要高度多峰,為此提出了幾種標准化流架構來最大化模型靈活性。實驗考慮常見的離散序列任務,包括character-level字符建模和復調音樂生成;結果表明基於自回歸流的模型可以匹配自回歸基線的性能,基於非自回歸流的模型可以一個性能的損失來提高生成速度。基於encoder-decoder框架,encoder將離散變量映射到連續空間中(變分推斷),這里假設離散變量在給定隱含變量的條件下相互獨立,這樣就將離散變量之間的序列動態關系以及離散變量本身的類別之間的關系放到連續空間中通過流來學習。decoder將隱含連續變量映射到離散空間中
      • 類流[18]:考慮標准化流在類數據上的應用。將類數據在連續空間中的編碼轉換成變分推斷問題,聯合優化連續表示和模型似然

異常檢測anomaly detection/新奇檢測novelty detection

  • 將未見數據樣本分成正常和異常,以一個正常數據的學習模型來評分
    • 先學一個正常數據的模型,然后在推斷時在已學習的模型下計算未見數據的新奇分數,最后根據一個學習到的決策邊界boundary標注數據樣本
    • 可看成是one-class分類任務
    • 在訓練期間不需要異常數據,這對於少或無異常數據的情況是重要的,因為獲取這樣的數據很難且costly
  • 由於可逆性,流模型可通過計算未見樣本在已學習到的分布下的精確似然來對這些樣本進行評分
  • 可用於時間序列的異常檢測[14]

參考文獻

  • [1] 2014 | Generative Adversarial Nets | Ian J. Goodfellow et al.
  • [2] 2014 | Auto-encoding variational bayes | Diederik P. Kingma and Max Welling
  • [3] 2021 | Deep Generative Modelling: A Comparative Review of VAEs, GANs, Normalizing Flows, Energy-Based and Autoregressive Models | Sam Bond-Taylor et al.
  • [4] 2019 | Normalizing Flows: An Introduction and Review of Current Methods | Ivan Kobyzev et al.
  • [5] 2019 | Normalizing Flows for Probabilistic Modeling and Inference | George Papamakarios et al.
  • [6] 2017 | Parallel wavenet: Fast high-fidelity speech synthesis | van den Oord et al.
  • [7] 2016 | Variational Inference with Normalizing Flows | Danilo Jimenez Rezende and Shakir Mohamed
  • [8] 2015 | NICE: Non-linear Independent Components Estimation | Laurent Dinh et al.
  • [9] 2016 | Density estimation using real nvp | Laurent Dinh et al.
  • [10] 2017 | Masked autoregressive flow for density estimation | George Papamakarios et al.
  • [11] 2018 | Glow: Generative flow with invertible 1x1 convolutions | Diederik P. Kingma and Prafulla Dhariwal
  • [12] 2016 | NIPS | Improved Variational Inference with Inverse Autoregressive Flow | Diederik P. Kingma et al.
  • [13] 2019 | Flow++: Improving flow-based generative models with variational dequantization and architecture design | Jonathan Ho et al.
  • [14] 2019 | Normalizing flows for novelty detection in industrial time series data | Maximilian Schmidt and Marko Simic
  • [15] 2019 | Discrete Flows: Invertible Generative Models of Discrete Data | Dustin Tran et al.
  • [16] 2019 | Integer discrete flows and lossless compression | Emiel Hoogeboom et al.
  • [17] 2019 | Latent Normalizing Flows for Discrete Sequences | Zachary M. Ziegler and Alexander M. Rush
  • [18] 2020 | Categorical Normalizing Flows via Continuous Transformations | Phillip Lippe and Efstratios Gavves
  • [19] 2019 | Riemannian Normalizing Flow on Variational Wasserstein Autoencoder for Text Modeling | Prince Zizhuang Wang and William Yang Wang
  • [20] 2013 | Estimating or Propagating Gradients Through Stochastic Neurons for Conditional Computation | Yoshua Bengio et al.
  • [21] 2017 | ICLR | The Concrete Distribution: A Continuous Relaxation of Discrete Random Variables | Chris J. Maddison et al.
  • [22] 2017 | ICLR | Categorical Reparameterization with Gumbel-Softmax | Eric Jang et al.

參考資料


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM