王晟全,陳濟(jì)穎,王奕翔,李 昂,4,李 鑫
(1.南京理工大學(xué)紫金學(xué)院,江蘇 南京 210023;2.中國(guó)石油大學(xué)(華東) 儲(chǔ)運(yùn)與建筑工程學(xué)院,山東 青島 266580;3.廣西大學(xué),廣西 南寧 530003;4.南京郵電大學(xué) 通信學(xué)院,江蘇 南京 210003)
無監(jiān)督網(wǎng)絡(luò)是比較火的一個(gè)話題,因?yàn)樗鼘C(jī)器學(xué)習(xí)中的無監(jiān)督學(xué)習(xí)領(lǐng)域帶入了新的高度,其中的生成式對(duì)抗網(wǎng)絡(luò)是由康奈爾大學(xué)的Goodfellow等人提出。對(duì)于它的研究,科學(xué)家們?cè)絹碓礁信d趣,從圖1的英文文獻(xiàn)年發(fā)文量可以看出。
圖1 Generative Adversarial Networks英文文獻(xiàn)年發(fā)文量
對(duì)抗生成模型是基于博弈模型的,其中生成模型(Generator)必須與其對(duì)手判別模型(Discriminator)競(jìng)爭(zhēng)。生成模型直接生成假樣本,判別模型嘗試區(qū)分生成器生成的樣本(假樣本)和訓(xùn)練數(shù)據(jù)中抽取的樣本(真樣本)。生成對(duì)抗網(wǎng)絡(luò)(GAN)是一種生成模型,由生成器Generator和辨別器Discriminator組成。生成模型嘗試了解真實(shí)數(shù)據(jù)樣本的特征分布,并生成新的數(shù)據(jù)樣本。判別模型是一個(gè)二分類器,判別輸入是真實(shí)數(shù)據(jù)還是生成的樣本。生成模型和判別模型均可以使用感知機(jī)或者深度學(xué)習(xí)模型。優(yōu)化過程是極小極大博弈(minimax game)問題, 優(yōu)化目標(biāo)是達(dá)到納什均衡,即直到判別模型無法識(shí)別生成模型生成的假樣本是真是假[2-3]。
目前,無監(jiān)督網(wǎng)絡(luò)的大部分應(yīng)用都是在計(jì)算機(jī)視覺領(lǐng)域。其中一些應(yīng)用包括訓(xùn)練半監(jiān)督分類器,以及從低分辨率圖像中生成高分辨率圖像。在科研中發(fā)現(xiàn),生成模型對(duì)于整個(gè)網(wǎng)絡(luò)訓(xùn)練的結(jié)果有著非常大的影響,嘗試了多種改進(jìn)生成式模型,有了一些改進(jìn)思想。
在研究前,先了解一下生成隨機(jī)網(wǎng)絡(luò)(generative stochastic network,GSN)(Bengio et al,2014)。生成隨機(jī)網(wǎng)絡(luò)是去噪自編碼器的推廣,也可以認(rèn)為是生成式對(duì)抗網(wǎng)絡(luò)的前言,其除可見變量(通常表示為x)之外,在生成馬爾可夫鏈中還包括潛變量h。
GSN由兩個(gè)條件概率分布參數(shù)化,指定馬爾可夫鏈的一步:
(1)P(x(k)|h(k))指示在給定當(dāng)前潛在狀態(tài)下如何產(chǎn)生下一個(gè)可見變量。這種 “重建分布”也可以在去噪自編碼器、RBM、DBN和DBM中找到[6-10]。
(2)P(h(k)|h(k),x(k-1))指示在給定先前的潛在狀態(tài)和可見變量下如何更新潛在狀態(tài)變量。
去噪自編碼器和GSN不同于經(jīng)典的概率模型(有向或無向),它們自己參數(shù)化生成過程而不是通過可見和潛變量的聯(lián)合分布的數(shù)學(xué)形式。相反,后者如果存在則隱式地定義為生成馬爾可夫鏈的穩(wěn)態(tài)分布。存在穩(wěn)態(tài)分布的條件是溫和的,并且需要與標(biāo)準(zhǔn)MCMC方法相同的條件。這些條件是保證鏈混合的必要條件,但它們可能被某些過渡分布的選擇(例如,如果它們是確定性的)所違反。
GSN的原始公式用于無監(jiān)督學(xué)習(xí)和觀察數(shù)據(jù)的隱式建模,但研究人員可以修改框架來優(yōu)化它。例如,Zhou和Troyanskaya以下列方式推廣GSN,僅在輸出變量上傳播重構(gòu)的對(duì)數(shù)概率并保持輸入變量固定。他們成功應(yīng)用該方法對(duì)序列蛋白的二級(jí)結(jié)構(gòu)進(jìn)行建模,并將(一維)卷積結(jié)構(gòu)引入馬爾可夫鏈的轉(zhuǎn)換算子中[13-16]。重要的是要記住,對(duì)于馬爾可夫鏈的每個(gè)步驟,需要為每個(gè)層生成一個(gè)新序列,并且序列計(jì)算其他層(例如下一個(gè)層和前一個(gè)層)的值的輸入。因此,馬爾可夫鏈不僅僅是輸出變量(與更高的隱藏層相關(guān)聯(lián)),輸入序列僅用于條件化鏈,其中反向傳播使其能夠了解輸入序列如何條件化由馬爾可夫鏈隱式表示的輸出分布。所以這是在結(jié)構(gòu)化輸出中使用GSN的一個(gè)例子。
Zhrer和Pernkopf引入了一種混合模型,它通過簡(jiǎn)單地添加(使用不同的權(quán)重)受監(jiān)督和無人監(jiān)督的費(fèi)用的總和重建對(duì)數(shù)概率,將監(jiān)督目標(biāo)(例如上面的工作)和無監(jiān)督目標(biāo)(例如原始GSN)結(jié)合起來。Larochelle和Bengio之前提出了RBM中的這種混合標(biāo)準(zhǔn),他們證明了該方案下分類性能的提高。
根據(jù)這樣的特點(diǎn),可以對(duì)任何一種機(jī)器學(xué)習(xí)方法進(jìn)行改進(jìn)。對(duì)于生成模型,深度生成模型可以通過從網(wǎng)絡(luò)中采樣來有效生成樣本,例如受限玻爾茲曼機(jī)(restricted Boltzmann machine,RBM)、深度信念網(wǎng)絡(luò)(deep belief network,DBN)、深度玻爾茲曼機(jī)(deep Boltzmann machine,DBM)和廣義除噪自編碼器(generalized denoising autoencoders)。很多網(wǎng)絡(luò)使用的是類似于Sigmoid信念網(wǎng)絡(luò)的一種深度生成模型,如式(1)所示:
(1)
不過文獻(xiàn)中指出問題,生成可見單元的樣本在Sigmoid信念網(wǎng)絡(luò)中是非常高效的,但是在大多數(shù)情況下依然不是十分高效。如果對(duì)于給定的可見元,這樣的Sigmoid信念網(wǎng)絡(luò)對(duì)隱藏單元的推斷是非常難解的。因?yàn)樽兎窒陆缟婕皩?duì)包含整個(gè)層的團(tuán)求期望,均勻場(chǎng)推斷也是難以處理的。這個(gè)問題一直困難到足以限制有向離散網(wǎng)絡(luò)的普及[11]。
生成模型的神經(jīng)網(wǎng)絡(luò)由三個(gè)部分組成,分別是輸入層、隱藏層、輸出層,在這里隱藏層設(shè)置為4個(gè)[19]。大致過程如下:
α2=σ2(d(P2))=relu(g(P2))
(2)
(3)建立反卷積層,其卷積核為W4=[5,5,1,64],偏置量是ω4=[w41],反卷積層可通過公式z4=dec(a3,W4,str)+b4計(jì)算得出。
(4)在輸出層使用tanh激活函數(shù)激活:
R=tanh(z4)
(3)
生成模型如圖2所示。
圖2 生成模型
正如DCGAN所示,其增加了正則化、去掉了池化層、各層有特定的激活函數(shù),而激活函數(shù)也可根據(jù)所需有所改變。
(1)增加正則化,正則化應(yīng)用到判別模型中,可以大大提高其準(zhǔn)確性和訓(xùn)練速度,但不需要將其應(yīng)用到輸出層中,因?yàn)槿绻敵鰧又幸彩褂昧苏齽t化,將會(huì)大大影響模型的穩(wěn)定。
(2)用卷積層代替池化層可以降低采樣率,并且,在正則化的影響下,模型的訓(xùn)練速度已經(jīng)大大提高,所以也沒有必要使用池化層了[12-13]。
判別模型如圖3所示。
圖3 判別模型
在MNIST上報(bào)告的數(shù)字是測(cè)試集上樣本的平均對(duì)數(shù)似然性,并且在示例中計(jì)算平均值的標(biāo)準(zhǔn)誤差[21]。在TFD上,計(jì)算了數(shù)據(jù)集折疊的標(biāo)準(zhǔn)誤差,使用每個(gè)折疊的驗(yàn)證集選擇不同的σ。在TFD上,在每個(gè)折疊上交叉驗(yàn)證σ,并計(jì)算每個(gè)折疊的平均對(duì)數(shù)似然。對(duì)于MNIST,將與其他數(shù)據(jù)集的實(shí)值(而非二進(jìn)制)版本進(jìn)行比較。
結(jié)果報(bào)告在表1中,這種估計(jì)可能性的方法具有較高的方差,并且在高維空間中表現(xiàn)不佳,但它是所知的最佳方法??梢圆蓸拥还烙?jì)可能性的生成模型直接促使了對(duì)如何評(píng)估這些模型的進(jìn)一步研究,這是Goodfellow等人[14]使用的方法。
表1 實(shí)值版本比較
圖4展示了訓(xùn)練后從結(jié)果中抽取的樣本。雖然沒有表示這些樣本比現(xiàn)有方法生成的樣本更好,但可以這樣認(rèn)為,這些樣本至少與文獻(xiàn)中更好的生成模型競(jìng)爭(zhēng),并突出了對(duì)抗框架的潛力。
圖4是來自模型中的可視化樣本。樣品是公平的隨機(jī)抽取,而不是挑選。與深度生成模型的大多數(shù)其他可視化不同,這些圖像顯示來自模型分布的實(shí)際樣本,而不是給定隱藏單元樣本的條件均值。而且,這些樣品是不相關(guān)的,因?yàn)槿舆^程不依賴于馬爾可夫鏈混合。
圖5、圖6是可視化對(duì)抗模型的損失率。
圖5 使用Tensorboard可視化的生成模型損失率
圖6 使用Tensorboard可視化的判別模型損失率
在研究中發(fā)現(xiàn),增加正則化,正則化應(yīng)用到判別模型中,可以大大提高其準(zhǔn)確性和訓(xùn)練速度,但不需要將其應(yīng)用到輸出層中,因?yàn)槿绻敵鰧又幸彩褂昧苏齽t化,將會(huì)大大影響模型的穩(wěn)定。用卷積層代替池化層可以降低采樣率。這樣可以有效地降低損失率,并提高相關(guān)的準(zhǔn)確性。其次,在生成式模型中,tanh會(huì)比sigmoid更常用,在此引入該激活函數(shù)。綜上所述,改進(jìn)的無監(jiān)督對(duì)抗生成模型具有較好的效果。