基于深度卷積生成對抗網(wǎng)絡的無監(jiān)督表征
Unsupervised representation with deep convolutional generative adversarial networks
arxiv鏈接:https://arxiv.org/abs/1511.06434
摘要
近些年,使用CNNs的監(jiān)督學習在計算機視覺應用中有著廣泛的采用。相對來說,基于CNNs的無監(jiān)督學習只得到了很少的關注。在本工作中我們希望彌補這兩者(監(jiān)督和無監(jiān)督學習)的差距。我們介紹了一類被稱為深度卷積生成對抗網(wǎng)絡(DCGANs)、有著一定的架構約束的CNNs,且表明了DCGANS是無監(jiān)督學習強有力的候選。在多個圖片數(shù)據(jù)集上訓練過后,我們給出了有說服力的證據(jù),表明我們的深度卷積對抗對(包括生成器和判別器)學習到了從物體局部到場景的一個分層表征。另外,我們把學到的特征用在新的任務上——證明其作為一般表示的適用性。
1.introduction
從大型未標記數(shù)據(jù)集中學習可重用的特征已經(jīng)成為一個積極的研究領域。在計算機視覺背景下,可以利用幾乎無限量的未標注數(shù)據(jù)和視頻來學習良好的中間表征,然后用于多種監(jiān)督學習任務,例如圖像分類。我們提議,建立良好圖像表征的一條路是通過訓練GANs(Goodfellow et al., 2014),然后重用部分生成和判別網(wǎng)絡來作為監(jiān)督任務中的特征提取器。GANs是最大似然技術的一個有吸引力的替代。另外,表征學習有吸引力的原因在于其他方案的學習過程(欠佳)以及缺少啟發(fā)式的損失函數(shù)(例如像素級別獨立均方差)。已知GANs訓練不穩(wěn)定,經(jīng)常導致生成器產(chǎn)生無異議的輸出?,F(xiàn)有的關于嘗試理解和可視化GANs學到了什么,以及多層GANs的中間表示的公開出版很有限。
在這篇文章中,我們作出了如下貢獻:
1.我們提出和評估了一系列關于卷積GANs的拓撲結構約束,使得在大部分設置下的訓練更穩(wěn)定。我們把這一類結構稱為深度卷積GANs(DCGAN)。
2.我們把訓練好的判別器用于圖像分類任務,顯示出了和其他非監(jiān)督學習算法相比有競爭力的性能。
3.我們可視化了GANs學到的濾波器,并且經(jīng)驗性地指出了特定的濾波器能夠學會畫特定的物體。
4.我們指出生成器擁有有趣的向量算術特性,從而能夠通過簡單操作來生成不同語義特質的樣本。
2.相關工作
2.1 無標簽數(shù)據(jù)的表征學習
無監(jiān)督表征學習在泛計算機視覺研究和圖片背景下都是一個被良好研究過的問題。無監(jiān)督表征學習的一個經(jīng)典途徑是在數(shù)據(jù)集上聚類(如使用K-means),并且平衡各簇來提升分類分數(shù)。對于圖像,可以通過對圖像塊的層次聚類(Coates & Ng, 2012)來學習強大的圖像表征。另一個流行的方法是訓練自編碼器(卷積地、堆疊地(Vincent et al., 2010),在編碼中分離what和where的部分(Zhao et al., 2015),梯子結構(Rasmus et al., 2015)),使其能夠把一張圖像壓縮成壓縮碼,并且盡量準確地通過解碼來重構圖像。這些方法也被表明能夠從圖像像素中學習到好的特征表示。深度信念網(wǎng)絡(Lee et al., 2009)也在學習層次表示中表現(xiàn)良好。
2.2 生成自然圖像
生成圖像模型是詳細研究過的并分作2個類別:參數(shù)和非參數(shù)。
非參數(shù)模型同城做一個和已有圖像數(shù)據(jù)集的匹配,通常匹配圖像塊,并且已經(jīng)被用在紋理合成(Efros et al., 1999),超分辨率(Freeman et al., 2002)和in-painting(Hays & Efros, 2007)。
關于生成圖像的參數(shù)模型也被廣泛探索過(比如MNIST數(shù)字上的紋理合成(Portilla & Simoncelli, 2000))。然而,生成真實世界的自然圖像直到最近才取得一些進展。一種通過變分抽樣來生成圖像的方法(Kingma & Welling, 2013)取得了部分成功,但是樣本經(jīng)常模糊。另一種生成圖像的方法是通過一個迭代前向差分過程(Sohl-Dickstein et al., 2015)。生成對抗網(wǎng)絡(Goodfellow et al., 2014)生成的圖像會有噪聲或者不可理解。關于這個(GANs)的一個拉普拉斯金字塔擴展(Denton et al., 2015)顯示出更高質量的圖片,不過因為鏈接了多個模型,此方法仍然受到圖像不穩(wěn)定的影響。循環(huán)神經(jīng)網(wǎng)絡方法(Gregor et al., 2015)和反卷積網(wǎng)絡方法(Dosovitskiy et al., 2014)最近也在生成自然圖片方面取得了一些成功。然而,他們并沒有為監(jiān)督任務引入生成器。
2.3 CNNs內部的可視化
對于神經(jīng)網(wǎng)絡的一個持續(xù)的批評在于,它們是黑箱方法, 對網(wǎng)絡做了什么有很少的理解,表現(xiàn)在這是一個需要消耗大量人力的算法。對于CNNs,Zeiler et. al.(Zeiler & Fergus, 2014)指出了通過反卷積和過濾最大激活,可以找到網(wǎng)絡中每個卷積核的近似目的。相似地,在輸入中使用梯度下降,使我們觀察到了能夠激活特定濾波器的子集的理想圖片(Mordvintsev et al.)。
3.方法和模型架構
歷史上用CNNs來放大GANs,進而對圖像建模的方法并不成功。這激勵了LAPGAN的作者(Denton et al., 2015)去開發(fā)了一個替代方法,即迭代地提高可以被更好建模的、低分辨率的生成圖像。我們在用監(jiān)督相關文獻中常見的CNNs架構來縮放GANs時也遇到了一些困難。然而,在對模型廣泛探索后,我們辨別出了一類能夠在一系列數(shù)據(jù)集上穩(wěn)定訓練的架構,同時還可以訓練更高的分辨率和更深的生成模型。
我們方法的核心是對CNN架構采用和修改3個最近闡釋的變化。
第一個是全卷積網(wǎng)絡,它用跨卷積替換了確定性空間池化函數(shù)(例如最大池化),是的網(wǎng)絡能夠學習它自身的空間下采樣。我們在生成器中采用了這個方法,使得生成器能夠學習它自己的空間上采樣,和判別器。
第二個是跟隨在卷積特征頂端逐漸排除全連接層的潮流。關于這點,一個最給力的例子是全局平均池化,它已經(jīng)被用于最頂尖的圖像分類模型(Mordvintsev et al.)。我們發(fā)現(xiàn)全局平均池化提升了模型穩(wěn)定性但是傷害了收斂速度。一個折中方案表現(xiàn)良好,即對于生成器和判別器,分別直接連接最高卷積特征到輸入和輸出。GAN的第一層,即用正態(tài)噪聲分布Z作為輸入的那一層,能夠使用全連接,因為那只是一個矩陣相乘。但是第一層的結果被變形成了一個4維張量,并用于卷積堆疊的開始。對于判別器,最后一個卷積層被扁平化然后喂入了一個單sigmoid輸出。模型架構的一個例子在Fig.1中可以看到。

第三個是批量歸一化(Ioffe & Szegedy, 2015),它通過把每個單元的輸入歸一化到0均值和單位方差來穩(wěn)定學習(過程)。這有助于應對因為不良初始化而產(chǎn)生的訓練問題,并有助于梯度更深模型中的梯度流動。這證明了用更深的生成器來開始學習是非常關鍵的,能夠防止GANs中的一種常見錯誤:生成器把所有樣本坍縮到一個點。然而,直接采把批量歸一化應用到所有的層會導致樣本震蕩和模型不穩(wěn)定。這種情況的避免方式是不在生成器的輸出層和判別器的輸入層使用批量歸一化。
ReLU激活(Nair & Hinton, 2010)在生成器的其他層采用,除了輸出層用了Tanh函數(shù)。我們發(fā)現(xiàn)有邊界的激活讓模型能夠更快學習到飽和狀態(tài),以及涵蓋訓練分布中的顏色空間。關于判別器,我們發(fā)現(xiàn)泄露修正(leaky rectified)激活(Maas et al., 2013) (Xu et al., 2015)表現(xiàn)很好,特別是對于高分辨率的建模。這和原始的GAN論文中使用的maxout激活是相反的(Goodfellow et al., 2013)。
穩(wěn)定卷積GANs的架構指南:
1.用跨卷積替換任何池化層(判別器),以及分數(shù)跨卷積(生成器)。
2.在判別器和生成器中都使用批量歸一化。
3.從深度架構中移除全連接隱藏層。
4.對于生成器,在除了輸出層的所有層用ReLU激活,輸出層用Tanh。
5.對于判別器的所有層,用LeakyReLU激活。
4.對抗訓練的細節(jié)
我們在三個數(shù)據(jù)集上訓練了DCGANs: Large-scale Scene Understanding(LSUN)(Yu et al., 2015), Imagenet-1k和一個新集成的面部數(shù)據(jù)集。關于每個數(shù)據(jù)集的使用細節(jié)將在下文給出。
除了縮放到tanh激活函數(shù)的[-1,1]范圍,訓練圖像沒有使用其他預處理操作。所有模型都用大小為128的mini-batch隨機梯度下降(SGD)。所有權重都用0均值且標準差為0.02的正態(tài)分布初始化。在LeakyReLU中,leak的斜率對于所有模型都設為0.2。盡管之前的GAN相關工作用了動量來加速訓練,我們則采用了調過超參數(shù)的Adam優(yōu)化器(Kingma & Ba, 2014)。我們發(fā)現(xiàn)建議的學習率0.001太高了,使用了0.0002來替換。另外,我們發(fā)現(xiàn)動量項beta_1在推薦值0.9時導致了訓練震蕩和不穩(wěn)定。當減少到0.5時穩(wěn)定了訓練。
4.1 LSUN
隨著生成圖像模型所產(chǎn)生樣本的視覺質量的提高,關于過擬合和訓練樣本記憶的擔憂增加。為了說明我們的模型能夠隨著數(shù)據(jù)的增加而擴展,并生成高分辨率的圖像,我們用LSUN的300w+臥室訓練數(shù)據(jù)集訓練了一個模型。最近的分析已經(jīng)指出模型的的學習速度和泛化能力之間的直接關系(Hardt et al., 2015)。我們展示了一個epoch訓練的樣本(Fig.2),模仿在線學習,除了在收斂后采樣(Fig.3),作為一次機會來證明我們的模型并沒有通過簡單的過擬合/記憶訓練樣本來產(chǎn)生高質量的樣本。圖像沒有采用數(shù)據(jù)增強。


4.1.1 刪除重復數(shù)據(jù)
為了進一步減少生成器記住輸入樣例(Fig.2)的可能性,我們實現(xiàn)了一個簡單的圖像去重過程。我們在32*32下采樣、中心剪裁的訓練樣例上,擬合了一個3072-128-3072的去噪dropout正規(guī)化化RELU自編碼器。然后,最終的代碼層的激活通過RELU激活的閾值來二值化,這種方法是一個有效的信息保留技術(Srivastava et al., 2014),并提供了一個語義散列的捷徑,使得線性時間去重成為可能。哈希沖突的視覺檢測顯示了高精度,即估計的誤報率小于1%。另外,這個技術檢測并移除了將近27.5w個近似重復(圖片),展現(xiàn)了一個高召回率。
4.2 面部
我們通過人名進行隨機網(wǎng)絡圖片查詢,來爬取含有人臉的圖片。人名從dbpedia獲取,標準是只取現(xiàn)代出生的人。這個數(shù)據(jù)集包含10K人的3M張圖片。我們對這些圖片使用了OpenCV的人臉識別,保留了分辨率足夠高的檢測結果,這給我們提供了獎金35W張人臉框。我們用這些人臉框來訓練。圖像沒有采用數(shù)據(jù)增強。
4.3 Imagenet -1k
我們把Imagenet-1k(Deng et al., 2009)當做一個自然圖片源來進行無監(jiān)督訓練。我們用32*32的min-resized的中心截取進行訓練。圖像沒有采用數(shù)據(jù)增強。
5. DCGANs能力的經(jīng)驗驗證
5.1 把GANs當做一個特征提取器來分類CIFAR-10
一種評估無監(jiān)督表征學習算法的常用技術是把它們當做一個監(jiān)督數(shù)據(jù)集上的特征提取器,并評估線性模型擬合這些輸出特征的效果。
在CIFAR-10數(shù)據(jù)集上,一個給力的基準表現(xiàn)使用一個調整良好的單層特征提取流程,使用K-means作為一個特征學習算法。當使用非常大量色的特征映射(4800)時,這個技術達到了80.6%的準確率。基本算法的一個無監(jiān)督的多層擴展達到了82.0%的準確率(Coates & Ng, 2011)。為了評估DCGANs學到的表征對于監(jiān)督任務的質量,我們在Imagenet-1k上訓練,然后用判別器的所有層的卷積特征,對每層表征使用最大池化來產(chǎn)生4*4的空間網(wǎng)格。然后,這些特征被扁平化并連接形成了28672維的向量,并用一個正規(guī)化線性L2-SVM分類器來訓練它。這達到了82.8%的準確率,比所有基于K-means的方法都高。值得注意的是,這個判別器有比基于K-means的方法少得多的特征映射(在最高層有512),但并沒有導致更大的總特征向量,因為在許多層用了4*4的空間定位。DCGANs的表現(xiàn)依然比Exemplar CNNs差(Dosovitskiy et al., 2015),這是一種以無監(jiān)督方式訓練正則判別CNNs的計數(shù),目的是從源數(shù)據(jù)集中辨別精心挑選的、積極增強的、模范樣本。之后可能從微調判別器的表征來繼續(xù)提高,但是我們把這留作未來的工作。另外,因為我們的DCGAN從來沒有在CIFAR-10上訓練過,這個實驗也驗證了學到特征的領域無關魯棒性。

5.2 把GANs當做特征提取器來分類SVHN數(shù)字
在街景房門牌號數(shù)據(jù)集(SVHN)上(Netzer et al., 2011),當標注數(shù)據(jù)缺乏時,我們以監(jiān)督為目的使用DCGAN的判別器的特征。按照和CIFAR-10試驗中相似的數(shù)據(jù)準備規(guī)則,我們從non-extra數(shù)據(jù)集中分理處含1w樣例的校驗集用于超參數(shù)和模型選擇。1000個均勻分類分布的訓練陽歷被隨機選擇,并用于訓練一個規(guī)則化的線性L2-SVM分類器,其中采用和CIFAR-10流程一樣的特征提取器。這達到了頂尖的(對于有1000個類標的分類)22.48%的測試錯誤率,提升并超過了其他以平衡未標注數(shù)據(jù)集為目的的的CNNs的改版(Zhao et al., 2015)。另外,我們通過用相同架構、數(shù)據(jù)訓練一個純粹的監(jiān)督CNN,并把這個(CNN)模型用超過64個超參數(shù)嘗試(Bergstra & Bengio, 2012),的隨機搜索進行優(yōu)化,驗證了DCGAN中的CNN結構并不是模型表現(xiàn)的主要貢獻因素。它達到了一個顯著更高——28.87%的校驗錯誤。
6. 探究和可視化網(wǎng)絡內部
我們從多種途徑調研了訓練的生成器和分類器。我們沒有在訓練集上做任何形式的最近鄰搜索。最近鄰搜索在像素或者特征空間上被小圖變換所扼殺(Theis et al., 2015)。我們同樣沒有用對數(shù)似然的指標來定量評估模型,因為它是個差勁的(Theis et al., 2015)指標。

6.1 行走在潛空間上
我們做的第一個實驗是理解潛空間的地形。在學到的流形(manifold)上行走通常能夠告訴我們關于記憶的信號(如果那里有尖銳的過度),以及關于其中空間被分層折疊的那條路。如果潛空間中的行走導致了圖像生成的語義變化(比如圖像被增加或刪除),我們能夠推理出模型學到了相關和有趣的表征。結果在Fig.4中顯示。

6.2 可視化判別器的特征
之前的工作證明了CNNs在大貴博數(shù)據(jù)集上的監(jiān)督學習學到了非常給力的特征(Zeiler & Fergus, 2014)。另外,在場景分類上訓練的監(jiān)督CNNs學到了目標檢測器(Oquab et al., 2014)。我們證明了在一個大規(guī)模圖像數(shù)據(jù)及上訓練的無監(jiān)督的DCGAN也能夠學到有趣的分層特征。使用引導反向傳播(Springenberg et al., 2014),我們在Fig.5中展示了判別器學到的特征在臥室的典型部分激活了,比如床和窗戶。為了對比,在同樣的圖像中,我們給出了一個基準,即隨機初始化的特征沒有在任何語義相關或者有趣的東西上激活。

6.3 操作生成器的表征
6.3.1 忘記畫中心物體
除了判別器學習到的表征,還有個問題是生成器學到了什么表征。樣本質量使人想起生成器學到了關于主要場景元素的特殊的物體表征,如床、窗戶、臺燈、門和各種各樣的家具。為了探索這些特征的形式,我們進行了一個實驗,嘗試從生成器中徹底移除窗戶。
在150個樣本上,手工畫了52個窗戶邊界框。在第二高的卷積層特征中,使用邏輯回歸來擬合和預測某個特征的激活是否在窗戶上,其中的標準是畫的邊界框內部的激活是正的而同一批圖片中的隨機樣本是負的。使用這個簡單地模型,所有特征映射中權重大于0的(總共200個)被從所有空間位置中提取出來。然后,生成了包含或不包含特征映射的隨機的新樣本。
生成的含有或者不含有窗戶dropout的圖片在Fig.6中顯示。有趣的是,網(wǎng)絡在大部分情況下忘記在臥室中畫窗戶,而是使用了其他物品來代替。
6.3.2 面部樣本上的矢量算數(shù)
在評估學到的詞匯的表征這個條件下,(Mikolov et al., 2013)證明了簡單地算數(shù)操作揭示了表征空間中豐富的線性結構。一個經(jīng)典的例子證明了向量("King") - 向量("Man") + 向量("Woman")推理出了一個最近鄰是向量Queen的向量。我們調研了我們的生成器中的Z表征是否有類似的結構。我們?yōu)榱说玫揭曈X概念,在模范樣本集的Z向量上實行了相似的算術操作。實驗在一樣本一概念的情況下不穩(wěn)定,但在平均了3個模范的Z向量后顯示出了一致和穩(wěn)定的生成,即在語義上符合算術操作。 除了Fig.7中現(xiàn)實的物體操作外,我們證明了面部姿態(tài)也在Z空間中被線性建模了(Fig.8)。


這些證明指出用我們模型學到的Z表征能夠建立有趣的應用。之前,條件生成模型被證明能夠學習有說服力的模型物體特征,像是尺度、旋轉和姿態(tài)(Dosovitskiy et al.,2014)。據(jù)我們所知這是第一次在純無監(jiān)督模型中實現(xiàn)這些。之后對上述向量算術操作的探索和開發(fā)可能顯著減少復雜圖像分布條件建模生成模型所需的數(shù)據(jù)量。
7. 結論和未來工作
我們提出了一類更加穩(wěn)定的架構來訓練生成對抗網(wǎng)絡,并且給出了證據(jù),證明對抗網(wǎng)絡能夠學到監(jiān)督學習以及生成建模的圖像的良好特征。仍然有部分模型不穩(wěn)定的問題 - 我們注意到當模型訓練更長時間時,他們有時折疊一類濾波器的子集,到一個單震動模式。未來的工作需要針對這種形式的不穩(wěn)定。我們想,擴展這個框架到其他領域例如視頻(對于幀預測)以及音頻(預訓練特征用于語音合成)應該非常有趣。未來,關于學到的潛空間的調研也是非常有趣的。
致謝
省略