亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        深度生成模型綜述

        2022-02-17 10:46:58胡銘菲劉建偉
        自動化學報 2022年1期
        關鍵詞:深度結構模型

        胡銘菲 左 信 劉建偉

        受益于當前計算機性能的快速提升,學習可觀測樣本的概率密度并隨機生成新樣本的生成模型成為熱點.相比于需要學習條件概率分布的判別模型,生成模型的訓練難度大、模型結構復雜,但除了能夠生成新樣本外,生成模型在圖像重構、缺失數據填充、密度估計、風格遷移和半監(jiān)督學習等應用領域也獲得了巨大的成功.當前可觀測樣本的數量和維數都大幅度增加,淺層的生成模型受到性能瓶頸的限制而無法滿足應用需求,從而被含有多個隱藏層的深度生成模型替代,深度生成模型能夠學習到更好的隱表示,模型性能更好.本文對有重要意義的深度生成模型進行全面的分析和討論,對各大類模型的結構和基本原理進行梳理和分類.本文第1節(jié)介紹深度生成模型的概念和分類;第2 節(jié)介紹受限玻爾茲曼機和以受限玻爾茲曼機為基礎模塊的幾種深度生成模型,重點內容是各種模型的不同訓練算法;第3 節(jié)介紹變分自編碼器的基本結構、變分下界的推理和重參數化方法;第4 節(jié)介紹生成對抗網絡,主要內容為模型原理、訓練方法和穩(wěn)定性研究,以及兩種重要的模型結構;第5 節(jié)總結了流模型的結構,詳細介紹了流模型的技術特點;第6 節(jié)分析了自回歸模型的模型結構以及幾種重要分支的研究進展;第7 節(jié)將介紹生成模型中的兩個小分支:矩陣匹配模型和隨機生成模型;第8 節(jié)對深度生成模型存在的問題進行分析討論,并對未來的研究方向和發(fā)展趨勢做出了展望.

        1 深度生成模型概述

        深度生成模型的目標函數是數據分布與模型分布之間的距離,可以用極大似然法進行求解.從處理極大似然函數的方法的角度,可將深度生成模型分成如下三種,分類內容如圖1 所示.具體分類方式如下:

        圖1 深度生成模型分類Fig.1 Deep generative models classification

        第一種方法是通過變分或抽樣的方法求似然函數的近似分布,這種方法可稱為近似方法,主要包括受限玻爾茲曼機[1]和變分自編碼器[2].用抽樣方法近似求解似然函數的受限玻爾茲曼機屬于淺層模型,以該模型為基礎模塊的深度生成模型

        包括深度玻爾茲曼機和深度置信網絡兩種;變分自編碼器用似然函數的變分下界作為目標函數,這種使用變分下界替代似然函數的近似方法的效率比受限玻爾茲曼機的抽樣方法高很多,實際效果也更好,變分自編碼器具有代表性的模型包括重要性加權自編碼、輔助深度生成模型等.

        第二種方法是避開求極大似然過程的隱式方法,其代表模型是生成對抗網絡[3].生成對抗網絡利用神經網絡的學習能力來擬合兩個分布之間的距離,巧妙地避開了求解似然函數的難題,是目前最成功、最有影響力的生成模型,其具有代表性的模型很多,例如深度卷積生成對抗網絡、WGAN 和當前生成能力最好的BigGAN;另外利用參數化馬爾科夫過程代替直接參數化似然函數的生成隨機網絡[4]也屬于此類方法.

        第三類方法是對似然函數進行適當變形,變形的目的是為了簡化計算,此類方法包括流模型[5]和自回歸模型[6]兩種模型.流模型利用可逆網絡構造似然函數之后直接優(yōu)化模型參數,訓練出的編碼器利用可逆結構的特點直接得到生成模型.流模型包括常規(guī)流模型、變分流模型和可逆殘差網絡三種;自回歸模型將目標函數分解為條件概率乘積的形式,這類模型有很多,具有代表性的包括像素循環(huán)神經網絡、掩碼自編碼器以及成功生成逼真的人類語音樣本的WaveNet 等.

        2 受限玻爾茲曼機

        玻爾茲曼機(Boltzmann machines,BM)是由能量函數定義的結構化無向圖概率模型,用于學習二值向量上的任意概率分布,廣義上把基于能量的模型都稱作BM.BM 層內各單元之間和各層之間均為全連接關系,權值大小表示單元之間的相互作用關系.BM 變種的流行程度早已超過了該模型本身,其中最主要的衍生模型是屬于生成模型的受限玻爾茲曼機[1](Restricted Boltzmann machines,RBM) 和以RBM 為基礎模塊的深度置信網絡(Deep belief network,DBN)和深度玻爾茲曼機(Deep Boltzmann machines,DBM)等深度生成模型,是深度學習中的典型代表,曾受到廣泛研究,國內外均有關于該模型的綜述文章[7?8].這類模型能夠學習高維特征和高階概率依賴關系并成功應用在降維、特征提取等領域,是最早出現的深度生成模型.

        本節(jié)將詳細介紹訓練過程中存在的問題以及解決方法;然后,以該模型為基礎分別介紹DBN 和DBM 的結構和相關算法;最后,總結近些年來重要的相關模型和算法改進.

        2.1 受限玻爾茲曼機

        RBM 面世之初因其結構特點而命名為簧風琴,曾是深度概率模型中的常見組件.RBM 是BM 的一種特殊拓撲結構,能夠描述變量之間的高階相互作用,其模型結構具有完備的物理解釋,訓練算法有 嚴謹的數理統(tǒng)計基礎[7].

        2.1.1 模型結構

        RBM 的單元被分成兩組,每個組稱作一層,層之間的連接由權值矩陣描述.RBM 與BM 均是包含一層可見變量和一層隱藏變量的淺層模型,兩者的區(qū)別是RBM 的層內神經元之間沒有連接.RBM的上層是不可觀測的隱藏層,下層是可觀測的輸入層,兩層的所有神經元只取1 或0,這兩個值分別對應該神經元激活或未激活的兩種狀態(tài),模型結構如圖2 所示.

        圖2 中x表示可見層神經元(輸入);隱藏層神經元z表示輸入的映射;a,b,W分別表示可見層偏置向量、隱藏層偏置向量和權重矩陣.RBM 的能量函數由下式給出:

        圖2 受限玻爾茲曼機Fig.2 Restricted Boltzmann machines

        式中,E(xi,zj) 表示能量函數,這種形式使得模型中任意變量的概率可以無限趨于0,但無法達到0.

        RBM 的聯合概率分布由能量函數指定:

        其中,Z是被稱為配分函數的歸一化常數:

        二分圖結構特有的性質使RBM 的條件分布P(zj|x)和P(xi|z) 是可因式分解的,使條件分布的計算和抽樣都比BM 簡單.從聯合分布中可以推導出條件分布:

        根據條件分布因式相乘的原理可將可見變量的聯合概率寫成單個神經元分布的乘積:

        訓練RBM 模型使用極大似然法,似然函數的對數如下表示:

        2.1.2 配分函數

        訓練RBM 時需要計算邊緣概率分布,而無向圖模型中未歸一化的概率必須除以配分函數進行歸一化,以獲得有效的概率分布P(x) :

        式(8) 中的前后兩項分別對應訓練的正相(Positive phase)和負相(Negative phase).大部分無向圖模型都有計算簡單的正相和難以計算的負相,RBM 的隱藏單元在給定可見單元時是條件獨立的,屬于典型的負相,不容易計算.對負相的進一步分析可以推導出如下結果:

        式(9)是使用各類蒙特卡洛方法近似最大化似然的基礎.負相涉及從模型分布中抽樣,一般被認為代表了模型不正確的信念,類似人類做夢的過程:大腦在清醒時經歷的真實事件會按照訓練數據分布的梯度更新模型參數,在睡覺時按照模型分布的負梯度最小化配分函數,然后更新模型參數.但在RBM 學習中需要交替執(zhí)行正相和負相的計算才能完成參數更新.

        2.1.3 配分函數的估計方法

        計算RBM 的配分函數是訓練模型的主要難點,主要體現為計算困難、計算量大,主要計算方法可以分為三類,其中對比散度算法以計算量相對最小、精度尚可而成為RBM 的主要算法,三類算法具體如下:

        第一類算法是通過引入中間分布直接估計配分函數的值,中間分布的計算需要使用蒙特卡洛馬爾科夫鏈或重要性采樣,代表算法是退火重要性抽樣算法[9](Annealed importance sampling,AIS).AIS是無向圖模型中直接估計配分函數的常用方法,擅長估計高位空間中復雜分布上的配分函數,缺點是用蒙特卡洛估計配分函數的方法效率較低.

        退火重要性抽樣.AIS 通過引入中間分布來縮小模型分布和數據分布之間的距離,從而估計高維空間上多峰分布的配分函數.該方法先定義一個已知配分函數的簡單模型,然后估計給定的簡單模型和需要估計模型的配分函數之間的比值,例如在權重為0 的RBM 和學習到的權重之間插值一組權重不同的RBM,此時配分函數比值為:

        如果對于任意的 0≤j ≤n ?1 都能使分布和足夠接近,則可以用重要性抽樣估計每個因子的值,然后使用這些值計算配分函數比值的估計值.中間分布一般采用目標分布的加權幾何平均:考慮到重要性權重,最終的配分函數比值為:

        其中,Wk表示第k次抽樣時的重要性權重,Wk的值可從轉移算子乘積得到.

        第二類計算配分函數的算法是構造新目標函數替代配分函數,避免直接求解配分函數的過程,主要包括得分匹配[10](Score matching,SM)和噪聲對比估計[11](Noise contrastive estimation,NCE).SM 算法精度很高,但缺點是計算量較大,只稍低于使用MCMC 采樣的AIS 算法;NCE 算法的精度一般且計算量也很大,但該算法將無監(jiān)督學習的似然函數估計問題轉化為學習概率的二值分類問題,巧妙的避開求解配分函數和估計數據分布的難題,是一個具有創(chuàng)造性的方法.

        得分匹配.得分表示對數概率密度關于模型參數的導數,SM 算法用模型分布和數據分布的對數對輸入求導后的差的平方代替邊緣概率分布作為RBM的新目標函數:

        SM 算法的思路與CD 算法類似,但該算法以計算量為代價得到更精確的數據概率分布估計.過大的計算量使SM 算法通常只用于單層網絡或者深層網絡的最下層,另外算法中的求導過程說明該算法只能應用在連續(xù)數據中,比率匹配(Ratio matching,RM)將該方法推廣到離散數據中[12].

        噪聲對比估計.NCE[11]在每個樣例中引入類標簽y,規(guī)定訓練數據上的樣本屬于一類,然后引入噪聲分布,從噪聲分布抽樣得到的樣本屬于另一類,噪聲樣本和訓練樣本以及類標簽合在一起作為新的訓練樣本,在訓練過程中指定類先驗概率:

        其條件概率可以表示為:

        然后用相同方法構造其他類的聯合分布.NCE這種轉換的技巧促使了后來生成對抗網絡的誕生,但因為訓練困難使該算法更適合隨機變量較少的問題,在給定單詞上下文,計算單詞的條件概率分布的任務上獲得了很好的效果.

        第三類算法是直接估計配分函數關于參數的近似梯度,這種基于馬爾科夫鏈的近似方法主要包括對比散度[13](Contrastive divergence,CD)、持續(xù)對比散度[14](Persistent contrastive divergen,PCD)和快速持續(xù)對比散度(Fast persistent contrastive divergen,FPCD)[15]三種.CD 算法是一種計算量很低的算法,計算效率遠高于其他兩類方法,缺點是精度不高,需要使用MCMC 等算法精調模型;PCD 算法利用持續(xù)馬爾科夫鏈提高CD 算法的精度;FPCD 用單獨的混合機制改善PCD 的混合過程,提高算法的訓練速度和穩(wěn)定性.

        對比散度.CD 算法在每個步驟用數據分布中抽取的樣本初始化馬爾科夫鏈,有效減少抽樣次數、提高計算效率.該算法用估計的模型概率分布與數據分布之間的距離作為度量函數,首先從訓練樣本抽樣,利用n步Gibbs 抽樣達到平穩(wěn)分布后再固定概率分布的參數,從該平穩(wěn)分布中抽樣,用這些樣本計算權重wi,j的梯度為:

        其中,S={x1,···,xl}表示訓練集,r表示數據參數,g表示模型參數.CD 算法是一種近似算法,Carreira-Perpi?an 等[16]證明CD 算法最終會收斂到與極大似然估計不同的點,因此該算法更適合作為一種計算代價低的參數初始化方法.Bengio 等[17]證明了CD 等價于去掉最小項的MCMC 算法,解釋了算法中偏差的由來.

        實驗顯示使用1 步Gibbs 抽樣的CD-1 算法就能得到不錯的學習效果.盡管CD-1 算法的偏差較大,但可以用于淺層模型的預訓練,再把淺層模型堆疊起來形成深度模型,這個優(yōu)勢也使得快速高效的CD 算法成為目前訓練RBM 的標準算法,并用于DBN 等深層模型的預訓練.

        持續(xù)對比散度.PCD 算法在應用數學領域被稱為隨機最大似然(Stochastic maximum likelihood,SML)算法,是CD 的一種改進算法,在每個步驟中用先前梯度步驟的狀態(tài)值初始化馬爾科夫鏈,有效提高算法精度,并彌補了CD 算法無法最大化似然函數的缺陷.

        PCD 用持續(xù)馬爾科夫鏈得到負相的近似梯度,令t步的持續(xù)馬爾科夫鏈狀態(tài)為xt,則參數的梯度可以近似為:

        每個馬爾科夫鏈在整個學習過程中都在不斷更新,這種做法可以更容易找到模型的所有峰值.除了計算量比較大以外,PCD 的另一個缺點是超參數k的取值高度依賴于具體問題,如果學習率或訓練時間不合適會使馬爾科夫鏈的遍歷性下降進而產生不穩(wěn)定的誤差.

        快速持續(xù)對比散度.FPCD 引入了單獨的混合機制以改善PCD 持續(xù)馬爾科夫鏈的混合過程,使算法性能不會因為訓練時間過長等的影響而惡化.FPCD 使用一組額外的權值θ?提高樣本的混合速率,原本的權值當作慢速權值θ+估計數據的期望值,然后使用混合參數θ=θ++θ?作為持續(xù)馬爾科夫鏈的更新樣本.FPCD 中的快速權重通常使用較大的學習率并保持足夠長的迭代次數,馬爾科夫鏈改變峰值之后再對快速權重使用權重衰減,促使學習率收斂到較小的值,從而提高混合速率.

        2.1.4 RBM 模型研究進展

        基礎RBM 的二值神經元很容易擴展到實值或向量形式,即高斯?伯努利受限玻爾茲曼機.該模型假設可見層數據是服從高斯分布的實數用以處理實值數據,其能量函數可以定義成如下形式[18]:

        根據能量函數得到似然函數和條件概率分布的過程與二值RBM 相同.Salakhutdinov 等[9]利用受限玻爾茲曼機在高維數據中提取特征的功能,從大型文本中提取主題,此時可見層神經元服從伯努利分布.在條件概率的計算中需要歸一化指數函數Softmax 調整概率分布,歸一化概率分布并有效避免數值溢出.

        Montufar 等[19]從理論上證明了RBM 與[0,1]之間的任意概率分布的相對熵上界.Sutskever 等[20]提出了循環(huán)回火RBM,通過讓隱藏層神經元之間的權重傳遞更多信息,使模型能容易準確地推斷和更新梯度.Nair 等[21]提出用階梯S 型神經元近似替換RBM 的二值神經元,這種神經元更加自然地學習光照等自然界變化,提高了模型學習特征的能力.基于因式分解的三值RBM[22]將實值圖像映射到因式分解的輸出,令隱藏層神經元表示可見層神經元的協方差和閾值,提高模型對小圖形數據集的識別準確性.

        2.2 深度置信網絡

        深度置信網絡[23](Deep belief network,DBN)的出現使深度學習再次受到人們的關注,緩解了深度模型很難優(yōu)化的缺陷,在MNIST 數據集上的表現超過當時占統(tǒng)治地位的支持向量機.盡管DBN與后來出現的深度生成式模型相比已沒有優(yōu)勢,但它以深度學習歷史中里程碑式的重要模型而得到認可和廣泛研究.

        2.2.1 DBN 模型結構

        置信網絡一般是有向圖模型,而深度置信網絡的最低層具有無向連接邊,其他各層之間為有向連接邊.DBN 具有多個隱藏層,隱藏層神經元通常只取0 和1,可見層單元取二值或實數,除頂部兩層之間是無向連接外,其余層是有向邊連接的置信網絡,箭頭指向可見層,因此DBN 屬于有向概率圖模型,其結構如圖3 所示.

        圖3 深度置信網絡結構Fig.3 The structure of deep belief networks

        以DBN 的前兩個隱藏層h1和h2為例說明模型結構.此時DBN 的聯合概率分布定義為

        其中,θ={W1,W2}表示模型參數,P(x|h1;W1)表示有向的置信網絡.P(h1,h2;W2)可以用訓練RBM 的方法預訓練,因為可見層和第一個隱藏層的聯合分布與RBM 的聯合概率分布形式相同:

        因此DBN 在訓練過程中可以將任意相鄰兩層看作一個RBM.從DBN 生成樣本時,先在頂部隱藏層內運行幾步Gibbs 抽樣,然后按照條件概率由上至下依次計算各層的值,最后就能得到從DBN產生的樣本.

        2.2.2 DBN 的目標函數

        隱藏層h1到可見層是有向網絡,無法直接得到隱藏層條件概率,因此假設條件概率的近似分布為Q(h1|x).利用Jensen 不等式可以得到DBN 的似然函數:

        其中,logP(·)=logP(h1)+logP(x|h1),H(·) 表示熵函數.該目標函數本質上是RBM 目標函數的變分下界.

        2.2.3 貪婪逐層預訓練算法

        隨機初始化參數下的DBN 很難訓練,需要使用貪婪學習算法調整模型參數使模型有容易訓練的初始值.貪婪學習算法采用逐層預訓練的方式,首先訓練DBN 的可見層和隱藏層h1之間的參數,固定訓練好的參數并使權重W2等于W1的轉置.在訓練權重W3時,從條件概率中抽樣獲得h2,訓練方法與RBM 的訓練方式相同.貪婪逐層預訓練算法提供了兩種獲得h2和z的方法,如圖4 所示.

        圖4 兩種貪戀逐層學習算法Fig.4 Two kinds of greedy layer-wise pre-training

        一種方法是從條件概率Q(h2|h1) 中抽樣獲得h2,另一種算法直接從條件概率Q(h2|x) 中抽樣.使用貪婪算法訓練有向概率圖時通常使用第二種方法抽樣,因為它在實際應用中表現更好[24].

        2.2.4 亥姆霍茲機

        DBN 的出現是深度模型的巨大進步,但從數學的角度推導出變量之間的真實關系需要很大的計算量,降低了模型的訓練速度.Dayan 等提出的亥姆霍茲機(Helmholtz machine,HM)[25]可以看成是另一種連接形式的DBN.HM 的基本思想是保持DBN 有向性的同時,在層之間增加單獨的權重,使最上層的隱變量可以和可見層進行通信,能有效提高模型訓練速度,HM 模型結構如圖5 所示.

        圖5 亥姆霍茲機Fig.5 Helmholtz Machine

        圖5 展示了全連接網絡HM 中的部分連接,其中ax表示可見層x的偏置,ah和az表示兩個隱藏層h和z的偏置,指向向上的實線連接Q表示認知權重,指向向下的虛線P連接表示生成權重.Hinton 等提出了用于訓練HM 的醒睡算法[26].醒睡算法將訓練過程分為清醒和睡眠兩個階段:清醒階段是認知過程,通過真實數據和認知權重由下至上得到神經元狀態(tài),然后用梯度下降調整生成權重;睡眠階段是生成過程,通過頂層的特征表示和生成權重生成底層狀態(tài),然后用訓練過的生成過程得到的權值和偏置調節(jié)認知權重.

        2.2.5 DBN 研究進展

        DBN 模型的擴展研究可以歸納為兩方面,一方面是研究如何高效處理大規(guī)模無標簽數據,更好地進行無監(jiān)督學習,另一方面是利用基本的反向傳播等方法微調參數使其獲得更好的性能,改動模型結構以適應更多的應用領域.

        Mohamed 等[27]描述并分析了用連續(xù)判別訓練準則優(yōu)化DBN 權值等參數的方法,說明基于序列訓練準則學習的DBN 性能優(yōu)于原始DBN.Dahl等[28]提出DBN-HMM 系統(tǒng)用于語音元素識別,是一種基于DBN 的隱馬爾科夫模型,該模型利用最小化語音元素誤差率和極大似然改善預測精度,模型性能明顯優(yōu)于高斯混合的HMM.

        用貪心算法訓練的DBN 提取結構復雜的無標簽高維數據的特征,然后再用高斯核對特征進行分類或回歸,這種方法的效果比使用原輸入的核方法好[29],利用反向傳播精調DBN 參數可以進一步提高精度.Hinton 等[30]利用DBN 將高維數據轉為維數較低的數據,用這種類似深度自編碼器的功能對數據降維,效果比主成分分析和奇異值分析更好.

        用DBN 直接處理高維圖片很困難,Lee 等[31]提出在DBN 加入卷積層,利用卷積神經網絡縮小真實圖片的維數、提取初級特征,作者還提出了概率最大池化的池化層,使帶有卷積層的DBN 能夠正常訓練,從而具有高級視覺特征的學習能力.卷積DBN可以用于處理序列圖像,從連續(xù)的高維圖像中提取有用特征,并將在多層結構中提取的底層動作特征用于動作識別.

        2.3 深度玻爾茲曼機

        深度玻爾茲曼機[32](Deep Boltzmann machines,DBM)是以RBM 為基礎模塊的另一種深度生成式模型,與DBN 的區(qū)別是DBM 為無向概率圖模型,屬于馬爾科夫隨機場模型,通過簡單的自下而上的傳播就能快速初始化模型參數,并結合從上至下的反饋處理數據的不確定性問題,缺點是在生成樣本時需要一定計算量.

        2.3.1 模型結構

        二值DBM 的神經元只取0 和1,同樣容易擴展到實值,層內每個神經元相互獨立,條件于相鄰層中的神經元,包含三個隱藏層的DBM 結構如圖6所示.

        圖6 深度玻爾茲曼機Fig.6 Deep Boltzmann machines

        DBM 是基于能量的模型,因此模型的聯合概率分布由能量函數定義,DBM 前三層的聯合概率分布為:

        為了簡化表示,省略了偏置參數的能量函數形式如下:

        DBM 的二分結構意味著可以用RBM 相同形式的條件獨立分布假設,給定相鄰層神經元值時,層內單元彼此條件獨立.這里給出DBM 中可見層和隱藏層h1的條件概率公式:

        2.3.2 DBM 的訓練方法

        深度玻爾茲曼機所有層之間均為無向傳播,因此訓練方法與DBN 有差異,但用隨機初始化馬爾科夫鏈近似似然函數梯度的過程很慢,因此采用變分的方法之后用平均推斷估計數據期望、用MCMC 隨機近似過程近似模型期望.

        平均場近似是變分推斷的一種簡單形式,該方法假設DBM 后驗分布的近似分布限制為完全因子的,通過一些簡單分布族的乘積近似特定的目標分布.令P(h1,h2|x) 的近似分布為Q(h1,h2|x),則條件概率的平均場分布意味著:

        平均場推斷是通過最小化近似分布和真實分布的KL 散度以使兩者盡量接近,以求得模型參數和狀態(tài)的值:

        為了方便計算,MCMC 方法假設真實后驗概率由隱藏層組成的全因式分解的均勻分布:

        為了更好地提取有效特征,減少精調時的計算負擔,DBM 的預訓練過程是必要的.DBM 預訓練過程的使用方法與DBN 略有差異,經過預訓練的DBM 能夠生成MNIST 數據集的樣本,在視覺目標識別等任務上也有不錯的效果,但作為含有多個隱藏層的深度網絡,頻繁使用蒙特卡洛抽樣會造成參數的不確定性和計算負擔,因此在實際應用中最多使用三層網絡.

        2.3.3 DBM 研究進展

        訓練DBM 時需要用貪婪逐層預訓練算法對模型參數進行預訓練,這一過程的缺點是無法監(jiān)督模型參數的訓練進度,不同模塊使用不同結構的算法也使DBM 失去了很多優(yōu)點.Montavon 等[33]提出中心化深度玻爾茲曼機,通過重參數化模型使其在開始學習過程時代價函數的Hessian 矩陣具有更好的條件數.該模型不需要預訓練就能直接訓練,并生成高質量的新樣本,缺點是分類效果比較差.

        Melchior 等[34]通過實驗證實了Hessian 矩陣條件數的改善,并觀察到中心化技巧等價于玻爾茲曼機中的增強梯度.即使在訓練困難的情況下,例如訓練多層的深度玻爾茲曼機,Hessian 矩陣條件數的改善也能使學習成功.Goodfellow 等提出了另一種訓練方法:多預測深度玻爾茲曼機[35],該模型的核心思想是使用反向傳播并避免MCMC 抽樣,使模型的分類能力比中心化DBM 更好,且保持了良好的推斷能力,但與基礎DBM 相比該模型不能得到更好的似然函數.

        在給定可見單元時DBM 不能對隱單元進行高效抽樣,因此另一類改善DBM 訓練算法的方向是用退火重要性抽樣估計對數似然函數的下界.Salakhutdinov[36]提出了基于回火變換MCMC 因子的TSAP 算法和基于自適應MCMC 算法的耦合自適應模擬回火(Coupled adaptive simulated tempering,CAST)算法.T-SAP 算法采用不同溫度的多個鏈抽樣,將樣本在原始目標分布與高溫分布之間移動,并引入多個中間分布使模型能夠產生合理的接受概率.用CAST 算法訓練DBM 能有效改進參數估計,使該模型能得到更好的多模態(tài)能量圖,論文中解釋了自適應MCMC 算法和FPCD 算法的關系.

        2.4 應用、分析和小結

        在DBN 出現之初,受限玻爾茲曼機結構的模型受到廣泛的關注,并應用于多個領域,除了生成新樣本,比較成功的應用還包括目標識別和人體運動行為識別[24,37]、語音識別系統(tǒng)[38?39]、機器翻譯[40]以及協同過濾[41]等.隨著GAN 和VAE 等效果更好、訓練效率更高的新型生成模型的出現,RBM 類模型的相關研究逐漸減少,近兩年的應用擴展包括數據流缺失識別[42]和匯率預測[43].

        表1 介紹了以RBM 為基礎模塊的重要改進模型及訓練算法,并分別介紹了每個模型的改進目的及核心方法.其中最具有代表性的改進模型是與卷積結構結合的卷積深度置信網絡CDBN[31],該模型利用卷積層提取空間信息,提升模型處理圖像樣本的能力,是最早引入卷積結構的深度生成模型;另一個有較大影響力的是利用標簽信息實現監(jiān)督學習的條件受限玻爾茲曼機cRBM[44],該模型在人體運動系統(tǒng)中成功合成了多種不同的運動序列并實現在線填充運動捕捉過程中丟失的數據.cRBM 不僅是該類模型中最成功的應用之一,也為監(jiān)督模型提供了新的范式.

        與后來出現的具有統(tǒng)治地位的深度生成模型(如變分自編碼器和生成對抗網絡)相比,RBM 類模型訓練效率低、理論復雜,嚴重限制了RBM 的理論發(fā)展和應用.另外當前優(yōu)秀的深度生成模型通常都有幾十個隱藏層甚至更多,相比之下RBM 最多只能有三層,這使得模型的適用范圍比較窄,很容易到達性能瓶頸,各種訓練算法和模型結構的改進也無法解決這個問題.

        從表1 可以看出學者們對此類模型的研究以RBM 為主,提出了很多種不同類型的訓練方法、模型結構和應用領域,而針對DBN 和DBM 的后續(xù)研究相對較少,這也從側面說明了RBM 對深度學習復興的貢獻以及在后來的發(fā)展中因訓練效率低下、性能不佳等問題導致多層RBM 逐漸失去人們的關注.

        表1 基于RBM 的模型Table 1 RBM based models

        3 變分自編碼器

        變分自編碼器[2](Variational auto-encoder,VAE)是以自編碼器結構為基礎的深度生成模型.自編碼器在降維和特征提取等領域應用廣泛,基本結構是通過編碼(Encoder)過程將樣本映射到低維空間的隱變量,然后通過解碼(Decoder)過程將隱變量還原為重構樣本.VAE 模型的基本結構與自編碼器相似,兩者的區(qū)別可以總結為如下三點:

        1) 隱藏變量z是隨機變量.普通的自編碼器沒有生成能力,為了使解碼過程(生成模型)具有生成能力而不是唯一的映射過程,VAE 假設隱藏變量z為服從正態(tài)分布的隨機變量.

        2) 構造似然函數的變分下界.變分自編碼器的目標函數是使輸入樣本的概率分布和重構樣本的概率分布盡量接近,但輸入樣本的概率是未知的,因此引入建議分布,用變分下界將數據概率分布的數學期望轉化為建議分布的數學期望.

        3) 重參數化.變分下界的計算需要在后驗分布中抽樣,但直接抽樣得到的是離散變量,無法進行反向傳播.VAE 對編碼器輸出的均值和方差進行線性變換,解決了訓練過程的最后一個障礙.

        本節(jié)主要介紹VAE 的模型結構和基本原理,包括變分下界的不同推導方式、重參數化方法以及模型的不足,然后介紹幾種有重要意義的擴展模型.

        3.1 VAE 的模型結構和基本原理

        3.1.1 VAE 模型結構

        VAE 通過編碼過程P(z|x) 將樣本映射為隱藏變量z,并假設隱藏變量服從于多元正態(tài)分布P(z)~N(0,I),從隱藏變量中抽取樣本,這種方法可以將似然函數轉化為隱藏變量分布下的數學期望:

        由隱藏變量產生樣本的解碼過程就是我們需要的生成模型.編碼器和解碼器可以采用多種結構,現在通常使用RNN 或CNN 來處理序列樣本或圖片樣本.

        VAE 整體結構圖如圖7 所示.為了將樣本和重構后的樣本進行一一對應,每個樣本x都必須有其單獨對應的后驗分布,才能通過生成器將從該后驗分布中抽樣出來的隨機隱藏變量還原成對應的重構樣本,每個批次的n組樣本將由神經網絡擬合出n組對應的參數以方便用生成器進行樣本重構.假設該分布是正態(tài)分布,因此VAE 中存在兩個編碼器,分別產生樣本在隱藏變量空間的均值μ=g1(x)和方差logσ2=g2(x).

        圖7 VAE 結構圖Fig.7 The structure of VAE

        3.1.2 變分下界的求法

        VAE 的目標函數是數據分布P(x) 和重構的樣本分布P(x?) 之間距離的最小化,一般用KL 散度來衡量這兩個分布之間的距離:

        KL 散度的值是非負的,其值越大兩個分布之間的距離越遠,當且僅當值為0 時兩分布相等.但數據分布的未知性使得KL 散度無法直接計算,因此VAE 引入建議分布Q(x) (近似分布)和近似后驗分布Q(z|x),用極大似然法優(yōu)化目標函數可得到對數似然函數為:

        根據KL 散度非負的性質可得logP(x)≥L(x),因而稱L(x) 為似然函數的變分下界.變分下界可以由如下公式推導得到:

        將式(26)代入似然函數中可以得到變分下界的最終形式:

        3.1.3 變分下界的解析解

        似然函數的變分下界L(x) 可以分成兩部分理解,第一項DKL(Q(z|x)||P(z)) 是近似后驗分布Q(z|x)和先驗分布P(z) 的KL 散度,兩個分布均為高斯分布,因此該項可以寫成:

        式(32)中的均值和方差分別為兩個編碼器的輸出值,因此該項可以計算出解析解.由于P(z) 是標準正態(tài)分布,該項可以看成是使Q(z|x) 逼近標準正態(tài)分布的正則化項,這個正則化項代表VAE 和普通自編碼器的本質區(qū)別:自編碼器沒有生成新樣本的能力,為了使VAE 能夠生成樣本,需要對編碼的結果添加高斯噪聲,因此VAE 假設后驗分布為高斯分布,從而使生成器對噪聲有魯棒性;用該項做正則化項,即使VAE 的第一個編碼器得到的均值趨于0,又能迫使第二個編碼器算出帶有強度為1 的噪聲,兩者的共同作用使得VAE 的解碼器擁有生成能力.

        變分下界的第二項是生成模型P(x|z),其中z服從Q(z|x).為了得到該部分的解析解,需要定義生成模型的分布,針對二值樣本和實值樣本,VAE分別采用了最簡單的伯努利分布和正態(tài)分布:

        伯努利分布.當生成模型服從于伯努利分布,P(x|z)可以表示為表示生成模型的輸出,此時 logP(x|z) 為:

        正態(tài)分布.當生成模型服從于正態(tài)分布時,P(x|z)可以表示成N(μ,σ2I),當方差固定為常數σ2時,logP(x|z)可以表示成:

        根據式(33)和式(34)可以看出,當樣本為二值數據時,用sigmoid 當作解碼器最后一層的激活函數,則變分下界的第二項是交叉熵函數;當樣本為實值數據時,變分下界的第二項是均方誤差.

        3.1.4 重參數化

        計算變分下界的第二項時需要從Q(z|x) 中抽樣,盡管知道該分布是正態(tài)分布且其參數已經由編碼器計算出來,但直接使用MCMC 估計近似梯度會產生很大的方差,實際應用中是不可行的[45],另外抽樣操作無法求導,不能用反向傳播優(yōu)化參數,因而VAE 提出了重參數化方法.

        重參數化將該分布中抽樣得到的不確定性樣本轉化成確定性的樣本,從簡單分布中抽樣可以降低抽樣的計算復雜性:選擇相同概率分布族的P(ε),對P(ε) 抽樣得到的樣本ε進行若干次線性變換就能獲得在原始分布抽樣的等價結果.

        令P(ε)~N(0,1),在P(ε) 中抽取L個樣本εi,則zi=μ+εi×σ,這種只涉及線性運算的重參數化過程可以用蒙特卡洛方法估計,避免了直接抽樣,此時變分下界第二項的估計式可以寫成如下形式:

        其中,ε ~N(0,1) .通常取L=1 就足夠精確,這一原理類似于受限玻爾茲曼機的訓練方法:每個運行周期抽樣出的隱變量都是隨機生成的,當運行周期足夠多時可以在一定程度上滿足抽樣的充分性,因此L=1 就可以滿足VAE 的訓練目標.

        VAE 的結構可以分為三個階段,如圖8 所示:

        圖8 VAE 訓練流程Fig.8 The training process of VAE

        1) 第一個階段是編碼過程,樣本通過兩個神經網絡分別獲得正態(tài)分布的均值和方差;

        2) 第二個階段是重參數化,以便從后驗分布中抽樣并能夠用反向傳播訓練模型參數;

        3) 第三個階段是解碼過程,將重參數化后的變量通過生成模型生成新樣本.

        圖像樣本訓練出的VAE 生成的樣本不夠清晰,第一個原因是由KL 散度的固有性質造成的,另一個可能原因是后驗分布過于簡單,不符合實際學習場景.Theis 等[46]指出該問題并非VAE 特有,在使用優(yōu)化KL 散度的深度生成式模型中均會發(fā)生類似的問題.

        3.2 幾種重要的VAE 結構

        3.2.1 重要性加權自編碼

        VAE 假設后驗分布是正態(tài)分布只是為了方便計算,并沒有考慮這種假設的合理性,必然會影響模型的生成能力.重要性加權自編碼[47](Importance weighted autoencoders,IWAE)是VAE 模型最重要的改進方法之一,IWAE 從變分下界的角度出發(fā),通過弱化變分下界中編碼器的作用,一定程度上緩解了后驗分布的問題,提高了生成模型的性能.IWAE 將變分下界L(x) 改寫成:

        此時需要在Q(z|x)中抽樣,當抽取K個點時式(36)可以寫成:

        當L=1 時,上式剛好為VAE 的變分下界,因此可以將VAE 看成是IWAE 的一個特例.文章中證明了該式是一個比式(35)更緊的下界,當L取較大的值時,模型對Q(z|x) 形式的依賴會趨于弱化,這相當于削弱了后驗分布的作用,變相地提高生成模型部分的影響.

        IWAE 以降低編碼器性能為代價提高生成模型的能力,生成能力明顯提高,后來的VAE 模型大多以IWAE 為基準,但如果需要同時訓練出好的編碼器和生成器,IWAE 將不再適用.

        3.2.2 監(jiān)督結構的變分自編碼器

        VAE 是無監(jiān)督模型,將標簽信息融入到模型中,使VAE 能夠處理監(jiān)督問題或半監(jiān)督問題的方法有很多,包括用于監(jiān)督學習的條件變分自編碼器[48?49](Conditional variational auto-encoder,CVAE) 和用于半監(jiān)督學習的半監(jiān)督變分自編碼器[50?51](Semisupervised variational auto-encoder,SSVAE).輔助深度生成模型(Auxiliary deep generative models,ADGM)[52]是效果最好且最有影響力的條件變分自編碼器,并同時兼顧監(jiān)督和半監(jiān)督學習.ADGM 對標簽信息y的處理方法與Kingma等[53]提出的將深度生成模型應用于半監(jiān)督學習的方法類似,都是分別構造有標簽數據和無標簽數據的似然函數然后求和.ADGM 在VAE 的基本結構上使用了輔助變量a,輔助變量a可以用條件概率的形式增加近似后驗分布的復雜度,即Q(z,a|x)=Q(z|a,x)Q(a|x),其結構如圖9 所示.

        圖9 深度輔助生成模型Fig.9 Auxiliary deep generative models

        ADGM 的編碼過程由三個神經網絡構成,分別為:

        1) 生成輔助變量a的模型Q(a|x)=N(μ(x),σ2(x))

        2) 生成標簽信息y的模型Q(y|x,a)=Cat(x,a)

        3) 生成隱藏變量z的模型Q(z|C)=N(μ(C),σ2(C))

        其中 Cat(·) 表示多項分布,C=x,a,y表示模型輸入.解碼過程有兩個神經網絡,分別為:

        1) 重構樣本x的模型P(x|z,y)=F(z,y)

        2) 重構輔助變量a的模型P(a|x,z,y)=F(x,z,y)

        處理無標簽樣本時,ADGM 的變分下界為:

        其中,Q(a,y,z|x)=Q(z|a,y,x)Q(y|z,x)Q(a|x) .處理有標簽樣本時,變分下界為:

        其中,Q(a,z|x,y)=Q(z|a,y,x)Q(a|x) .因此ADGM的目標函數是無標簽樣本和有標簽樣本變分下界之和:L=L(x)+L(x,y) .

        ADGM 可以用于監(jiān)督學習或半監(jiān)督學習,該模型和IWAE 用不同的方法解決后驗分布過于簡單的問題,ADGM 的優(yōu)勢是沒有削弱編碼器,代價是需要5 個神經網絡,計算量更大.用one-hot 向量表示標簽信息可以使VAE 能夠處理監(jiān)督數據,本質上是在編碼器中加入一個條件約束,模型在學習樣本時加入標簽因素,使VAE 可以按照指定的標簽生成相應類型的樣本.

        Abbasnejad 等[50]提出用無限混合(Infinite mixture)模型處理半監(jiān)督數據,無限混合模型是指一定數量的帶有不同混合系數的VAE 的混合,模型數量可以由樣本自動學習確定,混合系數由狄利克雷過程獲得.但這兩種方法的效果都不如ADGM.

        3.2.3 卷積變分自編碼器

        很多深度生成模型想要生成高分辨率的圖片樣本都會與卷積網絡結合.將卷積層融入到VAE 的模型被稱為深度卷積逆圖形網絡[54](Deep convolutional inverse graphics network,DC-IGN).DCIGN 的結構與VAE 相同,只是將VAE 中的編碼器和解碼器由原來的全連接網絡替換成卷積網絡和逆卷積網絡,并對模型的部分結構和訓練過程做出針對性調整.DC-IGN 確立了在VAE 結構中使用卷積層的結構框架,這種結構在三維圖像生成領域獲得了不錯的效果.

        3.2.4 對抗自編碼器

        對抗自編碼器(Adversarial autoencoders,AAE)[55]是將對抗的思想應用到VAE 訓練過程的生成模型,兩者的主要區(qū)別是VAE 用先驗分布和后驗分布的KL 散度約束隱藏變量,AAE 則構造了一個聚合先驗分布(偽先驗分布)來匹配可以是任意分布的真實后驗分布,為了實現對兩個分布的匹配,AAE 在隱變量處附加一個對抗網絡,其結構如圖10 所示.

        圖10 對抗自編碼器Fig.10 Adversarial autoencoders

        AAE 的生成器采用和編碼器相同的神經網絡,用來偽造接近真實隱藏變量的分布,判別器負責區(qū)分真假分布中得到的樣本.

        生成器和判別器共同組成了附加的對抗網絡,對抗網絡的目的是使生成器生成的任意復雜度的分布可以足夠接近真實隱藏變量,該部分的目標函數與生成對抗網絡的目標函數相同,在AAE 的整體損失函數中相當于替換了VAE 中KL 散度的正則化項.圖中展示的AAE 結構可以用于無監(jiān)督學習,以該結構為基礎,AAE 構造出適用于監(jiān)督學習、半監(jiān)督學習和風格遷移等三種不同的模型結構,并在各自的領域內都獲得了不錯的實驗效果,大大增加了VAE 模型的應用范圍.

        Zhao 等[56]從不同的角度得到了更一般的似然函數,該論文認為VAE 的解碼器同樣需要約束,為了適當的限制這種靈活性而在目標函數中引入互信息,即InfoVAE.InfoVAE 給出一個目標函數框架:其中,I(x,z) 表示可見變量x和隱變量z之間的互信息,λ,α是模型參數,不同參數可以得到不同VAE的目標函數:

        1)λ=1,α=0 時該目標函數等價于VAE;

        2)λ=1,α=1 且使用JS (Jensen Shannon)散度,得到對抗自編碼AAE 的目標函數;

        3)λ>0 且α+λ=1 時,可以得到β-VAE 的目標函數[57].

        3.2.5 階梯變分自編碼器

        采用階梯結構的階梯變分自編碼器[58](Ladder variational autoencoders,LVAE)逐層、遞歸的修正隱藏變量的分布,利用多層網絡構造更復雜的隱藏變量分布,并在變分下界中使用預熱法,這兩種方法使得LVAE 的損失比重要性加權自編碼IWAE和輔助深度生成模型ADGM 更低,此后出現的VAE 論文經常用LVAE 的結果進行比較.

        LVAE 將隱藏變量z分割成L 層,多層隱藏變量的每一層的條件概率分布均為正態(tài)分布,因此先驗分布可以表示為第一個隱藏層的分布P(zL) 乘以前面隱藏層與相鄰層之間的條件概率之積,條件概率和第一個隱藏層的分布為

        解碼器的分布與VAE 相同,使P(x|z) 為正態(tài)分布或伯努利分布,變分下界采用重要性加權下界以獲得更緊的變分下界,并設計了一個可以逐漸改變權重的目標函數:

        其中,權衡參數β=[0→1] 在模型訓練過程中逐漸增加值的大小,即預熱法(Warm-up,WU).WU 是處理變分函數的一種常用方法,在模型訓練的初始階段設置β=0,使模型集中注意力去減少重構誤差,然后在訓練過程中逐漸增大β的值,使目標函數的權重平衡到懲罰項KL 散度上直到β=1,此時該目標函數與VAE 相同.論文中指出,將WU算法直接應用在VAE 中也能得到損失更低的目標函數.

        Cai 等[59]提出了使用了雙層解碼器的多階段變分自編碼器(Multi-stage variational auto-encoders,multi-stage VAE):用原始解碼器作為第一階段生成粗略的樣本,然后在模型第二階段使用超分辨率模型將模糊樣本作為輸入生成高清樣本,使用殘差網絡使多階段模型更容易訓練.該模型的雙層解碼器一定程度上克服了生成樣本不夠清晰的缺點,生成的樣本盡管有所改進,但依然比較模糊.

        3.2.6 向量量化變分自編碼器

        向量量化變分自編碼器(Vector quantised variational auto-encoders,VQ-VAE)[60?61]是首個使用離散化隱藏變量的VAE 模型.離散表示經常是更高效的表示方式,例如自然語言處理中文字的隱表示通常是離散化形式,圖像編碼過程的離散表示也可以提高壓縮效果,因此VQ-VAE 意圖訓練出表示能力更強大的離散變量的先驗分布,使模型有能力生成有意義的樣本以及擴展VAE 的應用領域.

        VQ-VAE 受到向量量化(Vector quantization,VQ)方法的啟發(fā)而提出了新的訓練方法:后驗概率分布和先驗概率分布有明確分類,從這些分類明確的概率分布中提取樣本,利用嵌入表示進行索引,得到的嵌入表示輸入到解碼器中.這種訓練方法和有效的離散表達形式共同限制了解碼器的學習過程,避免后驗崩潰(Posterior collapse)現象.后驗崩潰是指當解碼器的能力過強時,會迫使編碼器學習到無用的隱表示,是VAE 模型中經常出現的訓練問題.

        VQ-VAE 結構簡單,與適當的先驗一起出現時能夠在圖像、視頻、音頻樣本上生成連續(xù)的高質量樣本,證明了VAE 類模型可以應用于無監(jiān)督對話中,為VAE 開創(chuàng)了新的應用范例.

        3.3 應用、分析和小結

        在生成樣本方面,VAE 類模型可以生成高清晰度的手寫體數字[62]、自然圖像[63]和人臉[54,64]等基礎數據,并成功生成靜態(tài)圖片的未來預測圖片[49],其中最有影響力的應用是在VAE 的編碼器和解碼器中使用循環(huán)神經網絡RNN 的DRAW 網絡[63],DRAW 擴展了VAE 的結構,并且生成了逼真的門牌號碼圖片(SVHN 數據集),是2016 年出現的效果最好的生成模型之一.DRAW 的作者隨后在該模型中加入卷積網絡提取空間信息[65],進一步提高了模型的生成能力,并生成了清晰的自然圖像樣本.

        除了生成圖片樣本,VAE 還可以在自然語言處理領域生成文本[66?68]、在天文學中模擬對遙遠星系的觀測[69]、在推薦系統(tǒng)中融合不同信息[70],在圖像合成領域生成不同屬性的圖像樣本[71]以及在化工領域中設計分子的結構[72]等領域均有使用.

        作為當前最常用的深度生成模型之一,VAE由于自身結構的固有缺點使模型生成的圖片樣本帶有大量的噪聲,大部分VAE 結構很難生成高清的圖片樣本,在圖像生成領域的效果不如基于GAN和FLOW 的生成模型,所以在圖像領域VAE 通常被當作特征提取器.但在自然語言處理領域,VAE類模型生成的語言樣本比生成對抗網絡更合理,只需要簡單的結構就能生成出較流暢的語言,因此更應該在自然語言處理領域尋找VAE 的優(yōu)勢之處.

        VAE 通過編碼、重構和解碼三個過程完成了由輸入樣本到隱藏變量的編碼過程和隱藏變量到新樣本的生成過程.表2 列舉了VAE 中有影響力的模型并簡略介紹了各種模型的核心方法,從表中可以看出,VAE 模型的重要文獻中,大部分都是對變分下界的改動,所以學習VAE 模型的關鍵是充分理解變分下界的意義.

        表2 重要的VAE 模型Table 2 Important VAE models

        4 生成對抗網絡

        生成對抗網絡(Generative adversarial nets,GANs)[3]是當前機器學習領域最熱門的研究方向,在圖像生成領域占有絕對優(yōu)勢.GAN 本質上是將難以求解的似然函數轉化成神經網絡,讓模型自己訓練出合適的參數擬合似然函數,這個神經網絡就是GAN 中的判別器.

        GAN 內部對抗的結構可以看成是一個訓練框架,原理上可以訓練任意的生成模型,通過兩類模型之間的對抗行為來優(yōu)化模型參數,巧妙地避開求解似然函數的過程.這個優(yōu)勢使GAN 具有很強的適用性和可塑性,可以根據不同的需求改變生成器和和判別器,盡管模型本身具有很多訓練上的難點,但隨著各種解決方法的出現,逐漸解決了模型的訓練問題,使GAN 受到很多關注,幾年內就出現數以千計的相關論文.

        GAN 原理簡單易理解,生成的圖片清晰度和分辨率超過其他生成模型,缺點是訓練不穩(wěn)定,因此人們最關注的是模型的生成效果和訓練穩(wěn)定性兩方面.本節(jié)首先介紹GAN 的基本原理和模型結構,然后介紹基于WGAN 的穩(wěn)定性研究和GAN 模型框架的發(fā)展.

        4.1 GAN 模型

        4.1.1 GAN 的基本原理

        GAN 中的博弈方是一個生成器和一個判別器,生成器的目標是生成逼真的偽樣本讓判別器無法判別出真?zhèn)?判別器的目標是正確區(qū)分數據是真實樣本還是來自生成器的偽樣本,在博弈的過程中,兩個競爭者需要不斷優(yōu)化自身的生成能力和判別能力,而博弈的結果是找到兩者之間的納什均衡,當判別器的識別能力達到一定程度卻無法正確判斷數據來源時,就獲得了一個學習到真實數據分布的生成器,GAN 的模型結構如圖11 所示.

        圖11 GAN 模型結構Fig.11 The structure of GANs

        GAN 中的生成器和判別器可以是任意可微函數,通常用多層的神經網絡表示.生成器G(z;θ) 是輸入為隨機噪聲、輸出偽樣本、參數為θ的網絡,判別器D(x;φ) 是輸入為真實樣本和偽樣本、輸出為0或1 (分別對應偽樣本和真實樣本)、參數為φ的二分類網絡.GAN 根據生成器和判別器不同的損失函數分別優(yōu)化生成器和判別器的參數,避免了計算似然函數的過程.

        4.1.2 訓練方法

        GAN 的訓練機制由生成器優(yōu)化和判別器優(yōu)化兩部分構成,下面分析兩者的目標函數和優(yōu)化過程.

        優(yōu)化判別器.固定生成器G(z;θ) 后優(yōu)化判別器D(x;φ),由于判別器是二分類模型,目標函數選用交叉熵函數:

        其中,Pr是真實樣本分布,Pg表示由生成器產生的樣本分布.判別器的目標是正確分辨出所有樣本的真?zhèn)?該目標函數由兩部分組成:

        1) 對于所有的真實樣本,判別器應該將其判定為真樣本使輸出D(x) 趨近1,即最大化[logD(x)]:

        2) 對于生成器偽造的所有假樣本,判別器應該將其判定為假樣本使輸出盡量接近0,即最大化

        優(yōu)化生成器.固定訓練好的判別器參數,考慮優(yōu)化生成器模型參數.生成器希望學習到真實樣本分布,因此優(yōu)化目的是生成的樣本可以讓判別器誤判為1,即最大化,所有生成器的目標函數為:

        后來又提出了一個改進的函數為:

        從該目標函數可以看出,生成器的梯度更新信息來自判別器的結果而不是來自數據樣本,相當于用神經網絡擬合出數據分布和模型分布之間的距離,從根本上回避了似然函數的難點,這一思想對深度學習領域產生了深遠的影響,也是GAN 模型的優(yōu)勢.

        固定生成器參數,根據判別器目標函數可得到:

        令式(46)對D(x) 的導數為0 可以得到判別器最優(yōu)解的表達式:

        然后固定最優(yōu)判別器D?參數,訓練好的生成器參數就是最優(yōu)生成器.此時Pr(x)=Pg(x),判別器認為該樣本是真樣本還是假樣本的概率均為0.5,說明此時的生成器可以生成足夠逼真的樣本.

        4.1.3 GAN 存在的問題

        GAN 模型剛提出時存在很多嚴重缺陷,效果也不突出,從模型結構到穩(wěn)定性、收斂性等都處于探索階段,導致一段時間內沒有展現出應有的能力.GAN 模型的不足之處可以總結為以下幾點:

        1) 模型難以訓練,經常出現梯度消失導致模型無法繼續(xù)訓練;生成器形式過于自由,訓練時梯度波動極大造成訓練不穩(wěn)定;需要小心地平衡生成器和判別器的訓練程度,使用更新一次判別器后更新k次生成器的交替訓練法并不能很好地緩解訓練問題;

        2) 出現模式崩潰(Model collapse),具體表現為生成樣本單一,無法生成其他類別的樣本;

        3) 目標函數的形式導致模型在訓練過程沒有任何可以指示訓練進度的指標.

        Arjovsky 等在論文[73]中用一系列的公式推導證明了GAN 出現各種問題的原因并給出了初步的解決方案.論文分析了生成器目標函數的兩種形式,對式(44)進行恒等變形使之成為如下形式:

        將其帶入到最優(yōu)判別器式(47)中后得到的最終結果為:

        根據GAN 定義的判別器目標函數的最優(yōu)解,可以將生成器等價為真實分布和生成分布的JS 散度,所以優(yōu)化生成器時相當于最小化兩個分布之間的距離.但JS 散度的定義導致當兩個分布之間沒有任何重合部分時,JS 散度的值將固定是常數log 2,這就會產生梯度消失的現象.

        論文中指出,當兩個分布的支撐集是高維空間中的低維流形時,兩者之間沒有重疊部分的概率是1.如圖片樣本等高維數據,其分布只是高維空間中的一個低維流形,兩個不同分布之間幾乎不存在重疊,導致生成器目標函數的導數為0 從而出現梯度消失的現象.

        根據Huszar[74]給出的推導可將兩個分布之間的KL 散度變換為含最優(yōu)判別器D?的形式:

        對式(45)進行等價變換,得到的最終結果表示為:

        KL 散度的不對稱性使生成的樣本缺乏多樣性和準確性,這種懲罰程度的巨大差別使生成器無限趨向于生成準確樣本而不去生成多樣性的樣本,以免產生巨大的懲罰,所以生成器目標函數中的KL散度項是造成模型模式崩潰的原因.

        4.2 基于WGAN 的穩(wěn)定性研究

        WGAN[75](Wasserstein GAN)從理論上分析了原始GAN 存在的缺陷,提出用Wasserstein 距離替代KL 散度和JS 散度,改變了生成器和判別器的目標函數,并對判別器施加Lipschitz 約束以限制判別器的梯度,后來對GAN 穩(wěn)定性研究的很多論文都以Lipschitz 約束為出發(fā)點.WGAN 只用幾處微小的改動就解決了GAN 不穩(wěn)定的問題,基本消除了簡單數據集上的模型崩潰問題,是GAN最重要的改進論文之一.

        4.2.1 Wasserstein 距離的優(yōu)點

        fGAN[76]以局部變分法為理論基礎證明了任何散度都可以應用到GAN 的結構中,并給出了用一般化的f 散度構造GAN 的統(tǒng)一方法.GAN 的缺點源自KL 散度和JS 散度本身性質的問題,因此WGAN提出用Wasserstein 距離替代KL 散度和JS 散度,解決兩種散度造成的訓練不穩(wěn)定問題.Wasserstein距離又被稱為推土機距離(Earth mover,EM),最初用于解決最優(yōu)運輸問題,可以解釋為將分布Pr沿某個規(guī)劃路徑轉移到分布Pg需要的最小消耗,該問題對應的最優(yōu)化問題可以表示成如下形式:

        其中,x,y分別表示付出分布Pr和Pg的樣本,c(x,y)表示輸運成本,表示兩個分布的所有聯合分布集合,該集合中的任意分布的邊緣分布均為Pr和Pg,即Pg(x).對于任意一個可能的聯合分布γ(x,y),從分布中抽樣得到真實樣本x和生成樣本y,這兩個樣本之間的距離在聯合分布期望下的值為E(x,y)~γ[||x ?y||],在所有聯合分布中選取對該期望值能夠取到下界的分布,該下界就定義為Wasserstein 距離.

        如果高維空間中的兩個分布之間沒有重疊,KL 散度和JS 散度無法正確反映出分布的距離,也就不能為模型提供梯度,但Wasserstein 距離可以準確地反映這兩個分布的距離,從而提供更可靠的梯度信息,避免訓練過程中出現梯度消失和不穩(wěn)定等現象.

        4.2.2 WGAN 的判別器形式

        Wasserstein 距離很難直接優(yōu)化,但可以將式(52)變換成對偶問題:

        式(53)相當于在連續(xù)函數F(·) 上施加Lipschitz常數為K的約束,使得定義域內任意兩個元素x1和x2滿足:

        這就將Wasserstein 距離轉化成求解滿足Lipschitz 約束的所有函數條件下兩個分布期望之差的上界.WGAN 對判別器施加Lipschitz 約束的具體方法是限制網絡中的權重,控制所有權重的絕對值不超過固定常數,否則對參數進行截斷,這種方法叫做權重裁剪(Weight clipping).判別器通過權重裁剪后得到:

        該式可以指示模型的訓練進度,真實分布與生成分布的Wasserstein 距離越小,說明GAN 中生成器的生成能力越好.根據式(55)可以得到WGAN中生成器和判別器的目標函數分別為:

        通過對判別器參數設置閾值保證判別器對差別微小的樣本不會得到差別過大的值,滿足對距離基本的穩(wěn)定性要求,避免判別器在訓練時產生不穩(wěn)定現象.判別器的輸出是真實分布和生成分布之間的Wasserstein 距離的近似值而不再是GAN 的二分類任務,因此去掉判別器最后一層的激活函數.

        4.2.3 梯度懲罰

        WGAN 在訓練過程中會出現收斂速度慢、梯度消失或梯度爆炸等現象,原因在于對判別器施加Lipschitz 約束的方式不合理.實驗發(fā)現權重裁剪會使判別器所有參數趨于極端,全部集中在閾值的最大值和最小值這兩個點上,這使得判別器退化成一個二值神經網絡,嚴重影響了判別器的能力;閾值的調參過程比較困難,經常出現梯度爆炸或梯度消失的現象.

        WGAN-GP[77]直接將判別器的梯度作為正則項加入到判別器的損失函數中,該正則項通過懲罰梯度使判別器梯度在充分訓練后達到Lipschitz 常數K附近,因此該正則項被稱為梯度懲罰(Gradient penalty).加入梯度懲罰的判別器的目標函數為:

        其中,Lipschitz 常數K取1,表示整個樣本空間的概率分布.梯度懲罰要求梯度在整個樣本空間內都滿足∥?xD(x)∥2≤1,這種約束條件難以做到,所以采用真假樣本以及兩者之間的隨機插值的方法,使該約束能近似地遍布真實樣本和生成樣本之間的所有空間,即:

        其中,ε是服從 U[0,1] 的隨機數,xr和xg分別表示真實樣本和生成樣本.梯度懲罰只對真假樣本集中區(qū)域以及兩者之間的區(qū)域生效,就能夠很好地控制梯度,使WGAN-GP 避免出現梯度消失或梯度爆炸,顯著提高訓練速度和收斂速度,可以訓練多種不同種類的網絡結構,首次實現了GAN 模型的無監(jiān)督文本生成.

        4.2.4 譜歸一化生成對抗網絡

        梯度懲罰的缺點是懲罰只能在局部生效,如果樣本類別較多,隨機插值方法會導致判別器的約束失效.譜歸一化(Spectral normalization)方法則將判別器中的所有參數都替換為W →W/∥W∥2,如果激活函數導數的絕對值都小于等于某個常數,就能保證判別器滿足Lipschitz 約束.用這種更精確的方法實現|F|L ≤K約束的模型叫譜歸一化生成對抗網絡[78](Spectral normalization for GAN,SNGAN),該模型實現方法簡單,只需把譜范數的平方作為正則化項,填加到判別器的目標函數中,此時該目標函數可以表示為:

        SNGAN 的收斂速度比WGAN-GP 更快,且效果更好,是目前對模型施加Lipschitz 約束的最好方法.

        4.3 GAN 框架結構發(fā)展

        4.3.1 基于卷積層的結構

        深度卷積生成對抗網絡(Deep convolutional generative adversarial networks,DCGAN)[79]是GAN 的第一個重要改進,在多種結構中篩選出效果最好的一組生成器和判別器,使GAN 訓練時的穩(wěn)定性明顯提高,至今仍然是常用的架構.正因為DCGAN 的出現,讓人們不必過多糾結模型的結構,而是把注意力放在綜合性的任務上,使DCGAN 迅速應用到圖像生成、風格遷移和監(jiān)督任務等多個領域.

        DCGAN 的結構如圖12 所示.模型架構最主要的特點是判別器和生成器采用卷積網絡和反卷積網絡,各層均使用批歸一化.DCGAN 訓練速度很快,內存占用量小,是快速實驗最常用的結構,缺點是生成器中的反卷積結構存在固有的棋盤效應(Checkerboard artifacts),具體表現為圖片放大之后能看到如象棋棋盤一樣的交錯紋理,嚴重影響生成圖片的質量,限制了DCGAN 結構的重構能力.

        基于卷積層的最新生成對抗網絡是針對單個自然圖像的SinGAN[80],該模型按照不同比例的下采樣將單個圖像樣本分割成多個不同尺度的子樣本,然后使用多個DCGAN 組成金字塔結構,各個DCGAN負責學習不同子樣本的數據概率分布,這種結構使模型能夠生成給定圖像中相同視覺內容的高質量且具有任意大小和比例的新圖像.

        4.3.2 基于殘差網絡的結構

        生成器中的反卷積結構在圖像上的映射區(qū)域大小有限,使得DCGAN 難以生成高分辨率的圖像樣本,而漸進式增長生成對抗網絡[81](Progressive growing of GAN,PGGAN)等生成能力突出的新一代結構均選用殘差網絡作為生成器和判別器,其基本結構如圖13 所示.基于ResNet 的GAN 模型的主要特點為判別器使用了殘差結構,生成器用上抽樣替代反卷積層,判別器和生成器的深度都大幅度增加.

        圖13 ResNet-GAN 結構Fig.13 The structure of ResNet-GANs

        基于殘差結構框架的BigGAN[82]是當前圖像生成領域效果最好的模型,生成高清樣本的逼真程度大幅度領先其他生成模型.BigGAN 對圖像細節(jié)處理的很好,能生成非常逼真的 512×512 自然場景圖像,實現了大規(guī)模和穩(wěn)定性的較大提升與平衡,論文后續(xù)將模型深度增加四倍得到BigGAN-deep模型,改進了分層隱藏空間技術,使模型性能進一步提升.

        BigGAN 模型的缺陷是需要大量的標注數據才能訓練,在BigGAN 的判別器中增加一個額外的無監(jiān)督任務的模型S3GAN 能夠為無標簽樣本添加標簽,從而增加大量的訓練數據,使S3GAN 用10%的標簽數據就能夠匹配BigGAN 生成的樣本質量.

        4.3.3 監(jiān)督結構和半監(jiān)督結構

        為了將樣本與標簽信息結合,條件生成對抗網絡[83](Condition GAN,CGAN)將標簽信息作為附加信息輸入到生成器中,再與生成樣本一起輸入到判別器中:生成器同時接收噪音和標簽信息,目的是讓生成的樣本能盡量符合標簽信息;判別器輸入標簽信息和真?zhèn)螛颖?同時進行兩次判斷,一是判斷輸入樣本的真?zhèn)?二是該樣本與標簽信息是否匹配,最后輸出樣本真?zhèn)魏蜆撕炐畔㈩A測值.

        另一種常用結構是輔助分類器生成對抗網絡[84](Auxiliary classifier GAN,ACGAN),ACGAN 的生成器同CGAN 相同,但判別器只輸入真?zhèn)螛颖?輸出樣本真?zhèn)魏蜆撕炐畔㈩A測值,因此判別器的額外輸出需要設置關于標簽信息的損失函數.從實驗的結果來看,兩種結構處理監(jiān)督數據的性能相似,但ACGAN 的結構更適合處理半監(jiān)督數據.兩種網絡結構如圖14 所示.

        圖14 CGAN 和ACGAN 結構Fig.14 The structure of CGANs and ACGANs

        為了充分利用無標簽數據,半監(jiān)督條件生成對抗網絡(Semi-supervised CGAN,SSGAN)[85]在CGAN 結構基礎上設計了兩個不同功能的判別器:第一個判別器將去除了標簽信息的有標簽數據和無標簽數據一同作為輸入,輸出數據真?zhèn)胃怕实耐瑫r將數據的中間變量傳輸給第二個判別器;第二個判別器根據中間變量及其相應的標簽信息判斷聯合概率分布的真?zhèn)?

        StackGAN[86]是基于CGAN 的改進模型,解決了無法生成高分辨率圖片樣本的缺點,方法是搭建兩個生成器,并將訓練過程分為兩個階段:第一階段采用標準的CGAN,輸入噪聲和對應的文本標注信息,然后生成一個低分辨率的樣本;第二階段的生成器將第一階段生成的低分辨率圖像與處理過的標注信息連接起來作為輸入,以便生成高清樣本.StackGAN++[87]在此基礎上使用樹狀結構生成器,引入顏色正則化約束圖片的色彩信息,進一步提高訓練穩(wěn)定性和生成樣本的質量.

        4.4 應用、分析與總結

        4.4.1 應用

        GAN 模型種類繁多,應用廣泛,其中最成功的應用是圖像處理和計算機視覺,并以人體合成和人臉生成的發(fā)展尤為迅速:解開糾纏的隱表示生成對抗網絡[88](Disentangled representation GAN,DRGAN)可以根據任意角度的人臉樣本輸入,輸出任意目標角度的合成人臉及身份信息;雙通道生成對抗網絡[89](TPGAN)通過同時學習局部細節(jié)和全局感知實現了寫實主義風格的人臉合成;姿態(tài)生成網絡[90](PG2)根據人體圖像和任意姿態(tài)合成該姿態(tài)下的人體圖像,這一應用與變結構式生成對抗網絡[91]的效果類似;GAN 還可以利用監(jiān)督學習的方法實現風格轉換,根據標簽信息生成相應的風格圖像樣本[92?93];相比上述需要多種類標簽信息的監(jiān)督模型,應用于無監(jiān)督的人臉生成上的GAN 結構更簡單,相關研究很多[94?96],目前已經可以生成1024×1024的逼真人臉圖像.

        SRGAN[97]是第一個應用于圖像超分辨率領域的GAN 框架,使GAN 能夠提高自然場景圖片的分辨率,ESRGSN[98]對該模型進行了改進,增強了模型性能;CycleGAN[99]和其改進模型[100?101]利用循環(huán)損失函數和兩組生成器—判別器將圖像轉化為另一個風格;GAN 可用于目標檢測,perceptual GAN[102]和MTGAN[103]分別適用于小目標檢測和多目標檢測,SeGAN[104]可以用于對圖像的目標檢測.

        文獻[105]使用GAN 框架首次實現了視頻生成,但視頻的像素和清晰度都非常低,連貫性也比較差,隨后的相關研究逐漸的提升了生成視頻的清晰度和連貫性[106?107],文獻[108]則用GAN 模型作視頻預測.GAN 在音頻領域也有廣泛應用,例如音樂生成[109]、語音的合成[110]和識別[111]等;GAN 在自然語言處理領域也有應用,例如信息檢索[112]、文本生成[113]以及用文本生成圖像[114]等;另外GAN 在醫(yī)學[115?117]和數據科學[118?119]等領域也在最近兩年內得到關注和大量應用.

        4.4.2 分析和小結

        因為減少計算量等數學因素,GAN 以外的其他幾種主流深度生成模型都假設隱藏變量服從高斯分布或平均分布等基礎分布,這種不符合實際的假設,限制了模型的適用范圍.這一局限性正是GAN最大的優(yōu)勢,因為GAN 模型不需要假設隱藏變量服從的概率分布和數據的概率分布就能夠生成清晰度很高的樣本,使其在圖像處理和計算機視覺等領域占有絕對優(yōu)勢.在圖像生成領域,模型的優(yōu)劣主要以能生成的最高分辨率為準,如今的GAN 從最早的 28×28 灰度手寫體圖像發(fā)展到 512×512 的自然場景圖像生成,生成樣本清晰度很高且富有多樣性,用于評價生成樣本逼真度的常用指標Inception Score[120]已經可以接近真實圖片.

        GAN 模型是深度生成模型中最大的分支,目前已經有數千篇的研究論文,表3 列舉了部分改進模型,其中最有影響力的模型包括:InfoGAN[121]將生成器的輸入噪聲分解為一個噪聲和表示真實數據分布的結構化語義特征,用于表示生成數據的不同特征維度,并使用基于互信息的正則化項用于約束生成器,使GAN 能夠學習解開糾纏的引表示;PGGAN[81]可以隨著訓練的進行逐漸增加層數,在訓練好的淺層網絡權重的基礎上逐漸加深網絡的深度,使模型能夠學習更高分辨率的圖像;自注意力生成對抗網絡[122](Self-Attention generative adversarial,SAGAN)將注意力機制引入到GAN 結構中,使模型能夠更好的處理圖像中大范圍、多層次的依賴關系,并在生成器中應用譜歸一化方法作為正則項約束生成器參數.

        表3 重要的GAN 模型Table 3 Important GANs

        在可預見的未來,GAN 模型必將是圖像生成領域內最具代表性、最成功的深度生成模型.很多與GAN 結合的生成式模型應用在自然語言處理中,例如VAE 與GAN 的結合、利用強化學習的Seq-GAN[109]等.這些模型的提出不僅擴展了GAN 的應用領域,而且提高了GAN 理論上的完備程度.

        5 流模型

        主流深度生成模型中,VAE 推導出了似然函數的變分下界,但用容易求解的變分下界代替真實的數據分布屬于近似方法,得到的近似模型無法得到最好的生成效果;GAN 雖然用模型對抗和交替訓練的方法避免了優(yōu)化似然函數,保留了模型的精確性,但在訓練過程會出現各種問題,因此研究一種既能保證模型精度又容易訓練的深度生成模型是有意義的.

        流模型的基本思想是:真實數據分布一定可以由轉換函數映射到人為給定的簡單分布,如果該轉換函數是可逆的且可求出該轉換函數的形式,則這個簡單分布和轉換函數的逆函數就能夠構成一個深度生成模型.可逆函數的性質說明Flow 模型是一個精確模型,有希望生成質量足夠好的樣本.

        Flow 模型的相關論文較少,重要的論文中存在很多必須了解的基本結構,因此本節(jié)首先介紹Flow的基礎框架,然后詳細說明NICE、Real NVP 和Glow 等常規(guī)流、i-ResNet 以及變分流等模型的結構.

        5.1 流模型框架

        數據分布P(x) 通過轉換函數G(x) 將該分布映射為指定的簡單分布,假設該分布是各分量獨立的高斯分布,則P(x) 可以表示成帶有轉換函數和雅可比行列式的如下形式:

        其中,det(·) 表示雅可比行列式.根據該目標函數優(yōu)化能得到G(x) 中的參數,進而得知逆函數F(z) 的具體形式,這樣就能得到一個生成模型.但雅可比行列式的計算量很大,轉換函數的逆變換難以求解,為了保證計算上的可行性,G(x) 必須滿足如下條件:

        1) 雅可比行列式容易計算;

        2) 函數可逆,求逆過程的計算量盡量小.

        雅可比行列式的維數與數據維數相關,對于高維數據而言,雅可比行列式的計算量要比函數求逆更大,因此G(x) 首先要滿足第一個條件.流模型提出將雅可比行列式設計為容易計算的三角陣行列式,其值等于對角線元素乘積從而簡化求解雅可比行列式的計算量:

        三角陣行列式的上三角或下三角區(qū)域元素的值為0 意味著每次轉換都只有一部分元素參與了映射,另一部分元素只進行了恒等變換,這種簡單變換產生的非線性較弱,需要多個簡單變換的復合形式增強模型的擬合能力.根據鏈式法則可得:

        流模型的轉換函數用神經網絡表示,該神經網絡相當于一系列轉換函數作用效果的累積,這種簡單變換的疊加過程如同流水一般積少成多,因此將這樣的過程稱為“流”,大部分流模型都以這種模型框架為基礎.此時流模型的對數似然函數可以寫成:

        5.2 常規(guī)流

        常規(guī)流(Normalizing flow)是流模型中最主要的模型,包括一脈相承的NICE、Real NVP 和Glow 三個模型.這三個模型提出了流模型的概念、確立了模型的基本框架以及轉換函數的具體形式,使模型性能逐步提高,最新的Glow 已經可以生成大分辨率的高清人臉圖像.

        5.2.1 NICE

        非線性獨立成分估計(Nonlinear independent Components estimation,NICE)[5]是第一個流模型,此后出現的流模型大部分都是以NICE 的結構和理論為基礎.除了流模型的基本框架外,NICE 提出了三個重要的模型結構:加性耦合層、維數混合和維數壓縮層.

        加性耦合層.NICE 提出將雅可比行列式構造成三角陣形式,并將這種結構稱為耦合層(Coupling layer).耦合層將D維輸入變量分割成兩部分xD=[x1:d,xd+1,D]=[x1,x2],然后取如下變換:

        其中,M表示定義在空間 Rd上的任意函數,下一個隱藏層變量為h=[h1,h2],這種只含有加性算法的耦合層被稱為加性耦合層(Additive coupling),其結構如圖15 所示.

        圖15 加性耦合層結構Fig.15 The structure of aditive couping

        加性耦合層的雅可比行列式是上三角行列式且對角線元素全部為1,用分塊矩陣表示該行列式為:

        該雅可比行列式的值為1,根據鏈式法則可以得到:

        這使得該項在目標函數中的值為1,從而消除了雅可比行列式的計算量.該轉換函數的逆函數也很容易得到,其逆變換的形式如下:

        這種結構的轉換函數即滿足可逆性的要求,且逆函數和雅可比行列式都容易求解,不需要額外的計算量,后來大部分的流模型都采用了這種結構.

        維度混合.轉換函數不僅非線性能力較弱,而且每次轉換過程都有一部分元素沒有變化.為了使信息能充分混合,NICE 采用在每次耦合層后直接交換兩部分元素的位置其結構如圖16 所示.

        圖16 維數混合結構Fig.16 The structure of hybrid dimensions

        維數壓縮層.Flow 是以可逆變換結構為基礎的模型,變換可逆性使得模型中各隱藏層的維數需要與輸入樣本維數D的大小相同,這使得Flow 模型存在嚴重的維數浪費問題,因此NICE 提出在最后一層和先驗分布之間引入維數壓縮層,此時模型的對數似然函數變?yōu)?/p>

        其中,s表示維數壓縮層中待優(yōu)化的參數.在壓縮層中引入s等價于將先驗分布的方差也作為參數進行優(yōu)化.如果某個方差接近0,說明其對應的維數所表示的流形已經塌縮為點,從而起到維數壓縮的作用.

        5.2.2 Real NVP

        Real-valued non-volume preserving (Real NVP)[123]直譯為實值非體積保持,非體積保持是指該模型的雅可比行列式的值不為1.Real NVP 在NICE 的基本結構上,提出了比加性耦合層非線性能力更強的仿射耦合層和維數的隨機打亂機制,在耦合層中引入卷積層使得Flow 模型可以更好地處理圖像問題,并設計了多尺度結構以降低NICE 模型的計算量和存儲空間.

        仿射耦合層.NICE 性能較差與耦合層結構過于簡單有關,因此Real NVP 提出在原有的加性耦合層的基礎上加入了乘性耦合,兩者組成的混合層稱為仿射耦合層(Affine coupling layer),其結構如圖17 所示.

        圖17 仿射耦合層結構Fig.17 The structure of affine coupling layer

        該耦合層可以表示成如下形式:

        仿射耦合層的雅可比行列式是對角線不全為1的下三角陣,用分塊矩陣表示該行列式為:

        該行列式的值為對角線元素乘積,為了保證可逆性需要約束雅可比行列式對角線各元素均大于0,因此Real NVP 直接用神經網絡輸出 logs.該轉換函數的逆函數很容易表示為:

        隨機混合機制.NICE 性能較差的另一個原因是交換兩個分量的位置不能充分混合變量信息,因此Real NVP 采用隨機混合機制,對耦合層之間的分量隨機打亂,再將打亂后的向量重新分割成兩部分并輸送到下個耦合層中,其結構如圖18 所示.

        圖18 隨機混合結構Fig.18 The structure of random mixing

        掩碼卷積層.為了更好地處理圖片樣本,Real NVP 在流模型中引入了卷積層.卷積方法可以捕捉樣本在空間上的局部相關性,但是隨機打亂機制會使樣本原有的局部相關性消失,為此Real NVP提出先使用掩碼增加樣本通道數并降低空間維數,棋盤掩碼是一種固定間隔的空間軸上的交錯掩碼,能夠有效保留樣本在空間的局部相關性:

        用棋盤掩碼增加樣本通道數的操作稱為擠壓(Squeeze),是流模型中使用卷積層的必須步驟,然后對樣本的通道執(zhí)行分割和打亂操作,這種方式保留了樣本的局部相關性,以便直接使用卷積網絡,大幅度提高模型的計算效率.

        多尺度結構.NICE 的加性耦合層和real NVP的仿射耦合層在每次執(zhí)行時都有部分維數的向量沒有改變,因此real NVP 提出在仿射耦合層中使用如圖19 所示的多尺度結構,是仿射耦合層交替變換的一種組合結構.

        圖19 仿射耦合層的組合策略Fig.19 Composition schemes for affine coupling layers

        將樣本分成4 部分x=[x1,x2,x3,x4] 并輸入到耦合層中,第一次轉換將x1和x2轉換成h1和h2后當作多尺度結構的結果z1和z2,然后將沒有改變的輸入到耦合層中繼續(xù)轉換,得到轉換后的結果z3和沒有改變的,最后在第三次轉換過程中將轉換成z4.

        多尺度結構通過這種逐層轉換的方式,使數據的全部元素都可以在一個復合耦合層內進行轉換,保留了原有方法中雅可比行列式容易計算的特點,減少模型復雜度和計算量的同時增加模型的生成能力.

        5.2.3 GLOW

        GLOW[124]是以NICE 和real NVP 為基礎結構的模型,是當前流模型中效果最好的模型.GLOW模型主要有兩個貢獻:第一個貢獻是修改流模型的結構,提出完整的模型結構,引入Actnorm 層;第二個貢獻是提出1 乘1 卷積和LU 矩陣分解方法并將置換矩陣當作優(yōu)化項.

        模型結構修改.GLOW 以real NVP 模型為基礎構造了性能更好的模型框架,并針對real NVP的不足進行兩處修改:

        1) 仿射耦合層內部的乘性耦合使得其計算量是加性耦合層的兩倍,但經過實驗證明仿射耦合層的性能提升很小,因此GLOW 訓練高維樣本時為了減少計算量只保留加性耦合層.

        2) GLOW 證明了棋盤掩碼的復雜操作不能提升模型的生成能力,因此刪除了該模塊.

        Actnorm 層.由于內存限制,流模型在訓練較大的圖像時每個批次的樣本數通常選1,因此提出了類似于批歸一化處理的Actnorm 層.Actnorm用批次樣本的均值和方差初始化參數b和s,是對先驗分布的平移和縮放,有助于提高模型的生成能力.

        置換矩陣.相比于NICE 中的簡單交換,real NVP 的隨機打亂方法可以得到更低的損失,因此GLOW 提出用1 乘1 卷積運算改變置換通道的排列,用置換矩陣替代隨機打亂并放到損失函數中一并優(yōu)化以進一步提升模型效果.

        具體方法是通過一個隨機旋轉矩陣W置換輸入軸通道的排列順序使h=xW,為了保證轉換函數的可逆性,方陣W 初始化為隨機正交矩陣,因此其雅可比行列式的值為detW.

        為了更容易計算雅可比行列式的值,GLOW利用LU 矩陣分解法分解正交矩陣W 使W=PLU,其中P是置換矩陣,L是對角線全為1 的下三角陣,U是上三角陣,此時可以容易得到雅可比行列式的值為上三角陣U的對角線乘積:

        GLOW 使用LU 分解法計算旋轉矩陣W的雅克比行列式的值,幾乎沒有改變原模型的計算量,且減少了待優(yōu)化參數的數量.實驗證明了可逆1×1卷積可以得到比隨機打亂機制更低的損失且具有很好的穩(wěn)定性.

        GLOW 的單個轉換結構包括Actnorm 層、可逆1 乘1卷積和耦合層,其流程圖如圖20 所示.圖中的超參數K和L表示循環(huán)次數.樣本x先進行squeeze 操作后用單步轉換結構迭代K次,然后將轉換的結果進行維數分割,分割后的兩部分變量與多尺度結構的結果意義相同,將整個過程循環(huán)L ?1 次后將未轉換過的部分維數再次進行squeeze 操作和K次單步轉換,以上構成了GLOW 的多尺度結構.

        圖20 GLOW 的層結構Fig.20 The structure of layers in GLOW

        GLOW 進一步提升了流模型的性能,各個數據集上的表現都超過了其他所有流模型,可以生成清晰度很高的人臉圖像,缺點是置換矩陣導致模型的層數很多,擁有生成式模型中最大的參數量級,例如生成 256×256 的高清人臉圖像需要600 多個耦合層和2 億多個參數,訓練成本很高,因此改進自身結構或使用非線性程度更高的轉換函數以降低訓練成本和模型深度是提高流模型實用性的關鍵.

        5.3 可逆殘差網絡

        以GLOW 為代表的常規(guī)流模型有兩個嚴重的問題:第一個問題是流模型為了保證轉換函數的雅可比行列式在計算量上的可行性,導致單層轉換函數的非線性變換能力很弱,過多耦合層的累加使模型的參數個數巨大;第二個問題是為了有一個容易求解的逆函數,流模型的耦合層的存在,導致模型是不對稱的.

        可逆殘差網絡(Invertible residual networks,i-ResNet)[125]是以殘差網絡為基礎的生成模型,利用約束使殘差塊可逆,然后用近似方法計算殘差塊的雅可比行列式,這使得i-ResNet 與其他流模型有本質區(qū)別:保留了ResNet 的基本結構和擬合能力,使殘差塊是對稱的又有很強的非線性轉換能力.

        5.3.1 殘差塊的可逆性條件

        i-Res Net 的基本模塊與ResNet 相同,可以表示成y=x+G(x),殘差塊用神經網絡x+G(x) 擬合y,使得殘差塊的梯度 1+?G(x)/?y不會在深層網絡中出現梯度消失的問題,以便訓練更深層次的網絡.將i-ResNet 構造成流模型,首先要保證模型的可逆性,等同于保證單個殘差塊的可逆性.殘差塊可逆性的充分不必要條件是函數G(·) 的Lipschitz 范數小于1 即 Lip(G)<1 .因此神經網絡擬合的函數G(·)=F(Wx+b) 使用普通激活函數時,其可逆性條件等價于權重矩陣W 的譜范數小于1:

        因此只要對G(·)內的所有權重矩陣進行譜歸一化后乘一個介于0 和1 之間的系數即可保證殘差塊的可逆性:

        5.3.2 i-ResNet 的求解方法

        流模型需要直接計算出殘差塊的逆函數,但殘差塊的形式導致很難直接求出逆函數的解析形式,為了簡化計算,i-ResNet 使用迭代xn+1=y?G(xn):當xn收斂到某個固定函數時表明得到了足夠近似的逆函數,并給出限制Lip(G)>0.5 保證xn的收斂性.

        i-ResNet 的關鍵是如何求解殘差塊的雅可比行列式的值,雅可比行列式可以表示如下:

        為了求解該式,i-ResNet 先后使用級數展開、截斷和隨機近似三種數學方法:首先用恒等式將雅可比行列式絕對值的對數轉化為求跡,并在使用級數展開形式后在第n項截斷,然后使用隨機近似方法得到近似值.

        i-ResNet 使用多種手段直接且較高效的求解出殘差塊的雅可比行列式,盡管模型的生成能力與GLOW 相差很大,但擺脫了耦合層的弊端,是對FLOW 模型的革新和大膽的嘗試.

        5.4 變分推理流

        如VAE 等使用變分推斷的生成模型通常將近似后驗分布假設成高斯分布或高斯混合分布,但高斯分布只是眾多可能的后驗分布中的很小一部分,如果真實的后驗分布與假設分布相差較大,則解碼器的擬合效果很差,導致生成器只能生成模糊的圖像樣本.

        為了增加后驗分布假設的豐富性,變分推理流模型(Variational inference with flow)在流模型中引入變分推斷:將編碼器輸出的均值和方差用轉換函數映射到更復雜的分布,再由解碼器根據后驗分布重構樣本.這種方法使變分流映射得到的后驗分布更接近真實的后驗分布.

        5.4.1 歸一化流的變分推斷

        在VAE 變分推斷過程引入流模型結構的歸一化流變分推斷(Variational inference with normalizing flow,VINF)[126]是變分流模型的一種,對于編碼器得到的分布P(z),VINF 用歸一化流將該分布映射為P(zK),映射函數為:G(z)=z+uF(z),其中F(z)=F(wTz+b) 表示神經網絡,u,w,b為模型參數.令ψ(z)=F′(wTz+b),則轉換函數的雅可比行列式為:

        由此可以推導出的變分下界為:

        VINF 認為該轉換函數相當于對初始密度P(z)在垂直于超平面wTz+b=0 方向上進行的一系列收縮和擴展,因此稱之為平面流(Planar flow),這與real NVP 的命名方法相似,此外還提出了沿固定點徑向收放的徑向流(Radial flow).

        5.4.2 可逆自回歸流的變分推斷

        自回歸結構是用當前時刻以前的觀測序列預測當前時刻的函數值,將自回歸結構的流模型應用在VAE 變分推斷中的模型稱為可逆自回歸流(Inverse autogressive flow,IAF)[127].IAF 的可逆自回歸流可以分為兩個部分,第一個部分以數據x作為編碼器的輸入,輸出的三個變量分別為高斯分布的均值μ、方差σ2和輔助變量h′,然后重參數化得到后驗變量z,其結構如圖21.

        圖21 IAF 第一層結構Fig.21 The structure of the first layer in IAF

        第二部分的輸入為后驗變量z和輔助變量h′,通過自回歸網絡輸出μt和σt2,其結構如圖22 所示.

        圖22 IAF 其余層結構Fig.22 The structure of other layers in IAF

        因此IAF 的轉換結構可以表示為:

        該轉換函數的雅可比行列式容易計算:正向傳播的雅可比行列式是對角線為0 的下三角矩陣,逆向傳播的雅可比行列式是對角線為dzt/dzt?1=σtσt的下三角矩陣,由此可以得到自回歸流的近似后驗分布為:

        IAF 在第二部分的自回歸網絡中采用長短時記憶網絡(Long short term memory,LSTM),此時LSTM 的輸出為 [mt,st],然后根據如下公式計算后驗分布的均值和方差:

        掩碼自回歸流(Masked autoregressive flow,MAF)[128]是IAF 的衍生模型,MAF 將real NVP中的掩碼卷積層引入到IAF 中,使IAF 能夠更好地處理圖像樣本,然后提出了條件掩碼自回歸流CMAF將MAF 應用到監(jiān)督模型中.基于計算考慮,IAF 和MAF 有互補性:MAF 訓練快生成樣本慢,IFA 訓練慢生成樣本快.對于生成模型來說,訓練過程的計算量通常很大,因此在生成任務中MAF 更為適用.

        5.5 總結

        Flow 是一個非常精巧的模型,也是在理論上沒有誤差的模型.Flow 設計了一個可逆的編碼器,只要訓練出編碼器的參數就能直接得到完整的解碼器,完成生成模型的構造.為了保證編碼器的可逆性和計算上的可行性,目前Flow 類模型只能使用多個耦合層的堆疊來增加模型的擬合能力,但耦合層的擬合能力有限,這種方法很大程度上限制了模型的性能.Flow 目前的應用范圍集中在圖像生成領域中的人臉生成,最優(yōu)秀的模型為GLOW.

        相比于以GAN 為首的其他深度生成模型,Flow 參數量更多、運算量更大,且應用領域只局限于圖像生成,這些弊端限制了Flow 的進一步發(fā)展,作為無誤差的生成模型,潛力巨大的Flow 模型應該在未來的研究中尋找更高效的可逆編碼器結構或者擬合能力更強的耦合層,并擴展模型的應用范圍.

        6 自回歸網絡

        自回歸是統(tǒng)計學中處理時間序列的方法,用同一變量之前各個時刻的觀測值預測該變量當前時刻的觀測值.用條件概率表示可見層數據相鄰元素的關系,以條件概率乘積表示聯合概率分布的模型都可以稱為自回歸網絡.

        自回歸網絡中最有影響力的模型是神經自回歸分布估計,該模型起源于受限玻爾茲曼機RBM,將其中的權重共享和概率乘積準則與自回歸方法結合,該模型的前向傳播等同于假設隱藏變量服從平均場分布的RBM,且更靈活、更容易推理,模型性能也更好.

        6.1 自回歸網絡的基本形式

        自回歸網絡的基本形式有三種:線性自回歸網絡、神經自回歸網絡和NADE.線性自回歸網絡[129]是自回歸網絡中最簡單的形式,沒有隱藏單元、參數和特征共享;神經自回歸網絡[130]的提出是為了用條件概率分解似然函數,避免如DBN 等傳統(tǒng)概率圖模型中高維數據引發(fā)的維數災難.

        神經自回歸網絡是具有與線性自回歸相同結構的有向圖模型,該模型采用不同的條件分布參數,能夠根據實際需求增加容量,并允許近似任意聯合分布.另外神經自回歸網絡可以使用深度學習中常見的參數共享和特征共享等方法增強泛化能力.

        6.2 NADE

        6.2.1 NADE 模型結構

        觀測數據的有序排列起源于完全可見貝葉斯網絡(Fully visible Bayes nets,FVBN)[131],該算法最早定義了將高維數據的概率通過鏈式法則分解為條件概率乘積的方法.神經自回歸分布估計模型(Neural autoregressive distribution estimation,NADE)[6]根據這種方法進行建模:

        RBM 中輸出層到隱藏層的權重是隱藏層到輸入層權重的轉置,而NADE 可以利用上述公式獨立參數化各層之間的權重.另外,模型中引入了附加的參數共享,將條件分布進行參數化并寫成如下形式:

        其中,V ∈RD×H,b ∈RD,W ∈RH×D,c ∈RH均為模型參數.Vd,·,W·,d分別表示兩個矩陣的d行和d列,說明兩個矩陣和偏置c是共享參數,使NADE算法只需要 O(HD) 個數的參數,且可以降低過擬合的風險.此外該算法容易遞歸計算:

        從公式可以看出每次計算隱藏變量h和條件概率需要的計算量均為 O(h),因此計算P(x) 概率的計算量為 O(hd),共享參數的引入使得NADE 在正向傳播和均勻場推斷中執(zhí)行的計算大致相同.

        6.2.2 模型擴展

        單元修正.Bengio[132]指出hd的多次累加會使隱藏層單元越來越飽和,因此添加權重衰減參數以降低隱藏層單元的飽和現象:

        實驗中發(fā)現使用修正線性單元作為激活函數可以得到更好的生成效果.

        NADE-k.為了使NADE 模型能夠更好的推斷數據中的缺失值,Raiko 等[133]根據CD-k 算法的思想對可見層和隱藏層之間進行反復迭代,替代原始NADE 的單次迭代,實驗顯示這種方法能有效提升NADE 模型推斷缺失值的能力,該模型可以稱為NADE-k.

        并行NADE.盡管NADE 的訓練速度很快,但條件概率的有序性使得模型無法并行處理,生成樣本的速度很慢.Reed 等[134]為了打破像素之間的弱相關性,提出允許對某些像素組建模使之條件獨立,只保留高度相關的臨近像素,從而使NADE 可以并行地生成多個像素,大大加快抽樣速度,使隱藏變量和條件概率需要的計算量由 O(h) 銳減到 O(logh),但是這個舍棄像素之間弱相關性的方式必然會一定程度的影響模型的性能.

        6.2.3 深度NADE

        有多個隱藏層的深度NADE 模型在第一個隱藏層和輸出層的計算量和上述的單層模型相同,文中推導出了無序時損失函數的無偏估計,并在輸入層引入掩碼,使用卷積神經網絡處理高維數據.此外,NADE 能夠通過隨機抽樣處理任意順序的數據,將信息提供給指定用于觀測某些輸入的隱藏單元并預測缺失信息,這種形式可以使NADE 模型能高效推斷[135].

        深度NADE 模型有兩個問題.第一個問題是條件概率的值與數據的排列順序是相關,但模型接收到的數據排列是隨機的,想找到最合適的排列順序需要 O(D!)的計算量和存儲空間,而直接將單個NADE 堆疊,非線性的計算將導致計算量O(dh2l)過大,其中l(wèi)表示隱藏變量層數.另一個缺點是隨著隱藏層層數增加,其他隱藏層的計算量會大大增加達到 O(h2d2),巨大的計算量使得NADE 模型很難擴展到多層.實驗證明NADE 模型的效果比DBM好,但模型參數數量還是計算量都遠大于DBM.

        6.2.4 卷積NADE

        使用條件概率乘積表示聯合概率的NADE 只適用于低維數據,Uria 等[136]提出將CNN 與NADE結合的ConvNADE 模型,該模型首先將圖片輸入到CNN 網絡中進行特征提取,然后將特征輸入到NADE 中,此時NADE 輸入層的條件概率公式可以表示成:

        其中,hl表示卷積網絡的第l層輸出,vec(·) 表示行之間關系的函數,在CNN 和NADE 之間的層使用掩碼作為輔助通道可以有效提高模型性能.

        6.3 像素循環(huán)神經網絡

        像素循環(huán)神經網絡(Pixel recurrent neural network,PixelRNN)[137]將圖片的像素作為循環(huán)神經網絡的輸入,本質上是自回歸神經網絡在圖片處理上的應用,國外很多文獻把PixelRNN 模型稱為自回歸網絡.該模型利用深度自回歸網絡預測圖片的像素值,并提出三種不同結構的深度生成模型.

        PixelCNN.該模型直接利用卷積神經網絡(Convolutional neural network,CNN)處理像素,然后用特殊結構的掩碼避免生成樣本時出現缺少像素的問題.這種方法結構簡單、訓練速度快且穩(wěn)定,而且能夠直接以似然函數作為目標,使PixelCNN的似然指標遠超過其他的深度生成式模型,但缺點是生成的樣本不理想,原因可能是卷積核不夠大.

        Row LSTM.這種模型結構能捕捉到更多鄰近像素的信息,該模型對LSTM 的輸出進行行卷積,且三個門也由卷積產生,這種方法可以捕捉到更大范圍的像素,但問題是該模型的像素依賴區(qū)域是個漏斗形狀,明顯會遺漏很多重要的相關像素.

        Diagonal BiLSTM.為了捕捉到更多相關像素信息,作者提出了第三種模型.該模型通過重新構造像素位置的方法使LSTM 的輸入不存在遺漏像素,即雙向長短時記憶網絡BiLSTM.BiLSTM 利用特征映射的翻轉構造雙向的LSTM 網絡,消除映射時的像素盲點,比Row LSTM 更好的捕捉像素信息.

        這幾種模型的本質都是捕捉當前元素周圍的像素信息,用殘差結構優(yōu)化深度模型,序列化的產生像素樣本,但逐個像素生成的樣本生成方式導致模型生成速度很慢.

        6.4 掩碼自編碼器

        掩碼自編碼器(Masked autoencoder for distribution estimation,MADE)[138]是將自回歸的方法應用到自編碼器中,提高自編碼器估計密度的能力,實現方法主要是利用掩碼修改權重矩陣使自編碼器的輸出成為自回歸形式的條件概率.

        自編碼器通常表示能力較差,因此適合與表示能力強的自回歸模型結合.根據自回歸估計概率密度的方法,MADE 的輸出應為條件概率,當輸入數據為二值時,模型的目標函數是交叉熵損失函數.自編碼器的權重矩陣部分連接行的值為0,構造這種權重矩陣最容易的方法就是對權重矩陣進行掩碼處理,阻斷無關變量之間的連接通道,實現自編碼器和自回歸網絡的結合.

        MADE 的另一個優(yōu)勢是很容易擴展到深層網絡,只需要增加隱藏層的層數并添加對應的掩碼.作者給出了其他隱藏層掩碼的設計方法和針對掩碼的不可知連接方法的訓練算法.從實驗結果可以看出MADE 的生成能力與NADE 基本持平并在部分數據集上超過了NADE.

        6.5 應用和總結

        自回歸結構最大的優(yōu)勢是可以對序列數據進行很好的密度估計,可以與其他生成模型結合,如將自回歸結構和自編碼器結合用于生成段落和文本等序列樣本的自回歸自編碼器[128,139],和卷積網絡結合生成人類語音的生成模型WaveNet[140]等.

        自回歸網絡的缺點是表示目標函數的條件概率乘積無法并行運算,導致訓練和生成樣本所需要的計算量遠大于VAE 和GAN 等其他通用模型,這極大限制了自回歸生成模型的發(fā)展和應用,尋找合理的并行運算方式是破解這個難題的關鍵.

        7 其他深度生成模型

        7.1 矩陣匹配網絡

        最大平均差異(Maximum mean discrepancy,MMD)最早用于雙樣本檢測[141],從概率統(tǒng)計的角度比較兩個數據集的差異程度,并根據兩個數據集的可觀測數據判斷這兩個數據集的分布是否相同.基于兩個分布P(x)和Q(x)的樣本,通過尋找再生核希爾伯特空間上的連續(xù)函數F使得兩個分布的樣本在該函數上的函數值的均值差最小:

        當且僅當兩個函數有相同分布時函數值等于0.

        在生成式模型的損失函數中用MMD 作為衡量數據分布和模型分布差異的模型稱為生成式矩陣匹配網絡(Generative moment matching networks,GMMN)[142].兩個分布的最大平均差異的平方為:

        其中,K(·) 表示核函數.MMD 可以使模型無需MCMC抽樣直接用批次隨機梯度下降法訓練,GMMN 模型原來簡單,在理論上有可行的解釋,但在生成模型中單獨使用雙樣本檢驗方法的效果不如GAN 和VAE 等模型,且在訓練過程中的批次需要較大樣本數量,使該模型的計算量較大,所以通常將MMD方法應用到其他生成模型中.

        將MMD 引入到VAE 模型中:用貪婪算法預訓練自編碼器,然后固定自編碼的參數并在隱藏層加入先驗為均勻分布的GMMN,最小化數據樣本和通過GMMN 與VAE 解碼器共同生成的樣本的最大平均差異,該模型稱為GMMN+AE,實驗表明附加GMMN 的模型性能得到有效提升.

        Li 等[143]將MMD 引入到GAN 模型中,把GAN中的判別器替換成基于核的MMD 雙樣本檢驗,基本思想是通過引入基于對抗核的學習方法替代原來的高斯核,提高了GAN 的生成能力和計算效率.

        Ren 等[144]提出了基于條件最大平均差異CMMD的生成模型,在MMD 中引入條件分布來提高該模型在某些任務上的性能.該模型在保持原模型訓練過程簡單性的同時擴展了模型性能,提高模型的生產能力和判別能力.

        7.2 生成式隨機網絡

        生成隨機網絡(Generative stochastic network,GSN)[145]是降噪自編碼器的一般化形式,可以使用反向傳播快速訓練,主要用于缺省值預測和結構化輸出.GSN 可以看成是自編碼器和DBN 的結合[146],但該模型直接將生成過程參數化,利用參數化馬爾科夫過程代替直接參數化似然函數,將無監(jiān)督密度估計問題轉化成監(jiān)督問題的近似.GSN 在馬爾科夫鏈中加入隱藏變量,然后利用指定的一步馬爾科夫鏈重復迭代預測可見變量.

        對于來自分布P(x) 的樣本,降噪自編碼器構造分布P(x?|x)以得到帶有噪聲的樣本,利用自編碼器學習重構分布.GSN 繼承了這一思想,根據上述得到的分布和重構分布,利用貝葉斯公式可以求得P(x) :

        其中,z表示與x不相關的歸一化常數.重構分布比數據分布更容易學習,因此利用降噪自編碼器的方法可以更容易的求出P(x) 的分布.

        GSN 的計算過程類似于DBN 中的Gibbs 抽樣,但不需要進行預訓練算法.如果將降噪自編碼器的馬爾科夫鏈定義為兩個條件概率分布的參數化形式:,則其一般形式的GSN指定馬爾科夫鏈的一步:

        1)ht+1~P(h|ht,xt) 表示在給定先前的隱藏變量和可見變量時如何更新當前時刻的隱藏變量,相當于降噪自編碼器中的編碼器.

        2)xt+1~P(x|ht+1) 表示在給定潛在狀態(tài)的當前值后如何產生下一個可見變量,相當于降噪自編碼器中的解碼器.

        GSN 的目標函數是 logP(xk|hk),并使用重參數化技巧和回退訓練過程.回退訓練過程原本是加速降噪自編碼器訓練過程收斂速度的方法,該過程用多個隨機編碼解碼步驟組成以初始化訓練樣本,雖然從馬爾科夫平穩(wěn)分布的角度看多個步驟和單步驟是等價的,但實際應用中可以有效去除數據中的偽信息.回退訓練過程同樣可以改善GSN 的收斂性.

        用于無監(jiān)督聚類的GSN 可以在監(jiān)督學習中使用[147],通過在重構概率上添加監(jiān)督數據的標簽信息,提出了混合目標函數,將原本的生成目標函數和帶有標簽信息的判別目標函數混合在一起并用系數權衡兩者的權重,這種方法可以有效地在監(jiān)督數據中使用GSN 算法.

        8 未來趨勢及發(fā)展方向

        深度生成式模型試圖把概率論與數理統(tǒng)計的知識與強有力的深度神經網絡的表示學習能力相結合,在最近幾年取得了顯著進步,是當前主流的深度學習方向.本文對深度生成式模型的主要類型進行了梳理,給出了模型的構造過程、優(yōu)缺點以及模型存在的問題.深度生成式模型雖然大有潛力,但也存在很多挑戰(zhàn):

        1)評估指標與評估系統(tǒng).和判別式模型、基于矩陣與線性代數的模型、基于幾何的模型相比,深度生成模型存在訓練過程復雜、結構不易理解和使用、訓練速度慢等問題,在大規(guī)模數據上學習模型很困難,在不同的應用領域應該有相應的有效評估指標和實用的評估系統(tǒng)是急需研究的問題.

        2)不確定性.深度生成模型的動機和構造過程通常有嚴格的數學推導,但在實際過程往往限于求解的難度不得不進行近似和簡化,使模型偏離原來的目標.訓練好的模型難以在理論上分析透徹,只能借助實驗結果反向判斷調整方法,對生成模型的訓練造成很大困擾,是限制模型進一步發(fā)展的重要因素.因此了解模型的近似和簡化對模型性能、誤差和實際應用的影響是發(fā)展生產模型的重要方向

        3)樣本多樣性.如何使深度生成模型生成的圖像、文本和語音等樣本具有多樣性是一個值得研究的問題.度量多樣性最基本的標準是熵,因而把生成模型與最大互信息結合的Info-VAE 和Info-GAN[121]等模型既能限制生成模型的靈活性又能提升樣本的多樣性;把訓練樣本看作多個概率分布的噪聲混合后的隨機變量,提取不同噪聲的特征表示,得到不同層次的特征表示,在訓練目標函數里顯式地引入不同的歸納偏置.

        4)泛化能力.機器學習理論認為好的模型要具有更好的泛化能力.重新思考深度學習的泛化能力,從模型復雜性、偏差-方差權衡等觀點,理論上討論各種深度生成模型的學習機制,豐富模型的理論基礎,從而真正確立深度生成模型在深度學習中的顯著地位是值得思考的問題.

        5)更高效的模型結構和訓練方法.代表著最先進的一批生成模型如BigGAN、Glow 和VQ-VAE[60?61]等已經可以生成足夠清晰的圖片樣本,但這樣的大型模型背后是遠超常規(guī)的計算量,是所有大型生成模型的弊端:高昂的計算機硬件設備以及長時間的訓練讓很多人難以進入該領域的前沿研究,所以更加高效的模型結構和訓練方法是未來發(fā)展方向之一.

        6)應用領域擴展.深度生產模型的應用范圍相對較小,如何將其他深度生成模型的思想以及成果運用在常見場景中、如何加速與這些領域的融合,是未來進一步發(fā)展深度生成模型的關鍵方向,如智能家居物聯網和自動駕駛等領域都有待深度生成模型的使用.目前生成模型通常用于傳統(tǒng)機器學習和人工智能專屬領域,對于工業(yè)生產等其他領域的應用也有待進一步開發(fā).

        7)生成離散數據.如GAN 等深度生成模型的訓練依賴于參數的完全可微,因此無法直接生成如獨熱編碼等離散數據.這個問題限制了此類深度生成模型在NLP 領域的應用,目前已經有初步的解決辦法,例如使用Gumbel-softmax[148]、用連續(xù)函數近似[149]等,但效果有待進一步提升.因此研究深度生成模型生成離散數據是提高文本生成能力的關鍵問題,是值得深入研究的領域.

        8)度量方法.生成模型可以使用不同的度量方法,例如GAN 使用的是KL 散度和JS 散度,WGAN使用Wasserstein 距離替換了原來的散度,可以提升模型的生成能力和訓練穩(wěn)定性.因此通過理論分析,使用新的度量方法可能會進一步提高模型性能.

        9 總結

        近年來深度學習在多個領域取得了巨大成就而受到人們的廣泛關注,作為深度學習中的一個重要分支,深度生成模型在計算機視覺、密度估計、自然語言和語音識別、風格遷移、無監(jiān)督問題和半監(jiān)督學習等領域得到成功應用.本文對各類深度生成模型和相關的改進模型進行了詳細闡述,重點介紹各種改進模型的結構、算法,然后根據模型的不同特點對模型進行分類、梳理和總結.本文根據深度生成式模型處理似然函數的不同方法將模型分為三類:

        第一類方法是近似方法,其中包括采用抽樣方法近似計算似然函數的受限玻爾茲曼機以及以該模型為基礎模塊的深度置信網絡、深度玻爾茲曼機等,這類模型開啟了深度學習的潮流.盡管因為模型結構和計算方式等原因而逐漸被淡忘,但其完備的理論體系和各種算法對深度生成模型很大的啟發(fā)和影響;另一種模型直接優(yōu)化似然函數變分下界的變分自編碼器,通過編碼、重構和解碼三個過程完成了由隱變量到樣本的生成過程,最重要的貢獻是使用了變分下界并提出了重構方法,重要的改進模型包括重要性加權自編碼和深度輔助深度模型,這類模型是當前主流的深度生成模型之一.

        第二類方法的代表是生成對抗網絡.生成對抗網絡本質上是將難以求解的似然函數轉化成神經網絡,讓模型自己訓練出合適的參數來擬合這個似然函數,即模型中的判別器,避開了難以求解的似然函數,因為在多個領域中占有絕對優(yōu)勢而成為當前機器學習領域最熱門的研究方向之一.

        第三類方法是對似然函數進行適當變形的流模型和自回歸模型.Flow 利用可逆函數構造似然函數后直接優(yōu)化模型參數,屬于理論上沒有誤差的深度生成模型,但雅可比行列式的巨大計算量限制了生成能力的提升,可逆殘差網絡通過多種運算技巧消除了這種限制,卻又帶來了計算誤差且模型的生成能力較差;自回歸模型將目標函數分解為條件概率乘積,這類模型應用非常廣泛,包括神經自回歸密度估計、像素循環(huán)神經網絡、掩碼自編碼器以及WaveNet 等,主要缺點是條件概率乘積無法并行運算,導致訓練和生成樣本所需要的時間遠大于其他深度生成模型.

        從上述各類模型的總結可以看出深度生成模型的種類相當豐富且發(fā)展迅速,盡管各類模型都存在一定的問題和限制,但不能否認的是,隨著理論研究的進一步深入和應用領域的進一步擴展,深度生成模型必將成為未來人工智能領域的主流技術.

        符號說明

        a,b--------------神經元偏置

        c--------------常數

        D--------------散度

        E(·)--------------能量函數

        E(·)--------------數學期望

        F(·),G(·)--------------神經網絡構成的函數

        h--------------中間層神經元

        H(·)--------------熵函數

        K(·)--------------核函數

        L(·)--------------目標函數

        M(·)--------------空間上的任意函數

        N(·)--------------高斯分布

        P(·)--------------概率分布

        Q(·)--------------近似分布

        x--------------可見層神經元

        W--------------權重矩陣

        z--------------隱藏層神經元

        Z--------------配分函數

        ?--------------梯度

        Pg(x)--------------生成分布

        Pr(x)--------------數據分布

        α,λ--------------超參數

        θ,φ--------------模型參數

        μ--------------均值

        σ2--------------方差

        猜你喜歡
        深度結構模型
        一半模型
        《形而上學》△卷的結構和位置
        哲學評論(2021年2期)2021-08-22 01:53:34
        深度理解一元一次方程
        重要模型『一線三等角』
        重尾非線性自回歸模型自加權M-估計的漸近分布
        論結構
        中華詩詞(2019年7期)2019-11-25 01:43:04
        深度觀察
        深度觀察
        深度觀察
        論《日出》的結構
        欧美黑人又粗又大xxxx| 亚洲福利av一区二区| 女主播国产专区在线观看| 亚洲精品无码精品mv在线观看| 99久久伊人精品综合观看| 国产高中生在线| 国产美女高潮流白浆免费观看| 亚洲乱码中文字幕综合久久| 免费无码高潮流白浆视频| 性夜影院爽黄a爽在线看香蕉| 波多吉野一区二区三区av| 新久久国产色av免费看| 国产亚av手机在线观看| 久久亚洲精品无码gv| 国产 在线播放无码不卡| 国产综合开心激情五月| 内射合集对白在线| 欧美三级不卡视频| 人妻精品人妻一区二区三区四五| 少妇激情一区二区三区99| 无码福利写真片视频在线播放| 国产精品乱一区二区三区| 日韩一区二区中文字幕| 色噜噜亚洲男人的天堂| 91精品国产在热久久| 国自产精品手机在线观看视频| 一本大道香蕉最新在线视频| 99久久免费中文字幕精品| 亚洲综合av大全色婷婷| 伊人久久精品久久亚洲一区 | 亚洲国产综合一区二区| 国产一区二区三区小说 | 亚洲AV秘 片一区二区三| 日本顶级片一区二区三区| 亚洲av无码一区东京热久久| 亚洲av日韩av不卡在线观看| 精品无码国产一二三区麻豆| 亚洲女同同性一区二区| a级毛片免费完整视频| 亚洲欧洲精品成人久久曰影片| 亚洲一区二区三区免费av|