摘要:我們提出了生成式對抗膠囊網絡(CapsuleGAN),一種使用膠囊網絡(CapsNets)替代標準的卷積神經網絡(CNNs)作為生成式對抗網絡(GAN)中判別器的框架,并對圖像數據進行建模。 我們為設計CapsNet判別器和更新GAN的目標函數提供指導,這其中包含用于訓練CapsuleGAN模型的CapsNet邊際損失。 通過在生成式對抗度量和半監督圖像分類上的評估,我們證明CapsuleGAN在對MNIST和CIFAR-10數據集上的圖像數據分布進行建模時效果要勝過卷積-GAN。
1 引言
? ? ?? 數據的生成建模是一個具有挑戰性的機器學習問題,其在最近已經引起了巨大的興趣,部分原因是生成式對抗網絡(GAN)的發明及其幾個復雜的變體。GAN模型通常由兩個神經網絡組成:(1)一個試圖將從先驗分布中抽取的樣本轉換為具有更高維度的復雜數據分布的生成器,以及(2)一個決定給定的樣本是真實的還是來自生成器分布的判別器。這兩個部分通過對抗游戲而變得訓練有素。 GANs建模在基于真實世界數據(特別是圖像)的高度復雜分布方面顯示出巨大的前景。然而,它們卻因存在難以訓練,并且存在穩定性、梯度消失、模式崩潰和模式覆蓋不足等問題而臭名昭著。因此,存在大量工作通過使用更好的目標函數,復雜的訓練策略,使用結構超參數,以及采用經驗成功的技巧旨在對GANs進行改進。 ? ? ? ??
? ? ?? Radford等人提供了一套體系結構指導方針,制定了一類已廣泛用于創建GAN(稱為深度卷積GANs或DCGANs)的卷積神經網絡,以用于建模圖像數據和其他相關應用。然而最近,Sabour 等引入膠囊網絡(CapsNets)作為CNNs強大的替代品,其可以學習更加均勻地表示圖像,即對圖像中部分對象的姿態和空間關系的變化(由于設計,使CNNs在訓練期間失去的信息)表現得更加穩健。受人眼視覺系統神經元工作機制的啟發,膠囊模型首先由Hinton等人提出。作為局部不變的神經元群體學會識別視覺實體并輸出表示兩者(即這些實體及其與視覺任務相關的屬性(如對象分類))都存在的激活向量。 CapsNets已經被證明在MNIST數字分類和重疊數字分割方面優于CNNs。這激發了GANs是否可以被設計成使用CapsNets(而不是CNNs)以改善其性能的問題。
? ? ?? 我們提出將膠囊添加至GAN框架內的生成式對抗膠囊網絡(CapsuleGAN)。特別地,CapsNets而不是傳統使用的CNNs,被用作我們框架中的判別器。我們證明CapsuleGANs在定性和定量使用生成式對抗?度量(GAM)和使用未標記的GAN生成的圖像與少量標記的真實圖像的半監督分類上比基于CNN的GANs對MNIST 和CIFAR-10 數據集建模表現更好。
? ? ? 本文其余部分安排如下。第2節討論相關工作。在第3節中我們提供GANs和CapsNets的簡要介紹。第4節描述了我們的CapsuleGAN框架及實施指南。我們模型的定性與定量分析在第5部分中給出。第6部分總結全文,并提供未來研究的方向。
2 相關工作
? ? ?? GANs最初是作為前饋多層感知器實施的,但在生成類似于CIFAR-10數據集中的復雜圖像時表現不佳。它們受到了模式崩潰以及訓練不穩定的影響。為了解決這些問題,Radford等人提出了一套指導方針,將GANs設計為一類CNNs,從而產生了DCGANs,其后來一直是GANs網絡架構設計的主流方法。Im等人后來提出使用遞歸神經網絡而不是CNNs作為GANs的生成器,從而創造了一類新的GANs,被稱為生成式遞歸對抗網絡或GRANs。在相關說明中,Odena等人提出了以判別器還充當用于類別條件圖像生成的分類器的形式對GANs的架構改變。這種設計判別器的方法,最近已成為條件GANs的流行選擇。我們的工作與其類似,因為我們提出了對判別器的架構改變。我們提出將GAN判別器設計由CNNs過渡到CapsNets,從而創造了一種名為CapsuleGANs的新型GANs。這個想法可以擴展到的基于編碼器的GANs(比如BiGAN),而BiGAN 的編碼器也可以建模為CapsNet。
3 序言
3.1 生成式對抗網絡
? ? ?? Goodfellow等人借由學習從屬于一個簡單的先驗分布(z~Pz)的點到那些來自于數據分布(x~Pdata)的點之間的轉換來引入GANs作為數據生成建模的框架。該框架包含兩種相互之間進行對抗游戲的模式組成:一個生成器和一個鑒別器。 生成器試圖了解上述情況變換G(z),判別器充當評判者D(.)以確定提供的樣本是源自生成器的輸出分布(G(z)~pG)還是數據分布(x~Pdata),從而給出一個標量輸出(y = 0或1)。生成器的目標是通過生成與實際數據類似的樣本來迷惑判別器,而判別器則是為了準確區分實際數據和生成數據。 這兩種通常被設計為神經網絡的模型,按照公式1所示的目標進行對抗性游戲。
3.2 膠囊網絡
? ? ?? Hinton等人首先引入了膠囊的概念。【Transforming auto-encoders】作為一種學習健壯的無監督圖像表示方法,膠囊是局部不變的神經元組以識別視覺實體的存在并將它們的屬性編碼到矢量輸出中,其矢量長度(限于介于0和1之間)表示實體的存在。例如,每個膠囊可以學習識別圖像中的某些對象或構件。在神經網絡框架中,可以將幾個膠囊分組在一起形成膠囊層,其每個單元產生一個矢量輸出而不是(常規的)標量激活。
? ? ?? Sabour等人引入了一種協議路由機制,用于具有多個膠囊層的深層神經網絡的膠囊內部的交互,其通過成對測定來進行在連續層的膠囊之間傳遞信息。對于在層l的每個膠囊h(l)和在l+1層的每個膠囊h(j)中,耦合系數Cij基于h_i對h_j輸出的預測與其實際輸出之間的一致性(余弦相似度)進行迭代調整,其實際輸出是Cij和h_i的激活產物。因此,耦合系數固有地決定信息如何在膠囊對之間流動。對于包含K類分類的任務,最后一層的CapsNet可以設計成具有K個膠囊,每個膠囊代表一個類別。由于膠囊矢量輸出的長度代表視覺實體的存在,因此最后一層(||vk||)中每個膠囊的長度可被視為圖像屬于特定類(k)的概率。作者引入了訓練CapsNet用于多類別分類的邊際損失LM,如等式2所示:
? ? ?? 其中Tk代表目標標簽,m + = 0.9,m- = 0.1。^ = 0.5,這是一個下降權重系數,防止初始學習縮小最終層中膠囊輸出的長度。作者還以加權圖像重建損失的形式向網絡添加正則化,其中最后一層的矢量輸出vk被表示為重建網絡的輸入。
4 生成式對抗膠囊網絡
? ? ?? GANs主要用于建模圖像數據和相關屬性的分布,以及其他基于圖像的應用,如圖像到圖像翻譯和從文字描述合成圖像。生成器和判別器通常被建模為依據DCGAN指導的深層CNNs。受到其背后強大的直覺和CapsNets在CNNs方面的優越表現驅動,我們設計了在GANs判別器中使用膠囊層替代卷積層的CapsuleGAN框架,其在根本上執行的是二分類任務。
? ? ?? CapsuleGAN判別器在結構上與【Dynamic routing between capsules】中介紹的CapsNet模型類似。一般而言,CapsNets具有大量的參數,因為首先,每個膠囊產生一個向量輸出而不是單個標量,其次,每個膠囊都有與它上面的圖層中的所有膠囊相關聯的附加參數,用于對其輸出進行預測。但是,有必要保持CapsuleGAN判別器中的參數數量較少,原因有兩個:(1)CapsNets是非常強大的模型,很容易在訓練過程中過早地開始對生成器進行嚴厲懲罰,這會導致生成器機完全失效或遭受模式崩潰,以及(2)動態路由算法的當前實現運行速度很慢。重要的是要注意保持CapsNet參數數量較低的第一個原因符合卷積判別器的流行設計,因為其相關的淺層神經網絡在其卷積層中具有較少數量的相對較大尺寸的濾波器。
? ? ?? CapsuleGAN判別器的最后一層包含一個膠囊,其長度表示判別器的輸入是真實圖像還是生成圖像的概率。我們用邊際損失LM替代傳統的二元交叉熵損失來訓練我們的CapsuleGAN,因為LM更適合訓練CapsNets。因此,CapsuleGAN的目標可以如公式3所示。
? ? ?? 在實踐中,我們訓練生成器以最小化LM(D(G(z)),T = 1)而非最小化-LM(D(G(z)), T = 0)。 這基本上在LM訓練生成器的期間消除了下降權重因素^,其中不包含任何膠囊。
5 實驗評估
? ? ?? 我們通過如下所的述一系列隨機生成圖像的實驗來評估CapsuleGANs的性能,其中我們將CapsuleGANs與卷積GANs進行定性和定量的比較。我們對兩個GAN模型賦予相同的生成器結構。使用公開可用的keras-adversarial 和CapsNet-Keras 軟件包來實現卷積GAN和提出的CapsuleGAN模型。
5.1 數據
? ? ?? 我們提供了MNIST和CIFAR-10數據集的實驗結果。 MNIST數據集由尺寸為28*28的手寫數字灰度圖像組成。CIFAR-10數據集包含32*32的彩色圖像,其可分為十個類:飛機,汽車,鳥,貓,鹿,狗,青蛙,馬,船和卡車。
5.2 隨機生成圖像的視覺質量
? ? ?? 我們定性比較使用GAN和CapsuleGAN隨機生成的圖像。圖1a和1b分別顯示了在MNIST數據集上使用標準卷積-GAN和CapsuleGAN生成的圖像。定性地說,CapsuleGAN和標準卷積-GAN都產生了類似質量的清晰圖像,其有時不像任何數字。但是,那使用GAN生成圖像的網格似乎在生成的數字類別方面具有較少的多樣性。圖2a和2b顯示了在CIFAR-10數據集上的實驗結果。這兩個模型都產生了不同種類的圖像,但使用CapsuleGAN生成的圖像比那些使用卷積-GAN生成的圖像看起來更加干凈和清晰。我們在下面的小節提供了我們的定量評估結果以更深入地分析圖像生成性能。?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Figure 1: Randomly generated MNIST images
? ? ? ? ? ? ? ? ? ? ? ? ? ?? Figure 2: Randomly generated CIFAR-10 images
5.3 生成式對抗度量
? ? ?? Im等人通過將每個生成器與對應的判別器進行比對提出了生成式對抗度量(GAM)作為成對比較度量,即給定兩個GAN模型 M1 =(G1,D1)和M2 =(G2,D2),其中G1與D2,G2與D1進行斗爭。它們在真實測試數據集和生成樣本上的分類錯誤比率隨后作為r_test和r_samples參與計算。依據(5),在實踐中,計算分類精度替代誤差以避免數值問題,如等式4和5所示
? ? ? 因此,為了使CapsuleGAN贏過GAN,r_samples <1和r_test約等于1是必須要滿足的。在我們的實驗中,我們在MNIST數據集上實現了r_samples = 0.79和r_test = 1;在CIFAR-10數據集上取得了r_samples = 1.0和r_test = 0.72。因此在該指標上,CapsuleGAN在MNIST數據集上比卷積GAN表現得更好,但兩個模型在CIFAR-10數據集上不分勝負。
5.4 半監督分類
? ? ?? 我們在半監督分類下評估卷積GAN和提出的CapsuleGAN下的性能。在實驗中,我們使用GAN和CapsuleGAN隨機生成50,000張圖像。我們使用將生成的圖像作為未標記實例和n個實際標記樣本的Label Spreading算法,其中n屬于{100,1000,10000}。實驗中我們使用scikit-learn程序包 。表1展示了我們在MNIST上的實驗結果,表2展示了在CIFAR-10上的實驗結果。在大多數實驗設置中錯誤率很高因為我們提供原始像素值作為分類算法的特征。但是,這使我們能夠更客觀地比較兩種模型,而不會受到特征提取方法的影響。結果表明,提出的CapsuleGAN在所有測試值n的邊界為1.7—3.97個百分點的MNIST和0.91—3.22個百分點的CIFAR-10上一直勝過卷積GAN。因此,CapsuleGAN生成的圖像更類似于真實圖像,并且比使用卷積GAN生成的圖像更加多樣化,導致在測試數據集上表現出更好的半監督分類性能。
6 討論和未來工作
? ? ?? 生成對抗網絡是用于復雜數據分布生成建模的非常強大的工具。相關研究正在積極進行中,以進一步改善它們并使其更容易訓練和更穩定。 受到CapsNet對于CNNs在基于圖像的推理任務上的成功啟發,我們提出了生成式對抗膠囊網絡(CapsuleGAN),一種GAN變體,在建模圖像數據時以CapsNets替代CNNs作為判別器。我們提供了設計CapsuleGANs的指導方針以及用于訓練CapsuleGANs的更新的目標函數。我們發現在生成式對抗度量和在MNIST和CIFAR-10數據集上有大量未標記生成圖像和少量實際標記圖像的半監督分類上CapsuleGANs的性能優于卷積GANs。這表明CapsNets應該被認為是用CNNs設計判別器以及未來GAN模型中的其他推理模塊的潛在替代品。
? ? ?? 我們計劃在GAN目標內對邊際損失進行理論分析。我們有目的地沒有包含許多GAN訓練技巧以公平地評估我們的貢獻。本文提供的結果激發了對CapsNets的使用,而不是GAN變種中如BiGAN的CNNs的編碼器。我們認為這是未來研究的重要方向。