基于深度卷積生成對抗網(wǎng)絡(luò)的無監(jiān)督表征
Unsupervised representation with deep convolutional generative adversarial networks
arxiv鏈接:https://arxiv.org/abs/1511.06434
摘要
近些年,使用CNNs的監(jiān)督學(xué)習(xí)在計(jì)算機(jī)視覺應(yīng)用中有著廣泛的采用。相對來說,基于CNNs的無監(jiān)督學(xué)習(xí)只得到了很少的關(guān)注。在本工作中我們希望彌補(bǔ)這兩者(監(jiān)督和無監(jiān)督學(xué)習(xí))的差距。我們介紹了一類被稱為深度卷積生成對抗網(wǎng)絡(luò)(DCGANs)、有著一定的架構(gòu)約束的CNNs,且表明了DCGANS是無監(jiān)督學(xué)習(xí)強(qiáng)有力的候選。在多個(gè)圖片數(shù)據(jù)集上訓(xùn)練過后,我們給出了有說服力的證據(jù),表明我們的深度卷積對抗對(包括生成器和判別器)學(xué)習(xí)到了從物體局部到場景的一個(gè)分層表征。另外,我們把學(xué)到的特征用在新的任務(wù)上——證明其作為一般表示的適用性。
1.introduction
從大型未標(biāo)記數(shù)據(jù)集中學(xué)習(xí)可重用的特征已經(jīng)成為一個(gè)積極的研究領(lǐng)域。在計(jì)算機(jī)視覺背景下,可以利用幾乎無限量的未標(biāo)注數(shù)據(jù)和視頻來學(xué)習(xí)良好的中間表征,然后用于多種監(jiān)督學(xué)習(xí)任務(wù),例如圖像分類。我們提議,建立良好圖像表征的一條路是通過訓(xùn)練GANs(Goodfellow et al., 2014),然后重用部分生成和判別網(wǎng)絡(luò)來作為監(jiān)督任務(wù)中的特征提取器。GANs是最大似然技術(shù)的一個(gè)有吸引力的替代。另外,表征學(xué)習(xí)有吸引力的原因在于其他方案的學(xué)習(xí)過程(欠佳)以及缺少啟發(fā)式的損失函數(shù)(例如像素級別獨(dú)立均方差)。已知GANs訓(xùn)練不穩(wěn)定,經(jīng)常導(dǎo)致生成器產(chǎn)生無異議的輸出?,F(xiàn)有的關(guān)于嘗試?yán)斫夂涂梢暬疓ANs學(xué)到了什么,以及多層GANs的中間表示的公開出版很有限。
在這篇文章中,我們作出了如下貢獻(xiàn):
1.我們提出和評估了一系列關(guān)于卷積GANs的拓?fù)浣Y(jié)構(gòu)約束,使得在大部分設(shè)置下的訓(xùn)練更穩(wěn)定。我們把這一類結(jié)構(gòu)稱為深度卷積GANs(DCGAN)。
2.我們把訓(xùn)練好的判別器用于圖像分類任務(wù),顯示出了和其他非監(jiān)督學(xué)習(xí)算法相比有競爭力的性能。
3.我們可視化了GANs學(xué)到的濾波器,并且經(jīng)驗(yàn)性地指出了特定的濾波器能夠?qū)W會畫特定的物體。
4.我們指出生成器擁有有趣的向量算術(shù)特性,從而能夠通過簡單操作來生成不同語義特質(zhì)的樣本。
2.相關(guān)工作
2.1 無標(biāo)簽數(shù)據(jù)的表征學(xué)習(xí)
無監(jiān)督表征學(xué)習(xí)在泛計(jì)算機(jī)視覺研究和圖片背景下都是一個(gè)被良好研究過的問題。無監(jiān)督表征學(xué)習(xí)的一個(gè)經(jīng)典途徑是在數(shù)據(jù)集上聚類(如使用K-means),并且平衡各簇來提升分類分?jǐn)?shù)。對于圖像,可以通過對圖像塊的層次聚類(Coates & Ng, 2012)來學(xué)習(xí)強(qiáng)大的圖像表征。另一個(gè)流行的方法是訓(xùn)練自編碼器(卷積地、堆疊地(Vincent et al., 2010),在編碼中分離what和where的部分(Zhao et al., 2015),梯子結(jié)構(gòu)(Rasmus et al., 2015)),使其能夠把一張圖像壓縮成壓縮碼,并且盡量準(zhǔn)確地通過解碼來重構(gòu)圖像。這些方法也被表明能夠從圖像像素中學(xué)習(xí)到好的特征表示。深度信念網(wǎng)絡(luò)(Lee et al., 2009)也在學(xué)習(xí)層次表示中表現(xiàn)良好。
2.2 生成自然圖像
生成圖像模型是詳細(xì)研究過的并分作2個(gè)類別:參數(shù)和非參數(shù)。
非參數(shù)模型同城做一個(gè)和已有圖像數(shù)據(jù)集的匹配,通常匹配圖像塊,并且已經(jīng)被用在紋理合成(Efros et al., 1999),超分辨率(Freeman et al., 2002)和in-painting(Hays & Efros, 2007)。
關(guān)于生成圖像的參數(shù)模型也被廣泛探索過(比如MNIST數(shù)字上的紋理合成(Portilla & Simoncelli, 2000))。然而,生成真實(shí)世界的自然圖像直到最近才取得一些進(jìn)展。一種通過變分抽樣來生成圖像的方法(Kingma & Welling, 2013)取得了部分成功,但是樣本經(jīng)常模糊。另一種生成圖像的方法是通過一個(gè)迭代前向差分過程(Sohl-Dickstein et al., 2015)。生成對抗網(wǎng)絡(luò)(Goodfellow et al., 2014)生成的圖像會有噪聲或者不可理解。關(guān)于這個(gè)(GANs)的一個(gè)拉普拉斯金字塔擴(kuò)展(Denton et al., 2015)顯示出更高質(zhì)量的圖片,不過因?yàn)殒溄恿硕鄠€(gè)模型,此方法仍然受到圖像不穩(wěn)定的影響。循環(huán)神經(jīng)網(wǎng)絡(luò)方法(Gregor et al., 2015)和反卷積網(wǎng)絡(luò)方法(Dosovitskiy et al., 2014)最近也在生成自然圖片方面取得了一些成功。然而,他們并沒有為監(jiān)督任務(wù)引入生成器。
2.3 CNNs內(nèi)部的可視化
對于神經(jīng)網(wǎng)絡(luò)的一個(gè)持續(xù)的批評在于,它們是黑箱方法, 對網(wǎng)絡(luò)做了什么有很少的理解,表現(xiàn)在這是一個(gè)需要消耗大量人力的算法。對于CNNs,Zeiler et. al.(Zeiler & Fergus, 2014)指出了通過反卷積和過濾最大激活,可以找到網(wǎng)絡(luò)中每個(gè)卷積核的近似目的。相似地,在輸入中使用梯度下降,使我們觀察到了能夠激活特定濾波器的子集的理想圖片(Mordvintsev et al.)。
3.方法和模型架構(gòu)
歷史上用CNNs來放大GANs,進(jìn)而對圖像建模的方法并不成功。這激勵(lì)了LAPGAN的作者(Denton et al., 2015)去開發(fā)了一個(gè)替代方法,即迭代地提高可以被更好建模的、低分辨率的生成圖像。我們在用監(jiān)督相關(guān)文獻(xiàn)中常見的CNNs架構(gòu)來縮放GANs時(shí)也遇到了一些困難。然而,在對模型廣泛探索后,我們辨別出了一類能夠在一系列數(shù)據(jù)集上穩(wěn)定訓(xùn)練的架構(gòu),同時(shí)還可以訓(xùn)練更高的分辨率和更深的生成模型。
我們方法的核心是對CNN架構(gòu)采用和修改3個(gè)最近闡釋的變化。
第一個(gè)是全卷積網(wǎng)絡(luò),它用跨卷積替換了確定性空間池化函數(shù)(例如最大池化),是的網(wǎng)絡(luò)能夠?qū)W習(xí)它自身的空間下采樣。我們在生成器中采用了這個(gè)方法,使得生成器能夠?qū)W習(xí)它自己的空間上采樣,和判別器。
第二個(gè)是跟隨在卷積特征頂端逐漸排除全連接層的潮流。關(guān)于這點(diǎn),一個(gè)最給力的例子是全局平均池化,它已經(jīng)被用于最頂尖的圖像分類模型(Mordvintsev et al.)。我們發(fā)現(xiàn)全局平均池化提升了模型穩(wěn)定性但是傷害了收斂速度。一個(gè)折中方案表現(xiàn)良好,即對于生成器和判別器,分別直接連接最高卷積特征到輸入和輸出。GAN的第一層,即用正態(tài)噪聲分布Z作為輸入的那一層,能夠使用全連接,因?yàn)槟侵皇且粋€(gè)矩陣相乘。但是第一層的結(jié)果被變形成了一個(gè)4維張量,并用于卷積堆疊的開始。對于判別器,最后一個(gè)卷積層被扁平化然后喂入了一個(gè)單sigmoid輸出。模型架構(gòu)的一個(gè)例子在Fig.1中可以看到。
第三個(gè)是批量歸一化(Ioffe & Szegedy, 2015),它通過把每個(gè)單元的輸入歸一化到0均值和單位方差來穩(wěn)定學(xué)習(xí)(過程)。這有助于應(yīng)對因?yàn)椴涣汲跏蓟a(chǎn)生的訓(xùn)練問題,并有助于梯度更深模型中的梯度流動。這證明了用更深的生成器來開始學(xué)習(xí)是非常關(guān)鍵的,能夠防止GANs中的一種常見錯(cuò)誤:生成器把所有樣本坍縮到一個(gè)點(diǎn)。然而,直接采把批量歸一化應(yīng)用到所有的層會導(dǎo)致樣本震蕩和模型不穩(wěn)定。這種情況的避免方式是不在生成器的輸出層和判別器的輸入層使用批量歸一化。
ReLU激活(Nair & Hinton, 2010)在生成器的其他層采用,除了輸出層用了Tanh函數(shù)。我們發(fā)現(xiàn)有邊界的激活讓模型能夠更快學(xué)習(xí)到飽和狀態(tài),以及涵蓋訓(xùn)練分布中的顏色空間。關(guān)于判別器,我們發(fā)現(xiàn)泄露修正(leaky rectified)激活(Maas et al., 2013) (Xu et al., 2015)表現(xiàn)很好,特別是對于高分辨率的建模。這和原始的GAN論文中使用的maxout激活是相反的(Goodfellow et al., 2013)。
穩(wěn)定卷積GANs的架構(gòu)指南:
1.用跨卷積替換任何池化層(判別器),以及分?jǐn)?shù)跨卷積(生成器)。
2.在判別器和生成器中都使用批量歸一化。
3.從深度架構(gòu)中移除全連接隱藏層。
4.對于生成器,在除了輸出層的所有層用ReLU激活,輸出層用Tanh。
5.對于判別器的所有層,用LeakyReLU激活。
4.對抗訓(xùn)練的細(xì)節(jié)
我們在三個(gè)數(shù)據(jù)集上訓(xùn)練了DCGANs: Large-scale Scene Understanding(LSUN)(Yu et al., 2015), Imagenet-1k和一個(gè)新集成的面部數(shù)據(jù)集。關(guān)于每個(gè)數(shù)據(jù)集的使用細(xì)節(jié)將在下文給出。
除了縮放到tanh激活函數(shù)的[-1,1]范圍,訓(xùn)練圖像沒有使用其他預(yù)處理操作。所有模型都用大小為128的mini-batch隨機(jī)梯度下降(SGD)。所有權(quán)重都用0均值且標(biāo)準(zhǔn)差為0.02的正態(tài)分布初始化。在LeakyReLU中,leak的斜率對于所有模型都設(shè)為0.2。盡管之前的GAN相關(guān)工作用了動量來加速訓(xùn)練,我們則采用了調(diào)過超參數(shù)的Adam優(yōu)化器(Kingma & Ba, 2014)。我們發(fā)現(xiàn)建議的學(xué)習(xí)率0.001太高了,使用了0.0002來替換。另外,我們發(fā)現(xiàn)動量項(xiàng)beta_1在推薦值0.9時(shí)導(dǎo)致了訓(xùn)練震蕩和不穩(wěn)定。當(dāng)減少到0.5時(shí)穩(wěn)定了訓(xùn)練。
4.1 LSUN
隨著生成圖像模型所產(chǎn)生樣本的視覺質(zhì)量的提高,關(guān)于過擬合和訓(xùn)練樣本記憶的擔(dān)憂增加。為了說明我們的模型能夠隨著數(shù)據(jù)的增加而擴(kuò)展,并生成高分辨率的圖像,我們用LSUN的300w+臥室訓(xùn)練數(shù)據(jù)集訓(xùn)練了一個(gè)模型。最近的分析已經(jīng)指出模型的的學(xué)習(xí)速度和泛化能力之間的直接關(guān)系(Hardt et al., 2015)。我們展示了一個(gè)epoch訓(xùn)練的樣本(Fig.2),模仿在線學(xué)習(xí),除了在收斂后采樣(Fig.3),作為一次機(jī)會來證明我們的模型并沒有通過簡單的過擬合/記憶訓(xùn)練樣本來產(chǎn)生高質(zhì)量的樣本。圖像沒有采用數(shù)據(jù)增強(qiáng)。
4.1.1 刪除重復(fù)數(shù)據(jù)
為了進(jìn)一步減少生成器記住輸入樣例(Fig.2)的可能性,我們實(shí)現(xiàn)了一個(gè)簡單的圖像去重過程。我們在32*32下采樣、中心剪裁的訓(xùn)練樣例上,擬合了一個(gè)3072-128-3072的去噪dropout正規(guī)化化RELU自編碼器。然后,最終的代碼層的激活通過RELU激活的閾值來二值化,這種方法是一個(gè)有效的信息保留技術(shù)(Srivastava et al., 2014),并提供了一個(gè)語義散列的捷徑,使得線性時(shí)間去重成為可能。哈希沖突的視覺檢測顯示了高精度,即估計(jì)的誤報(bào)率小于1%。另外,這個(gè)技術(shù)檢測并移除了將近27.5w個(gè)近似重復(fù)(圖片),展現(xiàn)了一個(gè)高召回率。
4.2 面部
我們通過人名進(jìn)行隨機(jī)網(wǎng)絡(luò)圖片查詢,來爬取含有人臉的圖片。人名從dbpedia獲取,標(biāo)準(zhǔn)是只取現(xiàn)代出生的人。這個(gè)數(shù)據(jù)集包含10K人的3M張圖片。我們對這些圖片使用了OpenCV的人臉識別,保留了分辨率足夠高的檢測結(jié)果,這給我們提供了獎(jiǎng)金35W張人臉框。我們用這些人臉框來訓(xùn)練。圖像沒有采用數(shù)據(jù)增強(qiáng)。
4.3 Imagenet -1k
我們把Imagenet-1k(Deng et al., 2009)當(dāng)做一個(gè)自然圖片源來進(jìn)行無監(jiān)督訓(xùn)練。我們用32*32的min-resized的中心截取進(jìn)行訓(xùn)練。圖像沒有采用數(shù)據(jù)增強(qiáng)。
5. DCGANs能力的經(jīng)驗(yàn)驗(yàn)證
5.1 把GANs當(dāng)做一個(gè)特征提取器來分類CIFAR-10
一種評估無監(jiān)督表征學(xué)習(xí)算法的常用技術(shù)是把它們當(dāng)做一個(gè)監(jiān)督數(shù)據(jù)集上的特征提取器,并評估線性模型擬合這些輸出特征的效果。
在CIFAR-10數(shù)據(jù)集上,一個(gè)給力的基準(zhǔn)表現(xiàn)使用一個(gè)調(diào)整良好的單層特征提取流程,使用K-means作為一個(gè)特征學(xué)習(xí)算法。當(dāng)使用非常大量色的特征映射(4800)時(shí),這個(gè)技術(shù)達(dá)到了80.6%的準(zhǔn)確率?;舅惴ǖ囊粋€(gè)無監(jiān)督的多層擴(kuò)展達(dá)到了82.0%的準(zhǔn)確率(Coates & Ng, 2011)。為了評估DCGANs學(xué)到的表征對于監(jiān)督任務(wù)的質(zhì)量,我們在Imagenet-1k上訓(xùn)練,然后用判別器的所有層的卷積特征,對每層表征使用最大池化來產(chǎn)生4*4的空間網(wǎng)格。然后,這些特征被扁平化并連接形成了28672維的向量,并用一個(gè)正規(guī)化線性L2-SVM分類器來訓(xùn)練它。這達(dá)到了82.8%的準(zhǔn)確率,比所有基于K-means的方法都高。值得注意的是,這個(gè)判別器有比基于K-means的方法少得多的特征映射(在最高層有512),但并沒有導(dǎo)致更大的總特征向量,因?yàn)樵谠S多層用了4*4的空間定位。DCGANs的表現(xiàn)依然比Exemplar CNNs差(Dosovitskiy et al., 2015),這是一種以無監(jiān)督方式訓(xùn)練正則判別CNNs的計(jì)數(shù),目的是從源數(shù)據(jù)集中辨別精心挑選的、積極增強(qiáng)的、模范樣本。之后可能從微調(diào)判別器的表征來繼續(xù)提高,但是我們把這留作未來的工作。另外,因?yàn)槲覀兊腄CGAN從來沒有在CIFAR-10上訓(xùn)練過,這個(gè)實(shí)驗(yàn)也驗(yàn)證了學(xué)到特征的領(lǐng)域無關(guān)魯棒性。
5.2 把GANs當(dāng)做特征提取器來分類SVHN數(shù)字
在街景房門牌號數(shù)據(jù)集(SVHN)上(Netzer et al., 2011),當(dāng)標(biāo)注數(shù)據(jù)缺乏時(shí),我們以監(jiān)督為目的使用DCGAN的判別器的特征。按照和CIFAR-10試驗(yàn)中相似的數(shù)據(jù)準(zhǔn)備規(guī)則,我們從non-extra數(shù)據(jù)集中分理處含1w樣例的校驗(yàn)集用于超參數(shù)和模型選擇。1000個(gè)均勻分類分布的訓(xùn)練陽歷被隨機(jī)選擇,并用于訓(xùn)練一個(gè)規(guī)則化的線性L2-SVM分類器,其中采用和CIFAR-10流程一樣的特征提取器。這達(dá)到了頂尖的(對于有1000個(gè)類標(biāo)的分類)22.48%的測試錯(cuò)誤率,提升并超過了其他以平衡未標(biāo)注數(shù)據(jù)集為目的的的CNNs的改版(Zhao et al., 2015)。另外,我們通過用相同架構(gòu)、數(shù)據(jù)訓(xùn)練一個(gè)純粹的監(jiān)督CNN,并把這個(gè)(CNN)模型用超過64個(gè)超參數(shù)嘗試(Bergstra & Bengio, 2012),的隨機(jī)搜索進(jìn)行優(yōu)化,驗(yàn)證了DCGAN中的CNN結(jié)構(gòu)并不是模型表現(xiàn)的主要貢獻(xiàn)因素。它達(dá)到了一個(gè)顯著更高——28.87%的校驗(yàn)錯(cuò)誤。
6. 探究和可視化網(wǎng)絡(luò)內(nèi)部
我們從多種途徑調(diào)研了訓(xùn)練的生成器和分類器。我們沒有在訓(xùn)練集上做任何形式的最近鄰搜索。最近鄰搜索在像素或者特征空間上被小圖變換所扼殺(Theis et al., 2015)。我們同樣沒有用對數(shù)似然的指標(biāo)來定量評估模型,因?yàn)樗莻€(gè)差勁的(Theis et al., 2015)指標(biāo)。
6.1 行走在潛空間上
我們做的第一個(gè)實(shí)驗(yàn)是理解潛空間的地形。在學(xué)到的流形(manifold)上行走通常能夠告訴我們關(guān)于記憶的信號(如果那里有尖銳的過度),以及關(guān)于其中空間被分層折疊的那條路。如果潛空間中的行走導(dǎo)致了圖像生成的語義變化(比如圖像被增加或刪除),我們能夠推理出模型學(xué)到了相關(guān)和有趣的表征。結(jié)果在Fig.4中顯示。
6.2 可視化判別器的特征
之前的工作證明了CNNs在大貴博數(shù)據(jù)集上的監(jiān)督學(xué)習(xí)學(xué)到了非常給力的特征(Zeiler & Fergus, 2014)。另外,在場景分類上訓(xùn)練的監(jiān)督CNNs學(xué)到了目標(biāo)檢測器(Oquab et al., 2014)。我們證明了在一個(gè)大規(guī)模圖像數(shù)據(jù)及上訓(xùn)練的無監(jiān)督的DCGAN也能夠?qū)W到有趣的分層特征。使用引導(dǎo)反向傳播(Springenberg et al., 2014),我們在Fig.5中展示了判別器學(xué)到的特征在臥室的典型部分激活了,比如床和窗戶。為了對比,在同樣的圖像中,我們給出了一個(gè)基準(zhǔn),即隨機(jī)初始化的特征沒有在任何語義相關(guān)或者有趣的東西上激活。
6.3 操作生成器的表征
6.3.1 忘記畫中心物體
除了判別器學(xué)習(xí)到的表征,還有個(gè)問題是生成器學(xué)到了什么表征。樣本質(zhì)量使人想起生成器學(xué)到了關(guān)于主要場景元素的特殊的物體表征,如床、窗戶、臺燈、門和各種各樣的家具。為了探索這些特征的形式,我們進(jìn)行了一個(gè)實(shí)驗(yàn),嘗試從生成器中徹底移除窗戶。
在150個(gè)樣本上,手工畫了52個(gè)窗戶邊界框。在第二高的卷積層特征中,使用邏輯回歸來擬合和預(yù)測某個(gè)特征的激活是否在窗戶上,其中的標(biāo)準(zhǔn)是畫的邊界框內(nèi)部的激活是正的而同一批圖片中的隨機(jī)樣本是負(fù)的。使用這個(gè)簡單地模型,所有特征映射中權(quán)重大于0的(總共200個(gè))被從所有空間位置中提取出來。然后,生成了包含或不包含特征映射的隨機(jī)的新樣本。
生成的含有或者不含有窗戶dropout的圖片在Fig.6中顯示。有趣的是,網(wǎng)絡(luò)在大部分情況下忘記在臥室中畫窗戶,而是使用了其他物品來代替。
6.3.2 面部樣本上的矢量算數(shù)
在評估學(xué)到的詞匯的表征這個(gè)條件下,(Mikolov et al., 2013)證明了簡單地算數(shù)操作揭示了表征空間中豐富的線性結(jié)構(gòu)。一個(gè)經(jīng)典的例子證明了向量("King") - 向量("Man") + 向量("Woman")推理出了一個(gè)最近鄰是向量Queen的向量。我們調(diào)研了我們的生成器中的Z表征是否有類似的結(jié)構(gòu)。我們?yōu)榱说玫揭曈X概念,在模范樣本集的Z向量上實(shí)行了相似的算術(shù)操作。實(shí)驗(yàn)在一樣本一概念的情況下不穩(wěn)定,但在平均了3個(gè)模范的Z向量后顯示出了一致和穩(wěn)定的生成,即在語義上符合算術(shù)操作。 除了Fig.7中現(xiàn)實(shí)的物體操作外,我們證明了面部姿態(tài)也在Z空間中被線性建模了(Fig.8)。
這些證明指出用我們模型學(xué)到的Z表征能夠建立有趣的應(yīng)用。之前,條件生成模型被證明能夠?qū)W習(xí)有說服力的模型物體特征,像是尺度、旋轉(zhuǎn)和姿態(tài)(Dosovitskiy et al.,2014)。據(jù)我們所知這是第一次在純無監(jiān)督模型中實(shí)現(xiàn)這些。之后對上述向量算術(shù)操作的探索和開發(fā)可能顯著減少復(fù)雜圖像分布條件建模生成模型所需的數(shù)據(jù)量。
7. 結(jié)論和未來工作
我們提出了一類更加穩(wěn)定的架構(gòu)來訓(xùn)練生成對抗網(wǎng)絡(luò),并且給出了證據(jù),證明對抗網(wǎng)絡(luò)能夠?qū)W到監(jiān)督學(xué)習(xí)以及生成建模的圖像的良好特征。仍然有部分模型不穩(wěn)定的問題 - 我們注意到當(dāng)模型訓(xùn)練更長時(shí)間時(shí),他們有時(shí)折疊一類濾波器的子集,到一個(gè)單震動模式。未來的工作需要針對這種形式的不穩(wěn)定。我們想,擴(kuò)展這個(gè)框架到其他領(lǐng)域例如視頻(對于幀預(yù)測)以及音頻(預(yù)訓(xùn)練特征用于語音合成)應(yīng)該非常有趣。未來,關(guān)于學(xué)到的潛空間的調(diào)研也是非常有趣的。
致謝
省略