• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    深度生成模型綜述

    2022-02-17 10:46:58胡銘菲劉建偉
    自動(dòng)化學(xué)報(bào) 2022年1期
    關(guān)鍵詞:編碼器深度樣本

    胡銘菲 左 信 劉建偉

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

    1 深度生成模型概述

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

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

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

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

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

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

    2 受限玻爾茲曼機(jī)

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

    本節(jié)將詳細(xì)介紹訓(xùn)練過(guò)程中存在的問(wèn)題以及解決方法;然后,以該模型為基礎(chǔ)分別介紹DBN 和DBM 的結(jié)構(gòu)和相關(guān)算法;最后,總結(jié)近些年來(lái)重要的相關(guān)模型和算法改進(jìn).

    2.1 受限玻爾茲曼機(jī)

    RBM 面世之初因其結(jié)構(gòu)特點(diǎn)而命名為簧風(fēng)琴,曾是深度概率模型中的常見(jiàn)組件.RBM 是BM 的一種特殊拓?fù)浣Y(jié)構(gòu),能夠描述變量之間的高階相互作用,其模型結(jié)構(gòu)具有完備的物理解釋,訓(xùn)練算法有 嚴(yán)謹(jǐn)?shù)臄?shù)理統(tǒng)計(jì)基礎(chǔ)[7].

    2.1.1 模型結(jié)構(gòu)

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

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

    圖2 受限玻爾茲曼機(jī)Fig.2 Restricted Boltzmann machines

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

    RBM 的聯(lián)合概率分布由能量函數(shù)指定:

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

    二分圖結(jié)構(gòu)特有的性質(zhì)使RBM 的條件分布P(zj|x)和P(xi|z) 是可因式分解的,使條件分布的計(jì)算和抽樣都比BM 簡(jiǎn)單.從聯(lián)合分布中可以推導(dǎo)出條件分布:

    根據(jù)條件分布因式相乘的原理可將可見(jiàn)變量的聯(lián)合概率寫成單個(gè)神經(jīng)元分布的乘積:

    訓(xùn)練RBM 模型使用極大似然法,似然函數(shù)的對(duì)數(shù)如下表示:

    2.1.2 配分函數(shù)

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

    式(8) 中的前后兩項(xiàng)分別對(duì)應(yīng)訓(xùn)練的正相(Positive phase)和負(fù)相(Negative phase).大部分無(wú)向圖模型都有計(jì)算簡(jiǎn)單的正相和難以計(jì)算的負(fù)相,RBM 的隱藏單元在給定可見(jiàn)單元時(shí)是條件獨(dú)立的,屬于典型的負(fù)相,不容易計(jì)算.對(duì)負(fù)相的進(jìn)一步分析可以推導(dǎo)出如下結(jié)果:

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

    2.1.3 配分函數(shù)的估計(jì)方法

    計(jì)算RBM 的配分函數(shù)是訓(xùn)練模型的主要難點(diǎn),主要體現(xiàn)為計(jì)算困難、計(jì)算量大,主要計(jì)算方法可以分為三類,其中對(duì)比散度算法以計(jì)算量相對(duì)最小、精度尚可而成為RBM 的主要算法,三類算法具體如下:

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

    退火重要性抽樣.AIS 通過(guò)引入中間分布來(lái)縮小模型分布和數(shù)據(jù)分布之間的距離,從而估計(jì)高維空間上多峰分布的配分函數(shù).該方法先定義一個(gè)已知配分函數(shù)的簡(jiǎn)單模型,然后估計(jì)給定的簡(jiǎn)單模型和需要估計(jì)模型的配分函數(shù)之間的比值,例如在權(quán)重為0 的RBM 和學(xué)習(xí)到的權(quán)重之間插值一組權(quán)重不同的RBM,此時(shí)配分函數(shù)比值為:

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

    其中,Wk表示第k次抽樣時(shí)的重要性權(quán)重,Wk的值可從轉(zhuǎn)移算子乘積得到.

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

    得分匹配.得分表示對(duì)數(shù)概率密度關(guān)于模型參數(shù)的導(dǎo)數(shù),SM 算法用模型分布和數(shù)據(jù)分布的對(duì)數(shù)對(duì)輸入求導(dǎo)后的差的平方代替邊緣概率分布作為RBM的新目標(biāo)函數(shù):

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

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

    其條件概率可以表示為:

    然后用相同方法構(gòu)造其他類的聯(lián)合分布.NCE這種轉(zhuǎn)換的技巧促使了后來(lái)生成對(duì)抗網(wǎng)絡(luò)的誕生,但因?yàn)橛?xùn)練困難使該算法更適合隨機(jī)變量較少的問(wèn)題,在給定單詞上下文,計(jì)算單詞的條件概率分布的任務(wù)上獲得了很好的效果.

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

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

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

    實(shí)驗(yàn)顯示使用1 步Gibbs 抽樣的CD-1 算法就能得到不錯(cuò)的學(xué)習(xí)效果.盡管CD-1 算法的偏差較大,但可以用于淺層模型的預(yù)訓(xùn)練,再把淺層模型堆疊起來(lái)形成深度模型,這個(gè)優(yōu)勢(shì)也使得快速高效的CD 算法成為目前訓(xùn)練RBM 的標(biāo)準(zhǔn)算法,并用于DBN 等深層模型的預(yù)訓(xùn)練.

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

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

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

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

    2.1.4 RBM 模型研究進(jìn)展

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

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

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

    2.2 深度置信網(wǎng)絡(luò)

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

    2.2.1 DBN 模型結(jié)構(gòu)

    置信網(wǎng)絡(luò)一般是有向圖模型,而深度置信網(wǎng)絡(luò)的最低層具有無(wú)向連接邊,其他各層之間為有向連接邊.DBN 具有多個(gè)隱藏層,隱藏層神經(jīng)元通常只取0 和1,可見(jiàn)層單元取二值或?qū)崝?shù),除頂部?jī)蓪又g是無(wú)向連接外,其余層是有向邊連接的置信網(wǎng)絡(luò),箭頭指向可見(jiàn)層,因此DBN 屬于有向概率圖模型,其結(jié)構(gòu)如圖3 所示.

    圖3 深度置信網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 The structure of deep belief networks

    以DBN 的前兩個(gè)隱藏層h1和h2為例說(shuō)明模型結(jié)構(gòu).此時(shí)DBN 的聯(lián)合概率分布定義為

    其中,θ={W1,W2}表示模型參數(shù),P(x|h1;W1)表示有向的置信網(wǎng)絡(luò).P(h1,h2;W2)可以用訓(xùn)練RBM 的方法預(yù)訓(xùn)練,因?yàn)榭梢?jiàn)層和第一個(gè)隱藏層的聯(lián)合分布與RBM 的聯(lián)合概率分布形式相同:

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

    2.2.2 DBN 的目標(biāo)函數(shù)

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

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

    2.2.3 貪婪逐層預(yù)訓(xùn)練算法

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

    圖4 兩種貪戀逐層學(xué)習(xí)算法Fig.4 Two kinds of greedy layer-wise pre-training

    一種方法是從條件概率Q(h2|h1) 中抽樣獲得h2,另一種算法直接從條件概率Q(h2|x) 中抽樣.使用貪婪算法訓(xùn)練有向概率圖時(shí)通常使用第二種方法抽樣,因?yàn)樗趯?shí)際應(yīng)用中表現(xiàn)更好[24].

    2.2.4 亥姆霍茲?rùn)C(jī)

    DBN 的出現(xiàn)是深度模型的巨大進(jìn)步,但從數(shù)學(xué)的角度推導(dǎo)出變量之間的真實(shí)關(guān)系需要很大的計(jì)算量,降低了模型的訓(xùn)練速度.Dayan 等提出的亥姆霍茲?rùn)C(jī)(Helmholtz machine,HM)[25]可以看成是另一種連接形式的DBN.HM 的基本思想是保持DBN 有向性的同時(shí),在層之間增加單獨(dú)的權(quán)重,使最上層的隱變量可以和可見(jiàn)層進(jìn)行通信,能有效提高模型訓(xùn)練速度,HM 模型結(jié)構(gòu)如圖5 所示.

    圖5 亥姆霍茲?rùn)C(jī)Fig.5 Helmholtz Machine

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

    2.2.5 DBN 研究進(jìn)展

    DBN 模型的擴(kuò)展研究可以歸納為兩方面,一方面是研究如何高效處理大規(guī)模無(wú)標(biāo)簽數(shù)據(jù),更好地進(jìn)行無(wú)監(jiān)督學(xué)習(xí),另一方面是利用基本的反向傳播等方法微調(diào)參數(shù)使其獲得更好的性能,改動(dòng)模型結(jié)構(gòu)以適應(yīng)更多的應(yīng)用領(lǐng)域.

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

    用貪心算法訓(xùn)練的DBN 提取結(jié)構(gòu)復(fù)雜的無(wú)標(biāo)簽高維數(shù)據(jù)的特征,然后再用高斯核對(duì)特征進(jìn)行分類或回歸,這種方法的效果比使用原輸入的核方法好[29],利用反向傳播精調(diào)DBN 參數(shù)可以進(jìn)一步提高精度.Hinton 等[30]利用DBN 將高維數(shù)據(jù)轉(zhuǎn)為維數(shù)較低的數(shù)據(jù),用這種類似深度自編碼器的功能對(duì)數(shù)據(jù)降維,效果比主成分分析和奇異值分析更好.

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

    2.3 深度玻爾茲曼機(jī)

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

    2.3.1 模型結(jié)構(gòu)

    二值DBM 的神經(jīng)元只取0 和1,同樣容易擴(kuò)展到實(shí)值,層內(nèi)每個(gè)神經(jīng)元相互獨(dú)立,條件于相鄰層中的神經(jīng)元,包含三個(gè)隱藏層的DBM 結(jié)構(gòu)如圖6所示.

    圖6 深度玻爾茲曼機(jī)Fig.6 Deep Boltzmann machines

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

    為了簡(jiǎn)化表示,省略了偏置參數(shù)的能量函數(shù)形式如下:

    DBM 的二分結(jié)構(gòu)意味著可以用RBM 相同形式的條件獨(dú)立分布假設(shè),給定相鄰層神經(jīng)元值時(shí),層內(nèi)單元彼此條件獨(dú)立.這里給出DBM 中可見(jiàn)層和隱藏層h1的條件概率公式:

    2.3.2 DBM 的訓(xùn)練方法

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

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

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

    為了方便計(jì)算,MCMC 方法假設(shè)真實(shí)后驗(yàn)概率由隱藏層組成的全因式分解的均勻分布:

    為了更好地提取有效特征,減少精調(diào)時(shí)的計(jì)算負(fù)擔(dān),DBM 的預(yù)訓(xùn)練過(guò)程是必要的.DBM 預(yù)訓(xùn)練過(guò)程的使用方法與DBN 略有差異,經(jīng)過(guò)預(yù)訓(xùn)練的DBM 能夠生成MNIST 數(shù)據(jù)集的樣本,在視覺(jué)目標(biāo)識(shí)別等任務(wù)上也有不錯(cuò)的效果,但作為含有多個(gè)隱藏層的深度網(wǎng)絡(luò),頻繁使用蒙特卡洛抽樣會(huì)造成參數(shù)的不確定性和計(jì)算負(fù)擔(dān),因此在實(shí)際應(yīng)用中最多使用三層網(wǎng)絡(luò).

    2.3.3 DBM 研究進(jìn)展

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

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

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

    2.4 應(yīng)用、分析和小結(jié)

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

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

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

    從表1 可以看出學(xué)者們對(duì)此類模型的研究以RBM 為主,提出了很多種不同類型的訓(xùn)練方法、模型結(jié)構(gòu)和應(yīng)用領(lǐng)域,而針對(duì)DBN 和DBM 的后續(xù)研究相對(duì)較少,這也從側(cè)面說(shuō)明了RBM 對(duì)深度學(xué)習(xí)復(fù)興的貢獻(xiàn)以及在后來(lái)的發(fā)展中因訓(xùn)練效率低下、性能不佳等問(wèn)題導(dǎo)致多層RBM 逐漸失去人們的關(guān)注.

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

    3 變分自編碼器

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

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

    2) 構(gòu)造似然函數(shù)的變分下界.變分自編碼器的目標(biāo)函數(shù)是使輸入樣本的概率分布和重構(gòu)樣本的概率分布盡量接近,但輸入樣本的概率是未知的,因此引入建議分布,用變分下界將數(shù)據(jù)概率分布的數(shù)學(xué)期望轉(zhuǎn)化為建議分布的數(shù)學(xué)期望.

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

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

    3.1 VAE 的模型結(jié)構(gòu)和基本原理

    3.1.1 VAE 模型結(jié)構(gòu)

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

    由隱藏變量產(chǎn)生樣本的解碼過(guò)程就是我們需要的生成模型.編碼器和解碼器可以采用多種結(jié)構(gòu),現(xiàn)在通常使用RNN 或CNN 來(lái)處理序列樣本或圖片樣本.

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

    圖7 VAE 結(jié)構(gòu)圖Fig.7 The structure of VAE

    3.1.2 變分下界的求法

    VAE 的目標(biāo)函數(shù)是數(shù)據(jù)分布P(x) 和重構(gòu)的樣本分布P(x?) 之間距離的最小化,一般用KL 散度來(lái)衡量這兩個(gè)分布之間的距離:

    KL 散度的值是非負(fù)的,其值越大兩個(gè)分布之間的距離越遠(yuǎn),當(dāng)且僅當(dāng)值為0 時(shí)兩分布相等.但數(shù)據(jù)分布的未知性使得KL 散度無(wú)法直接計(jì)算,因此VAE 引入建議分布Q(x) (近似分布)和近似后驗(yàn)分布Q(z|x),用極大似然法優(yōu)化目標(biāo)函數(shù)可得到對(duì)數(shù)似然函數(shù)為:

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

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

    3.1.3 變分下界的解析解

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

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

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

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

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

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

    3.1.4 重參數(shù)化

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

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

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

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

    VAE 的結(jié)構(gòu)可以分為三個(gè)階段,如圖8 所示:

    圖8 VAE 訓(xùn)練流程Fig.8 The training process of VAE

    1) 第一個(gè)階段是編碼過(guò)程,樣本通過(guò)兩個(gè)神經(jīng)網(wǎng)絡(luò)分別獲得正態(tài)分布的均值和方差;

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

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

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

    3.2 幾種重要的VAE 結(jié)構(gòu)

    3.2.1 重要性加權(quán)自編碼

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

    此時(shí)需要在Q(z|x)中抽樣,當(dāng)抽取K個(gè)點(diǎn)時(shí)式(36)可以寫成:

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

    IWAE 以降低編碼器性能為代價(jià)提高生成模型的能力,生成能力明顯提高,后來(lái)的VAE 模型大多以IWAE 為基準(zhǔn),但如果需要同時(shí)訓(xùn)練出好的編碼器和生成器,IWAE 將不再適用.

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

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

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

    ADGM 的編碼過(guò)程由三個(gè)神經(jīng)網(wǎng)絡(luò)構(gòu)成,分別為:

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

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

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

    其中 Cat(·) 表示多項(xiàng)分布,C=x,a,y表示模型輸入.解碼過(guò)程有兩個(gè)神經(jīng)網(wǎng)絡(luò),分別為:

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

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

    處理無(wú)標(biāo)簽樣本時(shí),ADGM 的變分下界為:

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

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

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

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

    3.2.3 卷積變分自編碼器

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

    3.2.4 對(duì)抗自編碼器

    對(duì)抗自編碼器(Adversarial autoencoders,AAE)[55]是將對(duì)抗的思想應(yīng)用到VAE 訓(xùn)練過(guò)程的生成模型,兩者的主要區(qū)別是VAE 用先驗(yàn)分布和后驗(yàn)分布的KL 散度約束隱藏變量,AAE 則構(gòu)造了一個(gè)聚合先驗(yàn)分布(偽先驗(yàn)分布)來(lái)匹配可以是任意分布的真實(shí)后驗(yàn)分布,為了實(shí)現(xiàn)對(duì)兩個(gè)分布的匹配,AAE 在隱變量處附加一個(gè)對(duì)抗網(wǎng)絡(luò),其結(jié)構(gòu)如圖10 所示.

    圖10 對(duì)抗自編碼器Fig.10 Adversarial autoencoders

    AAE 的生成器采用和編碼器相同的神經(jīng)網(wǎng)絡(luò),用來(lái)偽造接近真實(shí)隱藏變量的分布,判別器負(fù)責(zé)區(qū)分真假分布中得到的樣本.

    生成器和判別器共同組成了附加的對(duì)抗網(wǎng)絡(luò),對(duì)抗網(wǎng)絡(luò)的目的是使生成器生成的任意復(fù)雜度的分布可以足夠接近真實(shí)隱藏變量,該部分的目標(biāo)函數(shù)與生成對(duì)抗網(wǎng)絡(luò)的目標(biāo)函數(shù)相同,在AAE 的整體損失函數(shù)中相當(dāng)于替換了VAE 中KL 散度的正則化項(xiàng).圖中展示的AAE 結(jié)構(gòu)可以用于無(wú)監(jiān)督學(xué)習(xí),以該結(jié)構(gòu)為基礎(chǔ),AAE 構(gòu)造出適用于監(jiān)督學(xué)習(xí)、半監(jiān)督學(xué)習(xí)和風(fēng)格遷移等三種不同的模型結(jié)構(gòu),并在各自的領(lǐng)域內(nèi)都獲得了不錯(cuò)的實(shí)驗(yàn)效果,大大增加了VAE 模型的應(yīng)用范圍.

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

    1)λ=1,α=0 時(shí)該目標(biāo)函數(shù)等價(jià)于VAE;

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

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

    3.2.5 階梯變分自編碼器

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

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

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

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

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

    3.2.6 向量量化變分自編碼器

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

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

    VQ-VAE 結(jié)構(gòu)簡(jiǎn)單,與適當(dāng)?shù)南闰?yàn)一起出現(xiàn)時(shí)能夠在圖像、視頻、音頻樣本上生成連續(xù)的高質(zhì)量樣本,證明了VAE 類模型可以應(yīng)用于無(wú)監(jiān)督對(duì)話中,為VAE 開(kāi)創(chuàng)了新的應(yīng)用范例.

    3.3 應(yīng)用、分析和小結(jié)

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

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

    作為當(dāng)前最常用的深度生成模型之一,VAE由于自身結(jié)構(gòu)的固有缺點(diǎn)使模型生成的圖片樣本帶有大量的噪聲,大部分VAE 結(jié)構(gòu)很難生成高清的圖片樣本,在圖像生成領(lǐng)域的效果不如基于GAN和FLOW 的生成模型,所以在圖像領(lǐng)域VAE 通常被當(dāng)作特征提取器.但在自然語(yǔ)言處理領(lǐng)域,VAE類模型生成的語(yǔ)言樣本比生成對(duì)抗網(wǎng)絡(luò)更合理,只需要簡(jiǎn)單的結(jié)構(gòu)就能生成出較流暢的語(yǔ)言,因此更應(yīng)該在自然語(yǔ)言處理領(lǐng)域?qū)ふ襐AE 的優(yōu)勢(shì)之處.

    VAE 通過(guò)編碼、重構(gòu)和解碼三個(gè)過(guò)程完成了由輸入樣本到隱藏變量的編碼過(guò)程和隱藏變量到新樣本的生成過(guò)程.表2 列舉了VAE 中有影響力的模型并簡(jiǎn)略介紹了各種模型的核心方法,從表中可以看出,VAE 模型的重要文獻(xiàn)中,大部分都是對(duì)變分下界的改動(dòng),所以學(xué)習(xí)VAE 模型的關(guān)鍵是充分理解變分下界的意義.

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

    4 生成對(duì)抗網(wǎng)絡(luò)

    生成對(duì)抗網(wǎng)絡(luò)(Generative adversarial nets,GANs)[3]是當(dāng)前機(jī)器學(xué)習(xí)領(lǐng)域最熱門的研究方向,在圖像生成領(lǐng)域占有絕對(duì)優(yōu)勢(shì).GAN 本質(zhì)上是將難以求解的似然函數(shù)轉(zhuǎn)化成神經(jīng)網(wǎng)絡(luò),讓模型自己訓(xùn)練出合適的參數(shù)擬合似然函數(shù),這個(gè)神經(jīng)網(wǎng)絡(luò)就是GAN 中的判別器.

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

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

    4.1 GAN 模型

    4.1.1 GAN 的基本原理

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

    圖11 GAN 模型結(jié)構(gòu)Fig.11 The structure of GANs

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

    4.1.2 訓(xùn)練方法

    GAN 的訓(xùn)練機(jī)制由生成器優(yōu)化和判別器優(yōu)化兩部分構(gòu)成,下面分析兩者的目標(biāo)函數(shù)和優(yōu)化過(guò)程.

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

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

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

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

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

    后來(lái)又提出了一個(gè)改進(jìn)的函數(shù)為:

    從該目標(biāo)函數(shù)可以看出,生成器的梯度更新信息來(lái)自判別器的結(jié)果而不是來(lái)自數(shù)據(jù)樣本,相當(dāng)于用神經(jīng)網(wǎng)絡(luò)擬合出數(shù)據(jù)分布和模型分布之間的距離,從根本上回避了似然函數(shù)的難點(diǎn),這一思想對(duì)深度學(xué)習(xí)領(lǐng)域產(chǎn)生了深遠(yuǎn)的影響,也是GAN 模型的優(yōu)勢(shì).

    固定生成器參數(shù),根據(jù)判別器目標(biāo)函數(shù)可得到:

    令式(46)對(duì)D(x) 的導(dǎo)數(shù)為0 可以得到判別器最優(yōu)解的表達(dá)式:

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

    4.1.3 GAN 存在的問(wèn)題

    GAN 模型剛提出時(shí)存在很多嚴(yán)重缺陷,效果也不突出,從模型結(jié)構(gòu)到穩(wěn)定性、收斂性等都處于探索階段,導(dǎo)致一段時(shí)間內(nèi)沒(méi)有展現(xiàn)出應(yīng)有的能力.GAN 模型的不足之處可以總結(jié)為以下幾點(diǎn):

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

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

    3) 目標(biāo)函數(shù)的形式導(dǎo)致模型在訓(xùn)練過(guò)程沒(méi)有任何可以指示訓(xùn)練進(jìn)度的指標(biāo).

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

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

    根據(jù)GAN 定義的判別器目標(biāo)函數(shù)的最優(yōu)解,可以將生成器等價(jià)為真實(shí)分布和生成分布的JS 散度,所以優(yōu)化生成器時(shí)相當(dāng)于最小化兩個(gè)分布之間的距離.但JS 散度的定義導(dǎo)致當(dāng)兩個(gè)分布之間沒(méi)有任何重合部分時(shí),JS 散度的值將固定是常數(shù)log 2,這就會(huì)產(chǎn)生梯度消失的現(xiàn)象.

    論文中指出,當(dāng)兩個(gè)分布的支撐集是高維空間中的低維流形時(shí),兩者之間沒(méi)有重疊部分的概率是1.如圖片樣本等高維數(shù)據(jù),其分布只是高維空間中的一個(gè)低維流形,兩個(gè)不同分布之間幾乎不存在重疊,導(dǎo)致生成器目標(biāo)函數(shù)的導(dǎo)數(shù)為0 從而出現(xiàn)梯度消失的現(xiàn)象.

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

    對(duì)式(45)進(jìn)行等價(jià)變換,得到的最終結(jié)果表示為:

    KL 散度的不對(duì)稱性使生成的樣本缺乏多樣性和準(zhǔn)確性,這種懲罰程度的巨大差別使生成器無(wú)限趨向于生成準(zhǔn)確樣本而不去生成多樣性的樣本,以免產(chǎn)生巨大的懲罰,所以生成器目標(biāo)函數(shù)中的KL散度項(xiàng)是造成模型模式崩潰的原因.

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

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

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

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

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

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

    4.2.2 WGAN 的判別器形式

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

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

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

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

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

    4.2.3 梯度懲罰

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

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

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

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

    4.2.4 譜歸一化生成對(duì)抗網(wǎng)絡(luò)

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

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

    4.3 GAN 框架結(jié)構(gòu)發(fā)展

    4.3.1 基于卷積層的結(jié)構(gòu)

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

    DCGAN 的結(jié)構(gòu)如圖12 所示.模型架構(gòu)最主要的特點(diǎn)是判別器和生成器采用卷積網(wǎng)絡(luò)和反卷積網(wǎng)絡(luò),各層均使用批歸一化.DCGAN 訓(xùn)練速度很快,內(nèi)存占用量小,是快速實(shí)驗(yàn)最常用的結(jié)構(gòu),缺點(diǎn)是生成器中的反卷積結(jié)構(gòu)存在固有的棋盤效應(yīng)(Checkerboard artifacts),具體表現(xiàn)為圖片放大之后能看到如象棋棋盤一樣的交錯(cuò)紋理,嚴(yán)重影響生成圖片的質(zhì)量,限制了DCGAN 結(jié)構(gòu)的重構(gòu)能力.

    基于卷積層的最新生成對(duì)抗網(wǎng)絡(luò)是針對(duì)單個(gè)自然圖像的SinGAN[80],該模型按照不同比例的下采樣將單個(gè)圖像樣本分割成多個(gè)不同尺度的子樣本,然后使用多個(gè)DCGAN 組成金字塔結(jié)構(gòu),各個(gè)DCGAN負(fù)責(zé)學(xué)習(xí)不同子樣本的數(shù)據(jù)概率分布,這種結(jié)構(gòu)使模型能夠生成給定圖像中相同視覺(jué)內(nèi)容的高質(zhì)量且具有任意大小和比例的新圖像.

    4.3.2 基于殘差網(wǎng)絡(luò)的結(jié)構(gòu)

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

    圖13 ResNet-GAN 結(jié)構(gòu)Fig.13 The structure of ResNet-GANs

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

    BigGAN 模型的缺陷是需要大量的標(biāo)注數(shù)據(jù)才能訓(xùn)練,在BigGAN 的判別器中增加一個(gè)額外的無(wú)監(jiān)督任務(wù)的模型S3GAN 能夠?yàn)闊o(wú)標(biāo)簽樣本添加標(biāo)簽,從而增加大量的訓(xùn)練數(shù)據(jù),使S3GAN 用10%的標(biāo)簽數(shù)據(jù)就能夠匹配BigGAN 生成的樣本質(zhì)量.

    4.3.3 監(jiān)督結(jié)構(gòu)和半監(jiān)督結(jié)構(gòu)

    為了將樣本與標(biāo)簽信息結(jié)合,條件生成對(duì)抗網(wǎng)絡(luò)[83](Condition GAN,CGAN)將標(biāo)簽信息作為附加信息輸入到生成器中,再與生成樣本一起輸入到判別器中:生成器同時(shí)接收噪音和標(biāo)簽信息,目的是讓生成的樣本能盡量符合標(biāo)簽信息;判別器輸入標(biāo)簽信息和真?zhèn)螛颖?同時(shí)進(jìn)行兩次判斷,一是判斷輸入樣本的真?zhèn)?二是該樣本與標(biāo)簽信息是否匹配,最后輸出樣本真?zhèn)魏蜆?biāo)簽信息預(yù)測(cè)值.

    另一種常用結(jié)構(gòu)是輔助分類器生成對(duì)抗網(wǎng)絡(luò)[84](Auxiliary classifier GAN,ACGAN),ACGAN 的生成器同CGAN 相同,但判別器只輸入真?zhèn)螛颖?輸出樣本真?zhèn)魏蜆?biāo)簽信息預(yù)測(cè)值,因此判別器的額外輸出需要設(shè)置關(guān)于標(biāo)簽信息的損失函數(shù).從實(shí)驗(yàn)的結(jié)果來(lái)看,兩種結(jié)構(gòu)處理監(jiān)督數(shù)據(jù)的性能相似,但ACGAN 的結(jié)構(gòu)更適合處理半監(jiān)督數(shù)據(jù).兩種網(wǎng)絡(luò)結(jié)構(gòu)如圖14 所示.

    圖14 CGAN 和ACGAN 結(jié)構(gòu)Fig.14 The structure of CGANs and ACGANs

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

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

    4.4 應(yīng)用、分析與總結(jié)

    4.4.1 應(yīng)用

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

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

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

    4.4.2 分析和小結(jié)

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

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

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

    在可預(yù)見(jiàn)的未來(lái),GAN 模型必將是圖像生成領(lǐng)域內(nèi)最具代表性、最成功的深度生成模型.很多與GAN 結(jié)合的生成式模型應(yīng)用在自然語(yǔ)言處理中,例如VAE 與GAN 的結(jié)合、利用強(qiáng)化學(xué)習(xí)的Seq-GAN[109]等.這些模型的提出不僅擴(kuò)展了GAN 的應(yīng)用領(lǐng)域,而且提高了GAN 理論上的完備程度.

    5 流模型

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

    流模型的基本思想是:真實(shí)數(shù)據(jù)分布一定可以由轉(zhuǎn)換函數(shù)映射到人為給定的簡(jiǎn)單分布,如果該轉(zhuǎn)換函數(shù)是可逆的且可求出該轉(zhuǎn)換函數(shù)的形式,則這個(gè)簡(jiǎn)單分布和轉(zhuǎn)換函數(shù)的逆函數(shù)就能夠構(gòu)成一個(gè)深度生成模型.可逆函數(shù)的性質(zhì)說(shuō)明Flow 模型是一個(gè)精確模型,有希望生成質(zhì)量足夠好的樣本.

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

    5.1 流模型框架

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

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

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

    2) 函數(shù)可逆,求逆過(guò)程的計(jì)算量盡量小.

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

    三角陣行列式的上三角或下三角區(qū)域元素的值為0 意味著每次轉(zhuǎn)換都只有一部分元素參與了映射,另一部分元素只進(jìn)行了恒等變換,這種簡(jiǎn)單變換產(chǎn)生的非線性較弱,需要多個(gè)簡(jiǎn)單變換的復(fù)合形式增強(qiáng)模型的擬合能力.根據(jù)鏈?zhǔn)椒▌t可得:

    流模型的轉(zhuǎn)換函數(shù)用神經(jīng)網(wǎng)絡(luò)表示,該神經(jīng)網(wǎng)絡(luò)相當(dāng)于一系列轉(zhuǎn)換函數(shù)作用效果的累積,這種簡(jiǎn)單變換的疊加過(guò)程如同流水一般積少成多,因此將這樣的過(guò)程稱為“流”,大部分流模型都以這種模型框架為基礎(chǔ).此時(shí)流模型的對(duì)數(shù)似然函數(shù)可以寫成:

    5.2 常規(guī)流

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

    5.2.1 NICE

    非線性獨(dú)立成分估計(jì)(Nonlinear independent Components estimation,NICE)[5]是第一個(gè)流模型,此后出現(xiàn)的流模型大部分都是以NICE 的結(jié)構(gòu)和理論為基礎(chǔ).除了流模型的基本框架外,NICE 提出了三個(gè)重要的模型結(jié)構(gòu):加性耦合層、維數(shù)混合和維數(shù)壓縮層.

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

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

    圖15 加性耦合層結(jié)構(gòu)Fig.15 The structure of aditive couping

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

    該雅可比行列式的值為1,根據(jù)鏈?zhǔn)椒▌t可以得到:

    這使得該項(xiàng)在目標(biāo)函數(shù)中的值為1,從而消除了雅可比行列式的計(jì)算量.該轉(zhuǎn)換函數(shù)的逆函數(shù)也很容易得到,其逆變換的形式如下:

    這種結(jié)構(gòu)的轉(zhuǎn)換函數(shù)即滿足可逆性的要求,且逆函數(shù)和雅可比行列式都容易求解,不需要額外的計(jì)算量,后來(lái)大部分的流模型都采用了這種結(jié)構(gòu).

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

    圖16 維數(shù)混合結(jié)構(gòu)Fig.16 The structure of hybrid dimensions

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

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

    5.2.2 Real NVP

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

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

    圖17 仿射耦合層結(jié)構(gòu)Fig.17 The structure of affine coupling layer

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

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

    該行列式的值為對(duì)角線元素乘積,為了保證可逆性需要約束雅可比行列式對(duì)角線各元素均大于0,因此Real NVP 直接用神經(jīng)網(wǎng)絡(luò)輸出 logs.該轉(zhuǎn)換函數(shù)的逆函數(shù)很容易表示為:

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

    圖18 隨機(jī)混合結(jié)構(gòu)Fig.18 The structure of random mixing

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

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

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

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

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

    多尺度結(jié)構(gòu)通過(guò)這種逐層轉(zhuǎn)換的方式,使數(shù)據(jù)的全部元素都可以在一個(gè)復(fù)合耦合層內(nèi)進(jìn)行轉(zhuǎn)換,保留了原有方法中雅可比行列式容易計(jì)算的特點(diǎn),減少模型復(fù)雜度和計(jì)算量的同時(shí)增加模型的生成能力.

    5.2.3 GLOW

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

    模型結(jié)構(gòu)修改.GLOW 以real NVP 模型為基礎(chǔ)構(gòu)造了性能更好的模型框架,并針對(duì)real NVP的不足進(jìn)行兩處修改:

    1) 仿射耦合層內(nèi)部的乘性耦合使得其計(jì)算量是加性耦合層的兩倍,但經(jīng)過(guò)實(shí)驗(yàn)證明仿射耦合層的性能提升很小,因此GLOW 訓(xùn)練高維樣本時(shí)為了減少計(jì)算量只保留加性耦合層.

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

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

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

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

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

    GLOW 使用LU 分解法計(jì)算旋轉(zhuǎn)矩陣W的雅克比行列式的值,幾乎沒(méi)有改變?cè)P偷挠?jì)算量,且減少了待優(yōu)化參數(shù)的數(shù)量.實(shí)驗(yàn)證明了可逆1×1卷積可以得到比隨機(jī)打亂機(jī)制更低的損失且具有很好的穩(wěn)定性.

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

    圖20 GLOW 的層結(jié)構(gòu)Fig.20 The structure of layers in GLOW

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

    5.3 可逆殘差網(wǎng)絡(luò)

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

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

    5.3.1 殘差塊的可逆性條件

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

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

    5.3.2 i-ResNet 的求解方法

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

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

    為了求解該式,i-ResNet 先后使用級(jí)數(shù)展開(kāi)、截?cái)嗪碗S機(jī)近似三種數(shù)學(xué)方法:首先用恒等式將雅可比行列式絕對(duì)值的對(duì)數(shù)轉(zhuǎn)化為求跡,并在使用級(jí)數(shù)展開(kāi)形式后在第n項(xiàng)截?cái)?然后使用隨機(jī)近似方法得到近似值.

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

    5.4 變分推理流

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

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

    5.4.1 歸一化流的變分推斷

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

    由此可以推導(dǎo)出的變分下界為:

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

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

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

    圖21 IAF 第一層結(jié)構(gòu)Fig.21 The structure of the first layer in IAF

    第二部分的輸入為后驗(yàn)變量z和輔助變量h′,通過(guò)自回歸網(wǎng)絡(luò)輸出μt和σt2,其結(jié)構(gòu)如圖22 所示.

    圖22 IAF 其余層結(jié)構(gòu)Fig.22 The structure of other layers in IAF

    因此IAF 的轉(zhuǎn)換結(jié)構(gòu)可以表示為:

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

    IAF 在第二部分的自回歸網(wǎng)絡(luò)中采用長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(Long short term memory,LSTM),此時(shí)LSTM 的輸出為 [mt,st],然后根據(jù)如下公式計(jì)算后驗(yàn)分布的均值和方差:

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

    5.5 總結(jié)

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

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

    6 自回歸網(wǎng)絡(luò)

    自回歸是統(tǒng)計(jì)學(xué)中處理時(shí)間序列的方法,用同一變量之前各個(gè)時(shí)刻的觀測(cè)值預(yù)測(cè)該變量當(dāng)前時(shí)刻的觀測(cè)值.用條件概率表示可見(jiàn)層數(shù)據(jù)相鄰元素的關(guān)系,以條件概率乘積表示聯(lián)合概率分布的模型都可以稱為自回歸網(wǎng)絡(luò).

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

    6.1 自回歸網(wǎng)絡(luò)的基本形式

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

    神經(jīng)自回歸網(wǎng)絡(luò)是具有與線性自回歸相同結(jié)構(gòu)的有向圖模型,該模型采用不同的條件分布參數(shù),能夠根據(jù)實(shí)際需求增加容量,并允許近似任意聯(lián)合分布.另外神經(jīng)自回歸網(wǎng)絡(luò)可以使用深度學(xué)習(xí)中常見(jiàn)的參數(shù)共享和特征共享等方法增強(qiáng)泛化能力.

    6.2 NADE

    6.2.1 NADE 模型結(jié)構(gòu)

    觀測(cè)數(shù)據(jù)的有序排列起源于完全可見(jiàn)貝葉斯網(wǎng)絡(luò)(Fully visible Bayes nets,FVBN)[131],該算法最早定義了將高維數(shù)據(jù)的概率通過(guò)鏈?zhǔn)椒▌t分解為條件概率乘積的方法.神經(jīng)自回歸分布估計(jì)模型(Neural autoregressive distribution estimation,NADE)[6]根據(jù)這種方法進(jìn)行建模:

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

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

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

    6.2.2 模型擴(kuò)展

    單元修正.Bengio[132]指出hd的多次累加會(huì)使隱藏層單元越來(lái)越飽和,因此添加權(quán)重衰減參數(shù)以降低隱藏層單元的飽和現(xiàn)象:

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

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

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

    6.2.3 深度NADE

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

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

    6.2.4 卷積NADE

    使用條件概率乘積表示聯(lián)合概率的NADE 只適用于低維數(shù)據(jù),Uria 等[136]提出將CNN 與NADE結(jié)合的ConvNADE 模型,該模型首先將圖片輸入到CNN 網(wǎng)絡(luò)中進(jìn)行特征提取,然后將特征輸入到NADE 中,此時(shí)NADE 輸入層的條件概率公式可以表示成:

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

    6.3 像素循環(huán)神經(jīng)網(wǎng)絡(luò)

    像素循環(huán)神經(jīng)網(wǎng)絡(luò)(Pixel recurrent neural network,PixelRNN)[137]將圖片的像素作為循環(huán)神經(jīng)網(wǎng)絡(luò)的輸入,本質(zhì)上是自回歸神經(jīng)網(wǎng)絡(luò)在圖片處理上的應(yīng)用,國(guó)外很多文獻(xiàn)把PixelRNN 模型稱為自回歸網(wǎng)絡(luò).該模型利用深度自回歸網(wǎng)絡(luò)預(yù)測(cè)圖片的像素值,并提出三種不同結(jié)構(gòu)的深度生成模型.

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

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

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

    這幾種模型的本質(zhì)都是捕捉當(dāng)前元素周圍的像素信息,用殘差結(jié)構(gòu)優(yōu)化深度模型,序列化的產(chǎn)生像素樣本,但逐個(gè)像素生成的樣本生成方式導(dǎo)致模型生成速度很慢.

    6.4 掩碼自編碼器

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

    自編碼器通常表示能力較差,因此適合與表示能力強(qiáng)的自回歸模型結(jié)合.根據(jù)自回歸估計(jì)概率密度的方法,MADE 的輸出應(yīng)為條件概率,當(dāng)輸入數(shù)據(jù)為二值時(shí),模型的目標(biāo)函數(shù)是交叉熵?fù)p失函數(shù).自編碼器的權(quán)重矩陣部分連接行的值為0,構(gòu)造這種權(quán)重矩陣最容易的方法就是對(duì)權(quán)重矩陣進(jìn)行掩碼處理,阻斷無(wú)關(guān)變量之間的連接通道,實(shí)現(xiàn)自編碼器和自回歸網(wǎng)絡(luò)的結(jié)合.

    MADE 的另一個(gè)優(yōu)勢(shì)是很容易擴(kuò)展到深層網(wǎng)絡(luò),只需要增加隱藏層的層數(shù)并添加對(duì)應(yīng)的掩碼.作者給出了其他隱藏層掩碼的設(shè)計(jì)方法和針對(duì)掩碼的不可知連接方法的訓(xùn)練算法.從實(shí)驗(yàn)結(jié)果可以看出MADE 的生成能力與NADE 基本持平并在部分?jǐn)?shù)據(jù)集上超過(guò)了NADE.

    6.5 應(yīng)用和總結(jié)

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

    自回歸網(wǎng)絡(luò)的缺點(diǎn)是表示目標(biāo)函數(shù)的條件概率乘積無(wú)法并行運(yùn)算,導(dǎo)致訓(xùn)練和生成樣本所需要的計(jì)算量遠(yuǎn)大于VAE 和GAN 等其他通用模型,這極大限制了自回歸生成模型的發(fā)展和應(yīng)用,尋找合理的并行運(yùn)算方式是破解這個(gè)難題的關(guān)鍵.

    7 其他深度生成模型

    7.1 矩陣匹配網(wǎng)絡(luò)

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

    當(dāng)且僅當(dāng)兩個(gè)函數(shù)有相同分布時(shí)函數(shù)值等于0.

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

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

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

    Li 等[143]將MMD 引入到GAN 模型中,把GAN中的判別器替換成基于核的MMD 雙樣本檢驗(yàn),基本思想是通過(guò)引入基于對(duì)抗核的學(xué)習(xí)方法替代原來(lái)的高斯核,提高了GAN 的生成能力和計(jì)算效率.

    Ren 等[144]提出了基于條件最大平均差異CMMD的生成模型,在MMD 中引入條件分布來(lái)提高該模型在某些任務(wù)上的性能.該模型在保持原模型訓(xùn)練過(guò)程簡(jiǎn)單性的同時(shí)擴(kuò)展了模型性能,提高模型的生產(chǎn)能力和判別能力.

    7.2 生成式隨機(jī)網(wǎng)絡(luò)

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

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

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

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

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

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

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

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

    8 未來(lái)趨勢(shì)及發(fā)展方向

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

    1)評(píng)估指標(biāo)與評(píng)估系統(tǒng).和判別式模型、基于矩陣與線性代數(shù)的模型、基于幾何的模型相比,深度生成模型存在訓(xùn)練過(guò)程復(fù)雜、結(jié)構(gòu)不易理解和使用、訓(xùn)練速度慢等問(wèn)題,在大規(guī)模數(shù)據(jù)上學(xué)習(xí)模型很困難,在不同的應(yīng)用領(lǐng)域應(yīng)該有相應(yīng)的有效評(píng)估指標(biāo)和實(shí)用的評(píng)估系統(tǒng)是急需研究的問(wèn)題.

    2)不確定性.深度生成模型的動(dòng)機(jī)和構(gòu)造過(guò)程通常有嚴(yán)格的數(shù)學(xué)推導(dǎo),但在實(shí)際過(guò)程往往限于求解的難度不得不進(jìn)行近似和簡(jiǎn)化,使模型偏離原來(lái)的目標(biāo).訓(xùn)練好的模型難以在理論上分析透徹,只能借助實(shí)驗(yàn)結(jié)果反向判斷調(diào)整方法,對(duì)生成模型的訓(xùn)練造成很大困擾,是限制模型進(jìn)一步發(fā)展的重要因素.因此了解模型的近似和簡(jiǎn)化對(duì)模型性能、誤差和實(shí)際應(yīng)用的影響是發(fā)展生產(chǎn)模型的重要方向

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

    4)泛化能力.機(jī)器學(xué)習(xí)理論認(rèn)為好的模型要具有更好的泛化能力.重新思考深度學(xué)習(xí)的泛化能力,從模型復(fù)雜性、偏差-方差權(quán)衡等觀點(diǎn),理論上討論各種深度生成模型的學(xué)習(xí)機(jī)制,豐富模型的理論基礎(chǔ),從而真正確立深度生成模型在深度學(xué)習(xí)中的顯著地位是值得思考的問(wèn)題.

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

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

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

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

    9 總結(jié)

    近年來(lái)深度學(xué)習(xí)在多個(gè)領(lǐng)域取得了巨大成就而受到人們的廣泛關(guān)注,作為深度學(xué)習(xí)中的一個(gè)重要分支,深度生成模型在計(jì)算機(jī)視覺(jué)、密度估計(jì)、自然語(yǔ)言和語(yǔ)音識(shí)別、風(fēng)格遷移、無(wú)監(jiān)督問(wèn)題和半監(jiān)督學(xué)習(xí)等領(lǐng)域得到成功應(yīng)用.本文對(duì)各類深度生成模型和相關(guān)的改進(jìn)模型進(jìn)行了詳細(xì)闡述,重點(diǎn)介紹各種改進(jìn)模型的結(jié)構(gòu)、算法,然后根據(jù)模型的不同特點(diǎn)對(duì)模型進(jìn)行分類、梳理和總結(jié).本文根據(jù)深度生成式模型處理似然函數(shù)的不同方法將模型分為三類:

    第一類方法是近似方法,其中包括采用抽樣方法近似計(jì)算似然函數(shù)的受限玻爾茲曼機(jī)以及以該模型為基礎(chǔ)模塊的深度置信網(wǎng)絡(luò)、深度玻爾茲曼機(jī)等,這類模型開(kāi)啟了深度學(xué)習(xí)的潮流.盡管因?yàn)槟P徒Y(jié)構(gòu)和計(jì)算方式等原因而逐漸被淡忘,但其完備的理論體系和各種算法對(duì)深度生成模型很大的啟發(fā)和影響;另一種模型直接優(yōu)化似然函數(shù)變分下界的變分自編碼器,通過(guò)編碼、重構(gòu)和解碼三個(gè)過(guò)程完成了由隱變量到樣本的生成過(guò)程,最重要的貢獻(xiàn)是使用了變分下界并提出了重構(gòu)方法,重要的改進(jìn)模型包括重要性加權(quán)自編碼和深度輔助深度模型,這類模型是當(dāng)前主流的深度生成模型之一.

    第二類方法的代表是生成對(duì)抗網(wǎng)絡(luò).生成對(duì)抗網(wǎng)絡(luò)本質(zhì)上是將難以求解的似然函數(shù)轉(zhuǎn)化成神經(jīng)網(wǎng)絡(luò),讓模型自己訓(xùn)練出合適的參數(shù)來(lái)擬合這個(gè)似然函數(shù),即模型中的判別器,避開(kāi)了難以求解的似然函數(shù),因?yàn)樵诙鄠€(gè)領(lǐng)域中占有絕對(duì)優(yōu)勢(shì)而成為當(dāng)前機(jī)器學(xué)習(xí)領(lǐng)域最熱門的研究方向之一.

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

    從上述各類模型的總結(jié)可以看出深度生成模型的種類相當(dāng)豐富且發(fā)展迅速,盡管各類模型都存在一定的問(wèn)題和限制,但不能否認(rèn)的是,隨著理論研究的進(jìn)一步深入和應(yīng)用領(lǐng)域的進(jìn)一步擴(kuò)展,深度生成模型必將成為未來(lái)人工智能領(lǐng)域的主流技術(shù).

    符號(hào)說(shuō)明

    a,b--------------神經(jīng)元偏置

    c--------------常數(shù)

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

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

    E(·)--------------數(shù)學(xué)期望

    F(·),G(·)--------------神經(jīng)網(wǎng)絡(luò)構(gòu)成的函數(shù)

    h--------------中間層神經(jīng)元

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

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

    L(·)--------------目標(biāo)函數(shù)

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

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

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

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

    x--------------可見(jiàn)層神經(jīng)元

    W--------------權(quán)重矩陣

    z--------------隱藏層神經(jīng)元

    Z--------------配分函數(shù)

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

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

    Pr(x)--------------數(shù)據(jù)分布

    α,λ--------------超參數(shù)

    θ,φ--------------模型參數(shù)

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

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

    猜你喜歡
    編碼器深度樣本
    用樣本估計(jì)總體復(fù)習(xí)點(diǎn)撥
    深度理解一元一次方程
    深度觀察
    深度觀察
    基于FPGA的同步機(jī)軸角編碼器
    深度觀察
    推動(dòng)醫(yī)改的“直銷樣本”
    隨機(jī)微分方程的樣本Lyapunov二次型估計(jì)
    基于PRBS檢測(cè)的8B/IOB編碼器設(shè)計(jì)
    村企共贏的樣本
    国产熟女午夜一区二区三区| 日韩中文字幕欧美一区二区 | 免费观看人在逋| 午夜精品国产一区二区电影| 美女视频免费永久观看网站| 欧美精品亚洲一区二区| 亚洲精品国产av成人精品| 真人做人爱边吃奶动态| 午夜久久久在线观看| 一级毛片 在线播放| 欧美日韩视频精品一区| 亚洲av国产av综合av卡| 久久中文字幕一级| 国产成人精品在线电影| 久久久欧美国产精品| 免费久久久久久久精品成人欧美视频| 成人手机av| 久久久国产精品麻豆| www.av在线官网国产| 精品人妻熟女毛片av久久网站| 啦啦啦 在线观看视频| 成人亚洲精品一区在线观看| 天堂中文最新版在线下载| 麻豆国产av国片精品| svipshipincom国产片| 午夜免费鲁丝| 亚洲国产最新在线播放| 热re99久久精品国产66热6| 99久久人妻综合| videos熟女内射| 日本91视频免费播放| 久久国产精品男人的天堂亚洲| 成年动漫av网址| 国产爽快片一区二区三区| 咕卡用的链子| 一边摸一边抽搐一进一出视频| 99热全是精品| 99久久人妻综合| 亚洲国产精品999| 国产成人一区二区在线| 国产亚洲欧美在线一区二区| 久久久亚洲精品成人影院| 操美女的视频在线观看| 欧美国产精品一级二级三级| 一区二区三区四区激情视频| 老司机深夜福利视频在线观看 | 永久免费av网站大全| 一区二区三区精品91| av又黄又爽大尺度在线免费看| 免费一级毛片在线播放高清视频 | 国产亚洲av片在线观看秒播厂| 在线观看一区二区三区激情| 精品一区二区三卡| 久久亚洲精品不卡| www.999成人在线观看| 亚洲人成77777在线视频| 久久久久久久久久久久大奶| 免费人妻精品一区二区三区视频| 男人操女人黄网站| 国产男女内射视频| 国产成人免费无遮挡视频| 午夜91福利影院| a级毛片黄视频| 九色亚洲精品在线播放| 色婷婷久久久亚洲欧美| 午夜激情av网站| 麻豆乱淫一区二区| 99热全是精品| 亚洲五月色婷婷综合| 亚洲精品成人av观看孕妇| 国产精品99久久99久久久不卡| 天天躁日日躁夜夜躁夜夜| av国产久精品久网站免费入址| 91精品伊人久久大香线蕉| 中文字幕av电影在线播放| 亚洲av片天天在线观看| 不卡av一区二区三区| 亚洲精品在线美女| 丝袜喷水一区| 性高湖久久久久久久久免费观看| 欧美日韩成人在线一区二区| 自拍欧美九色日韩亚洲蝌蚪91| 久久久久久久精品精品| 国产一区二区三区av在线| 欧美激情高清一区二区三区| 一本一本久久a久久精品综合妖精| 麻豆乱淫一区二区| 亚洲欧美一区二区三区国产| 亚洲精品久久午夜乱码| 日日摸夜夜添夜夜爱| 免费在线观看视频国产中文字幕亚洲 | 欧美人与善性xxx| 丁香六月天网| 成人免费观看视频高清| 精品免费久久久久久久清纯 | 婷婷色综合大香蕉| 国产黄频视频在线观看| 久久99精品国语久久久| 国产精品国产三级专区第一集| 男女边摸边吃奶| 欧美亚洲 丝袜 人妻 在线| 波多野结衣一区麻豆| 十八禁人妻一区二区| 十八禁人妻一区二区| 国产极品粉嫩免费观看在线| 国产欧美日韩综合在线一区二区| 中文字幕人妻熟女乱码| 日韩一卡2卡3卡4卡2021年| 大码成人一级视频| 香蕉国产在线看| e午夜精品久久久久久久| 精品熟女少妇八av免费久了| 亚洲国产av影院在线观看| 激情五月婷婷亚洲| 无限看片的www在线观看| 午夜精品国产一区二区电影| 91精品三级在线观看| 欧美精品人与动牲交sv欧美| 操美女的视频在线观看| 亚洲色图综合在线观看| 亚洲三区欧美一区| 久久狼人影院| 人体艺术视频欧美日本| av网站免费在线观看视频| 中文欧美无线码| 十分钟在线观看高清视频www| 丰满迷人的少妇在线观看| 又紧又爽又黄一区二区| 日本欧美视频一区| 人人妻人人爽人人添夜夜欢视频| 女人久久www免费人成看片| 男女边摸边吃奶| 一区二区三区精品91| 男女边摸边吃奶| 日韩一本色道免费dvd| 母亲3免费完整高清在线观看| 在线看a的网站| 最近最新中文字幕大全免费视频 | 女性被躁到高潮视频| 国产亚洲av片在线观看秒播厂| 91精品三级在线观看| 亚洲欧美精品自产自拍| 欧美日韩视频精品一区| 亚洲成国产人片在线观看| 啦啦啦视频在线资源免费观看| 日韩免费高清中文字幕av| 老司机在亚洲福利影院| 999久久久国产精品视频| 日本黄色日本黄色录像| 后天国语完整版免费观看| 亚洲精品乱久久久久久| 欧美大码av| 曰老女人黄片| 久久精品国产a三级三级三级| av欧美777| 国产免费福利视频在线观看| 又大又黄又爽视频免费| 色视频在线一区二区三区| 手机成人av网站| 国产亚洲精品第一综合不卡| 十八禁网站网址无遮挡| 久久毛片免费看一区二区三区| 老司机影院毛片| 国产黄色免费在线视频| 精品久久久久久电影网| 精品一区二区三区av网在线观看 | 青春草视频在线免费观看| 久久鲁丝午夜福利片| 国产精品久久久久久人妻精品电影 | av在线播放精品| 一二三四在线观看免费中文在| 久久人人爽人人片av| 丝袜喷水一区| 黄频高清免费视频| 日韩一本色道免费dvd| 亚洲精品国产一区二区精华液| 亚洲精品国产色婷婷电影| 大片免费播放器 马上看| 欧美日韩精品网址| 天天躁狠狠躁夜夜躁狠狠躁| 成人免费观看视频高清| 欧美日韩一级在线毛片| 国产高清videossex| 国产视频首页在线观看| 在线观看免费高清a一片| 亚洲精品日本国产第一区| 久久久久久久大尺度免费视频| 国产又色又爽无遮挡免| 欧美xxⅹ黑人| 少妇人妻久久综合中文| 欧美精品av麻豆av| 99国产精品一区二区三区| 在现免费观看毛片| 亚洲伊人色综图| 波野结衣二区三区在线| 亚洲中文av在线| 伊人亚洲综合成人网| 亚洲免费av在线视频| 啦啦啦中文免费视频观看日本| 久久久久国产精品人妻一区二区| av在线老鸭窝| 视频区欧美日本亚洲| 人人妻人人澡人人爽人人夜夜| 19禁男女啪啪无遮挡网站| 黄片小视频在线播放| 中文字幕另类日韩欧美亚洲嫩草| 日韩熟女老妇一区二区性免费视频| 亚洲精品自拍成人| 男女免费视频国产| 在线观看免费午夜福利视频| 在线观看免费日韩欧美大片| 亚洲国产欧美一区二区综合| 久久这里只有精品19| 久久久国产一区二区| 一本久久精品| 亚洲精品国产av蜜桃| 在线精品无人区一区二区三| 老鸭窝网址在线观看| 国产97色在线日韩免费| 美女福利国产在线| 999久久久国产精品视频| 午夜免费男女啪啪视频观看| 免费女性裸体啪啪无遮挡网站| 国产成人一区二区三区免费视频网站 | 日韩人妻精品一区2区三区| 国产成人一区二区三区免费视频网站 | 国产一区二区 视频在线| 午夜两性在线视频| 男女无遮挡免费网站观看| 满18在线观看网站| e午夜精品久久久久久久| 黄色片一级片一级黄色片| 免费在线观看黄色视频的| 日日爽夜夜爽网站| 亚洲av综合色区一区| 国产在线视频一区二区| 久久这里只有精品19| 777久久人妻少妇嫩草av网站| 久久亚洲国产成人精品v| 男人操女人黄网站| 女人精品久久久久毛片| 国产国语露脸激情在线看| 可以免费在线观看a视频的电影网站| 亚洲精品日韩在线中文字幕| 午夜免费鲁丝| 日本91视频免费播放| 国产成人影院久久av| 丁香六月欧美| 日本91视频免费播放| 精品国产一区二区三区久久久樱花| 少妇人妻久久综合中文| 国产高清不卡午夜福利| 欧美97在线视频| 波野结衣二区三区在线| 在线观看免费午夜福利视频| 久久ye,这里只有精品| 99国产精品99久久久久| 久久国产精品影院| 国产深夜福利视频在线观看| 免费黄频网站在线观看国产| 久久久欧美国产精品| 夫妻性生交免费视频一级片| 天天躁夜夜躁狠狠久久av| 别揉我奶头~嗯~啊~动态视频 | 亚洲一区二区三区欧美精品| 少妇的丰满在线观看| 亚洲 欧美一区二区三区| 国产日韩欧美视频二区| 搡老岳熟女国产| 丝袜美腿诱惑在线| 亚洲av男天堂| 啦啦啦视频在线资源免费观看| 亚洲欧美中文字幕日韩二区| 极品少妇高潮喷水抽搐| 十八禁网站网址无遮挡| 一区在线观看完整版| 啦啦啦在线免费观看视频4| 久久久久久人人人人人| 性高湖久久久久久久久免费观看| 国产极品粉嫩免费观看在线| 国产1区2区3区精品| 18禁观看日本| 国产精品.久久久| 国产精品秋霞免费鲁丝片| 色播在线永久视频| 久热爱精品视频在线9| 日韩 欧美 亚洲 中文字幕| 久久精品人人爽人人爽视色| 久久天躁狠狠躁夜夜2o2o | 午夜两性在线视频| 国产91精品成人一区二区三区 | 国产成人精品久久二区二区免费| 黄色 视频免费看| 男女床上黄色一级片免费看| 日本色播在线视频| www.熟女人妻精品国产| 国产视频一区二区在线看| 欧美老熟妇乱子伦牲交| 国产精品成人在线| 久久ye,这里只有精品| 亚洲三区欧美一区| 99re6热这里在线精品视频| 一区在线观看完整版| 日日摸夜夜添夜夜爱| 国产深夜福利视频在线观看| 欧美黑人欧美精品刺激| 亚洲成色77777| 亚洲伊人久久精品综合| 美女扒开内裤让男人捅视频| 日日摸夜夜添夜夜爱| 欧美人与性动交α欧美软件| 性色av一级| 97在线人人人人妻| 免费看不卡的av| 夫妻性生交免费视频一级片| 一级,二级,三级黄色视频| 国产成人91sexporn| 国产精品免费大片| 久久 成人 亚洲| 女性被躁到高潮视频| 欧美人与性动交α欧美软件| av在线老鸭窝| 99精国产麻豆久久婷婷| 国产成人欧美在线观看 | 丁香六月欧美| 韩国精品一区二区三区| 久久人妻福利社区极品人妻图片 | 精品亚洲成国产av| 人成视频在线观看免费观看| 欧美国产精品一级二级三级| 国产日韩欧美视频二区| 在线天堂中文资源库| 久久九九热精品免费| 亚洲 欧美一区二区三区| 巨乳人妻的诱惑在线观看| 久久性视频一级片| 国产日韩一区二区三区精品不卡| 久热爱精品视频在线9| 国产xxxxx性猛交| 国产成人精品久久久久久| 一本—道久久a久久精品蜜桃钙片| 久久青草综合色| 欧美日韩精品网址| 久久久国产欧美日韩av| 夫妻性生交免费视频一级片| 99热国产这里只有精品6| 亚洲情色 制服丝袜| 又紧又爽又黄一区二区| 久热这里只有精品99| 交换朋友夫妻互换小说| 爱豆传媒免费全集在线观看| 天天躁日日躁夜夜躁夜夜| 精品亚洲成a人片在线观看| 成人亚洲精品一区在线观看| 亚洲国产av影院在线观看| 亚洲成人手机| av天堂在线播放| 久久人妻熟女aⅴ| 可以免费在线观看a视频的电影网站| 又紧又爽又黄一区二区| 尾随美女入室| 久久天躁狠狠躁夜夜2o2o | 韩国高清视频一区二区三区| 亚洲男人天堂网一区| 免费在线观看黄色视频的| 色播在线永久视频| 精品视频人人做人人爽| 嫁个100分男人电影在线观看 | 国产不卡av网站在线观看| 最黄视频免费看| 精品久久久精品久久久| 在线观看一区二区三区激情| 高清黄色对白视频在线免费看| 国产精品三级大全| 9热在线视频观看99| 人人妻人人爽人人添夜夜欢视频| 亚洲一卡2卡3卡4卡5卡精品中文| 咕卡用的链子| avwww免费| 亚洲人成电影免费在线| 亚洲国产欧美网| 亚洲精品一区蜜桃| 国产女主播在线喷水免费视频网站| 精品一区在线观看国产| 飞空精品影院首页| 交换朋友夫妻互换小说| 天堂8中文在线网| 亚洲成人免费av在线播放| 亚洲一码二码三码区别大吗| 国产日韩一区二区三区精品不卡| 亚洲av在线观看美女高潮| 欧美精品一区二区大全| 高清不卡的av网站| 国产精品久久久av美女十八| 一区二区三区精品91| 一级毛片我不卡| 蜜桃在线观看..| 老司机午夜十八禁免费视频| a 毛片基地| 女性生殖器流出的白浆| 国产激情久久老熟女| 国产深夜福利视频在线观看| 汤姆久久久久久久影院中文字幕| 高清欧美精品videossex| 在线天堂中文资源库| 高清av免费在线| 亚洲少妇的诱惑av| 免费在线观看黄色视频的| 另类精品久久| 91国产中文字幕| 一区二区三区激情视频| 亚洲一码二码三码区别大吗| 一本久久精品| 欧美日韩综合久久久久久| 少妇猛男粗大的猛烈进出视频| 国产欧美日韩精品亚洲av| 亚洲国产精品一区三区| 国产欧美日韩一区二区三 | 汤姆久久久久久久影院中文字幕| 99国产精品一区二区三区| 美女脱内裤让男人舔精品视频| 丁香六月欧美| 男女床上黄色一级片免费看| 亚洲欧洲日产国产| 无遮挡黄片免费观看| 免费在线观看黄色视频的| 亚洲色图综合在线观看| 欧美成人精品欧美一级黄| 最近最新中文字幕大全免费视频 | av线在线观看网站| 国产免费现黄频在线看| 一区二区av电影网| 久热爱精品视频在线9| 久热这里只有精品99| 精品熟女少妇八av免费久了| 好男人视频免费观看在线| av线在线观看网站| 国产成人精品无人区| 男女边吃奶边做爰视频| 精品亚洲成国产av| 欧美人与性动交α欧美精品济南到| 一二三四在线观看免费中文在| 国产男女超爽视频在线观看| 亚洲欧美清纯卡通| 男人舔女人的私密视频| a级毛片在线看网站| 亚洲av片天天在线观看| 国产成人免费无遮挡视频| 伊人亚洲综合成人网| 啦啦啦中文免费视频观看日本| 亚洲国产毛片av蜜桃av| 亚洲天堂av无毛| 国产精品一区二区精品视频观看| 一本一本久久a久久精品综合妖精| 久久久久国产一级毛片高清牌| 天天躁夜夜躁狠狠躁躁| 汤姆久久久久久久影院中文字幕| 一区二区三区乱码不卡18| 亚洲,欧美,日韩| 国产亚洲午夜精品一区二区久久| 人人妻,人人澡人人爽秒播 | 精品国产乱码久久久久久小说| 午夜91福利影院| 尾随美女入室| 精品欧美一区二区三区在线| 少妇粗大呻吟视频| 交换朋友夫妻互换小说| 啦啦啦在线免费观看视频4| 新久久久久国产一级毛片| 欧美精品一区二区免费开放| 久久精品亚洲熟妇少妇任你| 看十八女毛片水多多多| 久久久精品94久久精品| 色播在线永久视频| 国产一卡二卡三卡精品| 777米奇影视久久| 亚洲av成人不卡在线观看播放网 | 亚洲成色77777| xxxhd国产人妻xxx| 国产精品国产av在线观看| 大码成人一级视频| 丝袜喷水一区| 视频区图区小说| 性色av一级| 日韩av在线免费看完整版不卡| 日韩免费高清中文字幕av| 国产三级黄色录像| 丰满迷人的少妇在线观看| avwww免费| 中文字幕色久视频| 精品亚洲乱码少妇综合久久| 最黄视频免费看| 丰满饥渴人妻一区二区三| av网站免费在线观看视频| 2021少妇久久久久久久久久久| 国产成人精品在线电影| 日韩av免费高清视频| 999精品在线视频| 免费人妻精品一区二区三区视频| 精品卡一卡二卡四卡免费| 成年动漫av网址| 亚洲国产欧美在线一区| 蜜桃国产av成人99| 久久人妻熟女aⅴ| 国语对白做爰xxxⅹ性视频网站| 国产欧美日韩一区二区三 | 黄片小视频在线播放| 亚洲国产av新网站| 国产亚洲av高清不卡| 大陆偷拍与自拍| 中文字幕av电影在线播放| 久久天堂一区二区三区四区| 日韩av免费高清视频| 久久久国产欧美日韩av| 日韩制服骚丝袜av| 亚洲图色成人| 欧美日韩一级在线毛片| 晚上一个人看的免费电影| 久久九九热精品免费| 国产亚洲av高清不卡| 天天躁夜夜躁狠狠久久av| a级毛片黄视频| 国产伦人伦偷精品视频| 国产成人精品久久二区二区免费| 国产一区二区激情短视频 | 国产亚洲午夜精品一区二区久久| 国产在线观看jvid| av片东京热男人的天堂| 91字幕亚洲| 日韩一卡2卡3卡4卡2021年| 亚洲精品第二区| 日韩av在线免费看完整版不卡| 五月天丁香电影| 日本黄色日本黄色录像| 久久久久视频综合| 自线自在国产av| 只有这里有精品99| 丰满少妇做爰视频| 国产一卡二卡三卡精品| 精品欧美一区二区三区在线| 国产在线一区二区三区精| 国产熟女午夜一区二区三区| 亚洲欧美激情在线| 亚洲av欧美aⅴ国产| 午夜福利影视在线免费观看| 国产三级黄色录像| 青青草视频在线视频观看| 亚洲人成网站在线观看播放| 中文精品一卡2卡3卡4更新| 十八禁高潮呻吟视频| 国产成人免费观看mmmm| 精品人妻1区二区| 亚洲成国产人片在线观看| 精品一区二区三卡| 又粗又硬又长又爽又黄的视频| 久久久国产一区二区| 国产在线一区二区三区精| 日韩伦理黄色片| 久久国产亚洲av麻豆专区| av天堂在线播放| 国产国语露脸激情在线看| 国产高清视频在线播放一区 | 大型av网站在线播放| 夜夜骑夜夜射夜夜干| 久久女婷五月综合色啪小说| 亚洲色图综合在线观看| 一二三四社区在线视频社区8| 高潮久久久久久久久久久不卡| 亚洲成av片中文字幕在线观看| 久久99热这里只频精品6学生| 亚洲男人天堂网一区| 午夜免费鲁丝| 国产亚洲欧美在线一区二区| 美国免费a级毛片| 欧美精品一区二区大全| 日韩一区二区三区影片| 国产精品成人在线| 亚洲国产欧美日韩在线播放| av福利片在线| av线在线观看网站| 18禁裸乳无遮挡动漫免费视频| 天天躁狠狠躁夜夜躁狠狠躁| 精品欧美一区二区三区在线| 国产淫语在线视频| 男女国产视频网站| 尾随美女入室| 国精品久久久久久国模美| videosex国产| 亚洲中文日韩欧美视频| 久久女婷五月综合色啪小说| 国产成人a∨麻豆精品| 色94色欧美一区二区| 亚洲av片天天在线观看| 精品久久久久久久毛片微露脸 | 色网站视频免费| 亚洲国产最新在线播放| 国产亚洲精品久久久久5区| 欧美国产精品va在线观看不卡| 满18在线观看网站| 欧美精品亚洲一区二区| 这个男人来自地球电影免费观看| 国产精品久久久久久精品古装| 精品熟女少妇八av免费久了| videos熟女内射| 欧美日韩亚洲国产一区二区在线观看 | 日韩av免费高清视频| 两个人免费观看高清视频| 在线观看国产h片| 亚洲国产日韩一区二区| 久久国产亚洲av麻豆专区| 久久中文字幕一级| 狂野欧美激情性bbbbbb| 免费人妻精品一区二区三区视频| 悠悠久久av| 色婷婷av一区二区三区视频|