戴 宏 盛立杰 苗啟廣
(西安電子科技大學計算機科學與技術學院 西安 710071) (西安市大數(shù)據(jù)與視覺智能關鍵技術重點實驗室(西安電子科技大學) 西安 710071)
近年來,隨著卷積神經(jīng)網(wǎng)絡(convolutional neural networks,CNNs)的出現(xiàn)和不斷發(fā)展,許多分類問題已經(jīng)以極高的精確度被解決.這些基于深度學習的算法模型在大規(guī)模數(shù)據(jù)集上進行訓練時,被期望能夠?qū)W習到一類事物在不同任務中的通用表示,即事物的表征不變性(invariance of representation).但在實際應用中,卷積神經(jīng)網(wǎng)絡受限于訓練用的數(shù)據(jù)集尺寸和樣本的豐富性,很難提取到足夠多的信息以構建樣本的表征,因此,這些經(jīng)過訓練的模型往往無法精確指出同一事物在不同表現(xiàn)形式下的含義.
典型的解決方案是在基于特定任務的數(shù)據(jù)集上進一步微調(diào)這些卷積神經(jīng)網(wǎng)絡模型.然而,要獲得足夠多的標記數(shù)據(jù)來適當?shù)匚⒄{(diào)這些卷積神經(jīng)網(wǎng)絡模型,所需要的成本往往是非常昂貴的.例如,手動進行新數(shù)據(jù)集的標記和對海量權重參數(shù)的調(diào)整等,都會花費大量的時間.為了解決這個問題,作為遷移學習的子研究領域,域適應方法通過將基于源域訓練的模型遷移到與目標域相近的公共表示區(qū)域,以期用最小的代價和基于有限的數(shù)據(jù)樣本完成從源域到目標域乃至開放域的機器學習任務.在機器學習的發(fā)展過程中,這一概念經(jīng)由Donahue等人[1]引入到深度學習領域,并在Yosinski等人[2]的工作中得到了進一步的發(fā)展.
對抗判別域適應(adversarial discriminative domain adaptation,ADDA)[3]算法是這類方法中最為經(jīng)典的算法之一.這種算法巧妙地利用了生成對抗網(wǎng)絡(generative adversarial network,GAN)[4]的思想,通過對域判別器的對抗性訓練來最小化域間差異距離(domain discrepancy distance)[5-6],以完成模型的域間遷移.
除此之外,近年來對神經(jīng)網(wǎng)絡可解釋性的研究表明[7-8],提升卷積神經(jīng)網(wǎng)絡的特征提取能力,也能有效提高卷積神經(jīng)網(wǎng)絡在分類問題中的性能.在此基礎上,受到膠囊網(wǎng)絡(capsule network,Caps-Net)[8-9]在捕獲樣本的表征不變性上具有較強能力的啟發(fā),本文通過將ADDA與膠囊網(wǎng)絡進行結合,提出一種基于膠囊網(wǎng)絡的對抗判別域適應算法.
另一方面,現(xiàn)有研究表明,通過大量堆疊膠囊層以期提升膠囊網(wǎng)絡特征提取性能的做法,會導致中間層的學習性能變差[10-11].這是由于當網(wǎng)絡中存在大量膠囊結構時,層間權重系數(shù)過小,抑制梯度的傳遞過程和學習速率,并造成模型參數(shù)量的幾何級膨脹,易發(fā)生過擬合現(xiàn)象.本文將殘差網(wǎng)絡與膠囊網(wǎng)絡相結合,使其能夠用于構建更深的網(wǎng)絡結構,并能結合膠囊網(wǎng)絡的特性,成對地捕獲淺層特征.殘差結構將改善單純疊加網(wǎng)絡層數(shù)所導致的梯度消失問題,而更深的網(wǎng)絡有利于進一步提取樣本的特征.
在對特征提取網(wǎng)絡進行強化后,本文在ADDA算法的固有缺陷上亦做出了改進.就像大多數(shù)GAN的變體一樣,ADDA所采用的域判別器僅受標注樣本的引導,很少探索數(shù)據(jù)分布的內(nèi)在結構.這將會導致ADDA中作為生成器的卷積基為了“欺騙”域判別器而產(chǎn)生錯誤的梯度,朝著既定的模式更新權重,引發(fā)模式崩塌(mode collapse)[12-13]問題,不利于模型的訓練穩(wěn)定性和總體性能表現(xiàn).ADDA算法正是基于此類對抗性學習算法構建的,因此也間接引入了此類缺陷.
在引入膠囊網(wǎng)絡作為特征提取網(wǎng)絡的同時,應當注意到,膠囊網(wǎng)絡還可以作為自編碼器進行使用.受VAE-GAN[14]的啟發(fā),它結合了變分自編碼器(variational auto-encoder,VAE)和GAN,利用源域和目標域內(nèi)有限的樣本特征擬合邊緣分布,并提供強約束,穩(wěn)定對抗性訓練的過程.因此,本文基于改進的膠囊網(wǎng)絡提出了一種類無關的自編碼器網(wǎng)絡,將其與GAN結合,使用重構損失作為強正則化項,約束單域特征提取網(wǎng)絡,使其盡可能地從目標域捕獲到事物的表征,而不是一味地朝著容易欺騙域判別器的梯度方向演化.進一步的研究顯示,這種新的“編碼-解碼器”結構有能力提供可靠的梯度參數(shù),使得判別網(wǎng)絡能夠在卷積基進行偏移微調(diào)時,保證判別器對源域與目標域內(nèi)樣本共性表征的敏感度.
本文的主要貢獻有3個方面:
1)提出膠囊層的卷積算法CapConv2d,用于構建深層膠囊網(wǎng)絡,并將其與殘差網(wǎng)絡相結合.
2)基于CapConv2d和殘差機制提出了一種新的膠囊網(wǎng)絡架構Res-CapsNet,用以改進ADDA算法.
3)利用膠囊網(wǎng)絡可調(diào)整為自編碼器的特性,通過引入重建網(wǎng)絡R作為解碼器,使用重建損失Lr作為強約束,并據(jù)此給定了新的損失函數(shù),進一步提升了ADDA算法的性能.
為了驗證其有效性,設計了與ADDA相同的一組無監(jiān)督域適應實驗,本文的算法使用更少的訓練樣本取得了更好的效果.對比其他技術路線的域適應算法,在從MNIST[15]到USPS[16]的域適應任務中取得了最先進的性能,并在其他域適應任務中取得了與最新研究成果相近的性能.同時,相比于ADDA算法,本文所提出的算法在ADDA所提供的各項標準任務中均提升了7%~17%的性能;其中,在從SVHN[17]到MNIST的域適應任務提升最為明顯,達到17.7%.
當源域和目標域的數(shù)據(jù)分布不同但2個任務的目標相同時,這種特殊的遷移學習叫作域適應.對于基于單域訓練的模型,域適應算法是一類常見的用于提升模型泛化能力的算法.
之前有大量關于域適應的工作,如ADDA等.而最近的研究工作主要集中在如何利用深層卷積神經(jīng)網(wǎng)絡學習一種特征轉(zhuǎn)換,使得在轉(zhuǎn)換過后的特征空間上,源域和目標域數(shù)據(jù)分布的區(qū)分度最小.換言之,這些研究工作將用于特征提取的CNNs從有標注的源域數(shù)據(jù)集遷移到標記數(shù)據(jù)較為稀疏或無標記的目標域數(shù)據(jù)集上,并使其以相近的性能正常工作.
在這些研究工作中,對抗判別域適應算法展示了對抗性學習填補雙域差異的有效性.然而,基于該算法的研究工作往往存在2個缺陷.首先,當前CNNs的能力并不能很好地提取到樣本特征、保證多域內(nèi)特征圖的表征不變性.其次,這些算法基于對抗性訓練算法框架,僅在域判別器的“真”“假”標簽下進行域混淆或域映射,模型難以訓練,存在性能不穩(wěn)定、模式崩塌等風險.
針對第1個問題,Xu等人[18]提出了一種基于域混淆的域自適應算法(DM-ADA),該算法能在較為連續(xù)的潛藏層空間中保證域的不變性,并指導域判別器計算源域和目標域的差異;Tang等人[19]在相同的技術路線上亦做出了貢獻.基于此類技術路線的算法在像素級別和特征級別進行域的聯(lián)合混淆,提高了模型的健壯性,在多個域適應任務中獲得了較好的性能.
同時,為了提升神經(jīng)網(wǎng)絡的特征提取能力,有研究表明更深的神經(jīng)網(wǎng)絡能夠提取到更多潛藏信息.在構建深層卷積神經(jīng)網(wǎng)絡的過程中,面臨的主要問題之一是梯度消失.當梯度信號從底層反向傳播到頂層時,將會逐漸衰減,從而影響網(wǎng)絡的學習速率和收斂結果.針對這個問題,ResNet[20]和Highway Network[21]通過層與層間的short-cut操作,直接將上一層的信號傳遞到下一層,以緩解深度學習中梯度消失的問題.為了進一步提升卷積神經(jīng)網(wǎng)絡的特征提取能力和可解釋性,Hinton等人[8]和Sabour等人[9]提出了膠囊網(wǎng)絡的概念,旨在建立一種具有空間感知能力的神經(jīng)網(wǎng)絡模型.膠囊網(wǎng)絡的每個單元都存儲一個向量,而不是傳統(tǒng)神經(jīng)網(wǎng)絡中的標量,用來指示該神經(jīng)元在更高的空間維度上提取到的特征信息,如旋轉(zhuǎn)、寬度、組合等樣本實例屬性.憑借這種構思,給定一幅圖像,膠囊網(wǎng)絡能在不同膠囊層間提取到多尺度的圖像實例的組件成分,進而推導出實例的部分與整體的組成方式.
由于每個淺層膠囊向深層膠囊進行信息傳播時不再是標量到標量的映射,而是向量到向量的映射,因此膠囊網(wǎng)絡存在更多需要訓練的權重參數(shù),并需要設計適配于向量計算的梯度傳播算法.此類梯度傳播算法被定義為“路由算法”,如Dynamic Routing[8-9],EM-routing[22],COF(clustering-like objective function)[23],Variational-Bayes Capsule Routing[24].
在膠囊網(wǎng)絡的基礎架構上,最近的一些研究工作也對此做出了相關改進,如HitNet[25],DeepCaps[10],Sovnet[11],Stacked Capsule Autoencoders[26],Proposed CapsNet[27].其中,HitNet使用了一種與Dropout[28]相仿的思路,依靠動態(tài)連接選擇膠囊層,緩解膠囊網(wǎng)絡由于參數(shù)量較大而帶來的過擬合問題;DeepCaps提出了一種3維路由算法,同時改進了膠囊層間的傳播算法,使得構建深層膠囊網(wǎng)絡成為可能;Sovnet則通過跳接的方式,給出了一種新的膠囊網(wǎng)絡架構和路由機制,基于此構建了深層膠囊網(wǎng)絡;Stacked Capsule Autoencoders和Proposed CapsNet則將膠囊網(wǎng)絡推廣到無監(jiān)督學習和人體動作識別問題上.
在域適應任務中,受限于各種條件,例如無法在目標域內(nèi)采集到足量標注數(shù)據(jù),因此在目標域直接進行高質(zhì)量的有監(jiān)督學習是不可能的.所以,域適應算法主要通過無監(jiān)督或半監(jiān)督的方式使得模型可以在目標域上間接訓練或進行自適應.
對于域適應任務,描述如下:對于K分類任務,假設源域數(shù)據(jù)是經(jīng)過標注的優(yōu)良數(shù)據(jù)集Xs,其標簽為Ys.源域數(shù)據(jù)集符合分布ps,同樣地,目標域數(shù)據(jù)集符合分布pt但未知其標簽Yt.現(xiàn)在,任務的目標是得到一個模型Mt,能夠正確地從目標域數(shù)據(jù)中提取特征信息,并將提取到的特征作為輸入,經(jīng)由分類器Ct正確地將目標域內(nèi)的圖像數(shù)據(jù)Xt判別為K個類別中的一個.
由于缺失Yt,因此在目標域上直接進行有監(jiān)督訓練得到Mt和Ct是不可能的,只能間接地進行訓練.一個常見的思路是,在(Xs,Ys)上訓練得到源特征提取模型Ms和分類器Cs,通過算法將其映射到Mt和Ct,然后使用Mt和Ct在目標域數(shù)據(jù)集Xt上進行域適應訓練.域適應是遷移學習中的一種特例,其最大的特點是Cs和Ct有著相同的K個分類目標,且目標在ps及pt具有分布相關性.但這2種分布存在著一定的距離,即域間近似差異距離,如圖1所示.顯然,在這樣的任務前提下,只要通過調(diào)整Ms和Mt縮小域間距離,得到雙域的邊緣分布,就可以消除另行訓練目標域分類器Ct的需求,即在Ms≈Mt的情況下,對于域適應任務滿足Cs≈Ct.這種思路巧妙地轉(zhuǎn)化了任務目標,把對Ct的有監(jiān)督訓練轉(zhuǎn)化為求Ms到Mt的映射方案.

Fig.1 The illustration of domain discrepancy distance圖1 域間近似差異距離示意圖
ADDA是這類方法中的一種經(jīng)典實現(xiàn),該算法架構引入了一個域判別器D,用于鑒別一個特征提取模型M所提取的特征來自ps還是pt.ADDA試圖通過對域判別器D的對抗性訓練來最小化域間距離,當域判別器D無法分辨特征提取模型M所提取的特征來自ps還是pt時,就意味著Ms與Mt已經(jīng)盡可能地靠近,ADDA的算法流程如圖2所示.
該算法與GAN相似:GAN將2個子網(wǎng)絡分別作為生成器G和判別器D相互競爭,在博弈中輪流、逐步提升2個網(wǎng)絡的性能.不同的是,ADDA中沒有生成器G,取而代之的是一個特征提取網(wǎng)絡M,它被訓練成一種能夠按照一定規(guī)則,從服從某種分布p的數(shù)據(jù)中提取樣本特征的網(wǎng)絡,而域判別器D則試圖分辨特征提取網(wǎng)絡M從何種分布中提取樣本特征.在對抗性域適應訓練的過程中,當判別器損失LadvD保持不變,即判別器D的權重被凍結時,特征提取網(wǎng)絡的損失LadvM滿足:

(1)

Fig.2 Overview of ADDA algorithm圖2 ADDA算法流程圖
對抗性訓練中,最小化LadvM的同時也即最大化域判別器的損失LadvD,二者滿足:
LadvM=-LadvD,
(2)
這非常類似GAN的極大值目標.然而,這樣的優(yōu)化目標容易導致域判別器在早期過快收斂.這是因為,在域適應中,需要對源域和目標域使用獨立的特征映射,并且需要同時更新Ms和Mt的權重.而在GAN中,一個生成網(wǎng)絡G試圖模擬一個不變的分布,而不是如同域適應一樣在2種真實存在的分布中尋找邊緣分布.如果采用上述損失函數(shù),當Ms和Mt都在變化時,將會發(fā)生劇烈的振蕩.
為了解決這個問題,Tzeng等人[1,3]提出了域混淆的優(yōu)化目標,在該目標下,對均勻分布的雙域圖像數(shù)據(jù)使用交叉熵損失函數(shù)進行訓練:

(3)
該損失函數(shù)確保了域判別器能以較為穩(wěn)定的狀態(tài)對域特征提取器進行偏移.
ADDA算法雖然巧妙地利用對抗學習的方法避免了直接在源域數(shù)據(jù)集Xs上訓練目標域特征提取模型Mt和目標域分類器Ct,但卻因為使用了對抗性學習而引入了與GAN相同的缺陷.“模式崩塌”是此類缺陷中對ADDA算法影響最大的一種.當訓練任務的目標是希望一組M應該能夠盡可能地捕獲到有用的特征,即經(jīng)過訓練的模型Ms或Mt應盡可能地靠近,以使得域判別器D難以區(qū)分二者.但考慮另一種情況,在交替進行對抗性學習的過程中,如果一個M開始向只能捕獲到噪音的模式Mn傾斜,由于域判別器D只能給出“0”(源域)或“1”(目標域)的二值評價,那么接下來所有的M都會因為域判別器D的指導作用快速向Mn靠近;當模型收斂時,盡管此刻域判別器D無法準確分辨一組M,但并不意味著此次訓練取得了預期的效果.
模式崩塌大部分時候是以一種隨機的方式觸發(fā)的,這通常使得GAN架構非常難以訓練.特別是當模式崩塌只在部分參數(shù)中發(fā)生時,通常很難區(qū)分這組M有多少參數(shù)沒有正確地訓練,從而造成誤判,間接影響到模型的實際性能.
本文借鑒了VAE-GAN的思想,通過融入一個自編碼器來緩解模式崩塌問題,如圖3所示:

Fig.3 Overview of VAE-GAN圖3 VAE-GAN架構圖
編碼器E在服從某種分布的樣本域X中取樣時,輸入一個d維向量x,編碼器E通過非線性函數(shù)y=fθ(x)=s(Wx+b)將其映射為一個d′維的潛藏層變量y.其中,參數(shù)項θ={W,b},W是一個d′×d的矩陣,b是偏置項,s為激活函數(shù).

在訓練這個自編碼器的時候,對n個訓練樣本中的每項,最小化平均重建誤差:
(4)



(5)
在進行訓練時,域判別器D將會對從2個域特征提取網(wǎng)絡得到的特征向量打分,給出“0”(源域)或“1”(目標域)的二值標簽.此時,通過接入一個重建網(wǎng)絡R作為解碼器E,則判別距離為
DDA=1[D(Ms(Xs))=1]+
1[D(Mt(Xt))=0]+
α1×Exs~XsMSE(R(Ms(Xs)),Xs)+
α2×Ext~XtMSE(R(Mt(Xt)),Xt)
.
(6)
相比于直接使用二值標簽作為判別距離,式(6)更能動態(tài)約束域特征提取網(wǎng)絡,促使權重進行小幅度的穩(wěn)定更新,保證潛藏層變量始終處于穩(wěn)定的狀態(tài).本文中,對于膠囊網(wǎng)絡而言,它的膠囊層在此處起到了編碼器的作用,運作在無監(jiān)督學習之下;而保證潛藏層變量的穩(wěn)定,即可保證分類器的性能恒定.換言之,當Mt向著邊緣分布移動時,使用重建網(wǎng)絡的損失作為正則約束,將會更加平滑地進行權重更新;分類器C的性能得益于此,將始終以一個很高的指標,保持著直接在源域上進行有監(jiān)督學習所能達到的分類效果.有關膠囊網(wǎng)絡的內(nèi)容將在第3節(jié)進行介紹.
首先,給定一個域適應任務T,在源域Xs和目標域Xt上具有相同的K個目標.需要說明的是,對于域適應問題,之前的研究工作都只在2個相似的空間中進行域適應,如CoGAN[29]和PixelGAN[30],這是因為,Xs和Xt應具有適當?shù)挠蜷g距離,而不是非常相似或非常不同的2個域,這是域適應問題與廣義遷移學習的主要區(qū)別.
本文所用算法的工作流程分為3個階段:預訓練階段、對抗訓練階段和測試階段,如圖4~7所示.

Fig.4 Pre-train a source encoder CNN and reconstruction-network using labeled source image examples圖4 使用源域標記樣本充分訓練作為編碼器的CNN和重建網(wǎng)絡

Fig.5 Training target encoder by adversarial domain adaptation圖5 采用對抗性域適應訓練目標域編碼器

Fig.6 Overview of discriminator圖6 判別器網(wǎng)絡結構圖

Fig.7 The illustration of testing圖7 測試階段的流程圖
在第1階段,使用來自源域的標注樣本數(shù)據(jù)(Xs,Ys)預訓練一個源域特征提取網(wǎng)絡Ms和分類器Cs.在這個階段,重建網(wǎng)絡R也將被一同訓練,如圖4所示.其中,重建網(wǎng)絡將使用均方誤差作為損失函數(shù):
Lr(Xs,Ms)=Exs~XsMSE(R(Ms(Xs)),Xs).
(7)
對于基于域混淆的域適應任務,顯然滿足Cs=C.在該階段,對于分類任務,所使用的損失函數(shù)為

(8)
為了穩(wěn)定網(wǎng)絡和使得網(wǎng)絡訓練過程更加可控,添加一個超參數(shù)αs作為重建損失Lr的正則化權重.需要注意的是,由于目標域廣泛缺乏可利用的標注數(shù)據(jù),因此,如果在第1階段沒有進行合適的預訓練,進行權值共享的目標域模型Mt將可能很快在對抗性學習過程中偏移到Mn,從而影響后續(xù)階段的訓練效果.
在第2階段,如圖5所示.先用Ms的權重初始化目標域特征提取網(wǎng)絡Mt.將Ms的權重與Mt進行共享的好處是,一個域判別器D在初始時就不能很好地辨別經(jīng)由特征提取網(wǎng)絡M編碼的圖像特征輸入是來自哪個數(shù)據(jù)分布域,避免在對抗學習初期過強的D所引發(fā)的訓練不均衡問題.
在對Ms和Mt進行權值共享之后,將在多輪的對抗性學習過程中修正Mt的參數(shù)權重.Ms和Mt分別在源域Xs和目標域Xt提取特征,然后由域判別器D分辨這些編碼后的特征來自哪個域,進而給出“0”“1”的標簽,分別指示這些編碼信息來自源域或目標域.本文所使用的判別器D是一個簡單的CNN,其結構如圖6所示.
圖6所示的域判別器網(wǎng)絡的結構參考了DCGAN[31]的設置,使用了批歸一化層(batch norma-lization,BN).輸入在經(jīng)過2層卷積和Dropout+BN+LeakyReLU的組合層之后,最終使用一個尺寸為32×2×2的密集連接層輸出二值標簽.對于域判別器D,采用均勻分布的映射情況下的交叉熵損失函數(shù)進行訓練:

(9)
在該階段,重建網(wǎng)絡(解碼器)R不再進行權重調(diào)整.目標域的重建損失Lr(Xt,Mt)為
Lr(Xt,Mt)=Ext~XtMSE(R(Mt(Xt)),Xt).
(10)
基于域判別器D給出的損失LadvM為
LadvM(Xs,Xt,Mt,D)=
-Ext~Xt[lnD(Mt(xt))].
(11)
Mt將根據(jù)式(12)的損失函數(shù)進行權重更新.由于初始化時采用了參數(shù)共享的原因,Mt會逐步向域間的邊緣分布移動.C和R的參數(shù)在此階段將被凍結,不再調(diào)整.

(12)
此外,為了訓練過程更加平穩(wěn),在更新Ms的權重時添加一個權重衰減系數(shù)β,采用Adam[32]對該系數(shù)進行動態(tài)調(diào)整.這是因為:若使用預訓練的Ms初始化Mt,初期采用一樣的步長對Ms進行調(diào)整,容易讓2個域特征提取網(wǎng)絡提前趨同,導致其收斂于局部最優(yōu)點.
在經(jīng)過多輪對抗性訓練后,就得到了一個非對稱的特征映射Mt.這個映射將和Ms無法被區(qū)分,但擁有獨立的權重,能夠基于目標域和源域的邊緣分布提取特征,并使這些特征可以被基于源域訓練的分類器C所接受.
在第3階段,即最后的階段,使用模型Mt和分類器C進行分類性能測試,如圖7所示.具體做法為:在目標域Xt上使用目標域特征提取網(wǎng)絡Mt捕獲特征,即將目標域內(nèi)的樣本數(shù)據(jù)Xt映射到共享的特征空間,并用預訓練階段得到的源域分類器Cs(等價于C)進行分類.為了檢測實驗效果,目標域的樣本標簽Yt僅在此時用于評估模型性能.
在域適應任務中,數(shù)據(jù)集在源域與目標域內(nèi)的識別任務目標是有著不同表示的同一事物.卷積神經(jīng)網(wǎng)絡如果能更好地捕獲到目標對象的表征,那么,在域適應過程中就能更好地在目標域中正確識別目標.要想更好地捕獲樣本的表征,一個重要的途經(jīng)是讓神經(jīng)網(wǎng)絡能夠理解事物的表征不變性(invari-ance)和同變性(equivariance).在廣義上講,不變性是指事物的表示形式不隨變換而變化;而同變性是指事物的表示形式變換前后相等價.大部分現(xiàn)有的CNNs架構受限于2維的卷積架構和池化操作,在提取圖像特征時無法很好地兼顧以上二者.為此,膠囊網(wǎng)絡從神經(jīng)科學中借用了一些想法,即認為人類的大腦被組織成叫作“膠囊”的模塊,每個膠囊都是一個實例化模塊,用于保存一個實體的一般屬性,如尺寸、大小、顏色、邊際輪廓等.
相較于CNNs中2維的特征圖,在膠囊網(wǎng)絡中,每個膠囊都包含由“膠囊向量”組成的張量,張量的每個維度都表示一種基本特征,即一個膠囊表示若干種基本特征的高維組合特征.在膠囊層間,使用路由算法逐層傳遞信息;在膠囊層內(nèi),每個膠囊通過1組綁定的2維卷積核來共享權重.膠囊網(wǎng)絡的結構如圖8所示.

Fig.8 Overview of CapsNet圖8 膠囊網(wǎng)絡架構圖
結合現(xiàn)有研究成果[10],構建更深的膠囊網(wǎng)絡用于ADDA算法的特征提取網(wǎng)絡,將會是改進ADDA算法的重要途徑.
但是,在有關膠囊網(wǎng)絡的諸多研究工作中,最近的研究表明[10-11],將全連接的膠囊層堆疊在一起,會導致中間層的性能降低較差并使得訓練代價在一些數(shù)據(jù)集上幾乎不可負擔.
Hinton等人[8]所提出的標準形式的膠囊網(wǎng)絡的主要缺點是,它只能以全連接的形式進行堆疊連接.因此,如果用這樣的做法構建深層網(wǎng)絡,相當于在MLP(multi-layer perception)模型中堆疊全連接層.大量的實驗表明此類做法在模型性能的提升上作用甚微,且容易導致模型過擬合及收斂緩慢.考慮到ADDA算法并不需要一種非常強大的膠囊化深層特征分類器,本文使用一種近似于傳統(tǒng)CNNs的特征提取網(wǎng)絡,依靠膠囊層對該網(wǎng)絡進行約束,使得其能夠提取到域適應任務中所需的樣本特征用以構建表征不變性信息.
基于這種思路,圖9展示了本文所提出的CapConv2d的實現(xiàn)方案.對于k層的膠囊輸入,為了維持特征圖的尺寸,使用一組等通道的3×3卷積核進行stride=2,padding=1的卷積運算,卷積核采用LSUV[33]進行初始化.卷積結果按通道分別進行加和運算,得到k+1層的膠囊.

Fig.9 Pipeline of CapConv2d圖9 CapConv2d的流程圖
構建深層膠囊網(wǎng)絡用于提取樣本特征的另一個致命缺陷是梯度消失問題.當網(wǎng)絡過深時,梯度會逐漸消失,進而影響模型的收斂.已有大量研究針對這個問題進行了實驗[20-21,34],其中,ResNet和Highway Networks通過跳接各個層的信號,使得梯度能夠保持傳遞的趨勢.受到其啟發(fā),本文將采用膠囊機制構建骨干網(wǎng)絡,并將其與殘差結構相結合,調(diào)整膠囊網(wǎng)絡中的卷積基.圖10展示了ResCapConv2d的結構.

Fig.10 Overview of ResCapConv2d圖10 殘差塊結構圖
在該結構中,輸入一個尺寸為(C,V,H,W)的膠囊特征,先經(jīng)過一次卷積核為3×3,stride=2,padding=1的CapConv2d操作,下采樣到(C,V,H/2,W/2),然后與2輪等尺寸輸出的CapConv2d運算的結果進行加和輸出.
基于CapConv2d和ResCapConv2d,將能夠以類似搭建CNN的方式構建深層膠囊網(wǎng)絡.由此,通過堆疊ResCapConv2d構成膠囊層(primary capsules layer),本文得到了一種新的膠囊網(wǎng)絡結構Res-CapsNet,如圖11所示.

Fig.11 Overview of Res-CapsNet圖11 Res-CapsNet的網(wǎng)絡結構
該網(wǎng)絡結構在保證膠囊網(wǎng)絡使用向量表示樣本特征的同時,改進了其作為編碼器時的卷積基結構,使得其有能力構建更深的膠囊神經(jīng)網(wǎng)絡.
對比Hinton的膠囊網(wǎng)絡,Res-CapsNet首先改進了其僅有1層卷積的特征提取網(wǎng)絡.Res-CapsNet通過bottle-neck[35]的形式,先進行了2次3×3的卷積,將3通道的圖像輸入轉(zhuǎn)為32通道的特征圖,然后通過1×1的卷積進行下采樣,將特征圖的尺寸降到16×16、將特征圖的通道提升到256.通過這種方式提升特征圖的通道數(shù)有助于捕獲到更多的樣本特征,并保證整個網(wǎng)絡的待訓練參數(shù)相對較少.
接著,將256×16×16的特征圖進行膠囊化編碼,并利用ResCapConv2d進行下采樣,轉(zhuǎn)為32個8×8×8的膠囊(capsules),再經(jīng)過2次ResCapConv2d,最終得到32個8×2×2的膠囊,隨后進行層間路由,以一種近似全連接的方式(即Dynamic Routing)映射到10×16的空間.本模型的參數(shù)量為655 360,相比于Hinton模型的1 474 560,參數(shù)量減少了55%.
在10分類的手寫數(shù)字識別問題中,Dynamic Routing算法將膠囊特征映射到10×16的空間,即每個類對應1個16維的特征.Hinton使用非線性映射(即Squash)將其壓縮成1個10維的向量,取L2范式的最大值作為最終的預測值標簽.
在標準形式的膠囊網(wǎng)絡中,對于MNIST的識別問題,Hinton等人用1個16維的向量來表示1個手寫數(shù)字在潛藏層空間的高維特征vj.由于vj又可以被用來表示1個淺層特征屬性組合,因此可以被看作是1個特殊的編碼器輸出值,可以利用解碼器R進行圖像的重建.
在膠囊i到膠囊j的前向傳播過程中,使用Squash來將前1個膠囊的輸入ui映射到[0,1]向量空間:

(13)
在第l層的所有膠囊向量ui到l+1層的膠囊連接中,vj為第j個膠囊的輸出,sj是前一層所有膠囊向量輸入的加權和,滿足:
(14)
其中,Wij是一個可訓練的權重矩陣,通過梯度的逆向傳播進行訓練.cij為一個加權系數(shù),通過Softmax函數(shù)進行計算:
(15)
其中,bij是一個歷史先驗概率,給出了膠囊i到膠囊j的可能性,bij和cij在路由過程中進行動態(tài)調(diào)整,不參與梯度的逆向傳播過程.膠囊間的連接采用Dynamic Routing算法,見算法1.對第k個類的特征屬性組合vk,使用L2范式來描述輸入樣本x是第k個類的可能性.在計算分類誤差Lk時,采用邊緣損失(margin loss):

(16)
其中,在10分類的手寫數(shù)字識別問題中,m+=0.9,m-=0.1,λ=0.5,vk為第k個數(shù)字膠囊(digit capsules)的輸出.當且僅當輸入樣本x屬于第k個類時Tk=1,否則Tk=0.
值得說明的是,在膠囊網(wǎng)絡中,路由算法是可模組化的.因此,在整體架構一定的情況下,可以較為方便地更換其他更好的路由算法,而這將可能極大地提升整個網(wǎng)絡的分類性能[8-9,22-24,26].但本文的研究重點不在于提出一種新的路由算法或驗證何種路由算法更加有效.因此,為了和Hinton首次提出的膠囊網(wǎng)絡作比較,在本文中依舊采用與其相同的路由算法,即Dynamic Routing算法.在不更換路由算法和使用數(shù)據(jù)增廣的情況下,該架構相較于Hinton的方案,使用了45%的待訓練參數(shù)的同時取得了更好或近似的成績.
算法1.Dynamic Routing算法.

輸出:l+1層第j個膠囊的膠囊向量vj.
① 初始化所有歷史先驗概率bij=0;
② forr∈{1,2,…,rs} do
③ fori∈{1,2,…,ql} do
④ci=softmax(bi);
⑤ end for
⑥ forj∈{1,2,…,ql+1} do

⑧vj=Squash(sj);
⑨ end for
⑩ fori∈{1,2,…,ql} do
從膠囊網(wǎng)絡意圖構建實例化參數(shù)向量的角度出發(fā),可以把一個膠囊網(wǎng)絡視為一個編碼器.在本文的實驗中,使用了與Hinton等人相同的參數(shù)設置,即使用一個16維的向量來表示一個手寫字符.類似地,這些實例化參數(shù)將分別或共同定義手寫字符的某個屬性,如筆畫粗細、曲度和長度等.在本文所設計的實驗中,要識別的對象為10個手寫阿拉伯數(shù)字,因此將構建10個數(shù)字膠囊,每個數(shù)字膠囊擁有16個實例化參數(shù).給定一個解碼器,將通過這些實例化參數(shù)重建圖像.重建損失將作為正則項參與整個網(wǎng)絡的訓練,約束數(shù)字膠囊層能夠捕獲到最能代表一個手寫數(shù)字各項表征的參數(shù)組合和權重.
為了給此類模型在手寫數(shù)據(jù)集上尋得合適的重構損失函數(shù),Jayasundara等人[36]研究了不同的重構損失函數(shù)對圖像重構質(zhì)量的影響.為驗證所提出的架構的有效性,本文采用Hinton論文中所使用的最小均方誤差作為重構損失函數(shù).
在Res-CapsNet架構的編碼過程中,使用卷積基作為特征提取網(wǎng)絡M,M(X)是圖像經(jīng)過特征提取后的特征張量.數(shù)字膠囊層將作為編碼器,使用Dynamic Routing算法將特征張量映射為一個10×16維的張量,每個16維的向量將作為一個獨立的膠囊向量,共有10個膠囊與10個手寫數(shù)字實例一一對應.
本文所采用的重建網(wǎng)絡R參考了DCGAN,由4層轉(zhuǎn)置卷積層構成,如圖12所示.

Fig.12 Overview of reconstruction network which using masked capsule vectors圖12 基于膠囊向量輸入的重建網(wǎng)絡R的結構圖
首先,10×16的特征張量會經(jīng)過一個掩碼層,按照正確的標簽進行掩碼計算[8],篩選得到一個16維的向量y;掩碼計算指使用樣本標簽或L2值最大的標簽,從10個向量中選取表示當前類的16維向量.選中的向量輸入一個使用線性整流函數(shù)(rectified linear unit,ReLU)激活的8×8×16的密集連接層,再使用BN進行歸一化后得到一個1 024維的向量.該1 024維的向量即為潛藏層變量,經(jīng)過4層轉(zhuǎn)置卷積層,最終輸出為一個3×32×32的張量,完成圖像的重建.
圖11中,框選標注的卷積基將被作為特征提取網(wǎng)絡M使用,數(shù)字膠囊層將被用作分類器C,其輸出將被輸入重建網(wǎng)絡R,完成圖像的重建工作.判別器網(wǎng)絡D和重建網(wǎng)絡R的架構分別如圖6和圖12所示.C中數(shù)字膠囊層的傳播過程參見算法1.結合式(16),式(8)所示的分類損失函數(shù)為

(17)
結合第2節(jié)內(nèi)容,本文所提出的“基于膠囊網(wǎng)絡的對抗判別域適應算法”如算法2所示.
算法2.基于膠囊網(wǎng)絡的對抗判別域適應算法.

① 使用LSUV初始化Ms和Cs的權重;
② for(Xs,Ys)中的批樣本xs,ysdo
③ 根據(jù)式(7)計算源域重建損失Lr;
④ 根據(jù)式(17)計算分類任務的損失Lcls;
⑤ 基于損失Lcls更新Ms,Cs,R的權重;
⑥ end for
⑦ 將Ms和Cs的權重復制到Mt和Ct;
⑧ 使用LSUV初始化D的權重;
⑨ 凍結R,Ms,Cs,Ct的權重;
⑩ for(Xs,Xt)中的批樣本xs,xtdo

為了驗證本文所提出算法的有效性,在MNIST,USPS,SVHN這3個標準數(shù)字手寫數(shù)據(jù)集上進行了實驗.圖13顯示了來自這3個數(shù)據(jù)集的示例圖像.

Fig.13 Overview of digits-datasets圖13 3個數(shù)據(jù)集概覽
MNIST由60 000個訓練樣本和10 000個測試樣本構成,每個樣本是單通道28×28的灰度圖,包含手寫數(shù)字0~9的圖像,共計10個類別.USPS由10 000個訓練樣本和1 000個測試樣本構成,每個樣本是單通道16×16的灰度圖,共計10個類別.SVHN由73 257個訓練樣本和26 032個測試樣本構成,每個樣本是3通道32×32的彩色圖像,共計10個類別.以上3個數(shù)據(jù)集在10個類別上都有均衡的樣本分布,也具有相同的10個分類目標,但數(shù)據(jù)集間存在尺寸差異、數(shù)據(jù)分布差異,是研究無監(jiān)督域適應任務的標準實驗數(shù)據(jù)集.
本文在域適應任務的相關實驗中,所有在目標域上的訓練都是在無監(jiān)督的情況下進行的,目標域的樣本標簽僅在測試時被使用.在數(shù)據(jù)集采樣上,遵從ADDA設置,從MNIST中隨機抽取2 000張圖片,從USPS中隨機抽取1 800張圖片;而不同于ADDA的實驗設置的是,在進行SVHN→MNIST域適應實驗時,僅使用了30%~50%的MNIST數(shù)據(jù)用于域適應時的無監(jiān)督學習,而ADDA則使用了MNIST全集.
為了使數(shù)據(jù)更加規(guī)整,將MNIST,USPS,SVHN的所有圖像尺寸都調(diào)整為32×32;對于單通道的MNIST和USPS,僅將灰度圖通過復制的方式增廣到3通道,而沒有進行其他圖像處理.在讀取數(shù)據(jù)集時,不同于其他研究工作中所設置的實驗參數(shù)[3,18]的是,本文所做的所有實驗中均沒有使用任何數(shù)據(jù)增強方法.
首先,為了驗證本文所提出的Res-CapsNet的有效性,直接在MNIST,USPS,SVHN數(shù)據(jù)集上進行了有監(jiān)督分類任務測試,并與幾種使用Dynamic Routing算法的膠囊網(wǎng)絡結構進行了性能比對,實驗結果如表1所示.接著,仿照ADDA中的實驗設置,進行了3個方向的域適應任務實驗:MNIST→USPS,USPS→MNIST,SVHN→MNIST,并與其他幾種最新的域適應算法進行了比對,結果如表2所示.

Table 1 The Results on Classification Accuracy表1 分類準確率對比

Table 2 The Results on Classification Accuracy in Domain Adaptation Tasks表2 域適應方法的分類準確率對比 %
首先,為了測試Res-CapsNet的性能,將其與2種流行的CNN和幾種膠囊網(wǎng)絡進行了比較.表1展示了模型在各個測試數(shù)據(jù)集上的分類正確率.
受限于網(wǎng)絡深度,在CIFAR-10數(shù)據(jù)集上,幾種膠囊網(wǎng)絡的性能都仍不及具有更高深度的ResNet-56等.但盡管如此,CapsNet在MNIST手寫數(shù)據(jù)集和SVHN上仍可以取得近似的性能表現(xiàn).
表1中,在進行數(shù)據(jù)增強和集成了7組CapsNet(baseline)之后得到的結果被記為CapsNet(DA).
由表1可知,在不進行數(shù)據(jù)增強和集成學習的情況下,盡管本文所提出的Res-CapsNet的分類正確率略低于或與最先進的膠囊網(wǎng)絡相關研究成果持平,但Res-CapsNet的網(wǎng)絡結構相較于同樣基于Dynamic Routing算法的baseline膠囊網(wǎng)絡,能夠支撐尺寸更大的數(shù)據(jù)集且便于擴展.需要注意的是,在不經(jīng)過數(shù)據(jù)增強和fine-tune的前提下,本文所提出的Res-CapsNet膠囊網(wǎng)絡模型幾乎可以取得SOTA(state-of-the-art),但本文的研究重點不在于獲取能夠直接達到目前最優(yōu)性能的分類器.
在兼顧分類器性能的同時,還需要考慮將其作為自編碼器的架構穩(wěn)定性和易擴展性.例如,HitNet通過添加Hit-or-Miss層的做法提升了膠囊網(wǎng)絡的性能,于同等條件下,在MNIST數(shù)據(jù)集的分類任務上達到了與Res-CapsNet相近的水平,但卻破壞了層間綁定權重的特性,使得其在進行域遷移時無法保證獨立同分布,最終會受到域判別器的影響,大幅度調(diào)整Ms的參數(shù)權值,以一定的概率隨機向Mn塌縮,并在一定輪次后導致網(wǎng)絡無法捕獲到任何目標域內(nèi)樣本的特征.換言之,該網(wǎng)絡如同CoGAN一樣,在一些特殊的復雜情況下無法綁定雙域的特征捕獲網(wǎng)絡M,只能獨立朝著某個隨機方向發(fā)生變化,而不是使二者趨近.
本文在域適應實驗中采取了與表2內(nèi)大多數(shù)算法相近似的實驗設計.
首先,僅在源域上訓練Ms和Cs并直接將其在目標域上進行測試.ADDA算法中所使用的卷積網(wǎng)絡是1個標準的LeNet,屬于傳統(tǒng)CNNs,而本文的方案采用的是基于Res-CapsNet的卷積基.“Source Only”表示模型僅在源域上進行充分訓練而未在目標域上進行域適應訓練,但直接被用在目標域上進行分類測試所得到的結果.通過對比ADDA和本文的方法,由表2可知,對于MNIST→USPS域適應任務,提升了約3.0%;對于USPS→MNIST域適應任務,提升了約14.4%;對于SVHN→MNIST域適應任務,提升了約13.3%,進一步驗證了本文關于膠囊網(wǎng)絡能更好地捕獲樣本表征的猜想.
接著,對于域適應任務,先在源域上訓練Ms和Cs,然后基于本文所提出的Res-CapsNet與重建網(wǎng)絡相結合的算法架構,通過對抗性學習得到Mt.相較于作為基線(baseline)的ADDA算法中相同實驗設置下的分類正確率指標,對于MNIST→USPS域適應任務,提升了7.8%;對于USPS→MNIST域適應任務,提升了0.7%;對于SVHN→MNIST域適應任務,提升了17.7%.
最后,需要注意的是,在特征更為復雜的SVHN→MNIST域適應任務中,本文所用方法僅使用了30%的目標域數(shù)據(jù)用于無監(jiān)督訓練,便取得了更好的成績,且遠超ADDA的性能;另外,該任務中,域適應前后,相較于Source Only(ADDA)到ADDA的提升,本文算法所訓練的域適應模型的分類正確率提升了20.3%,而ADDA算法僅提升了15.9%.在SVHN→MNIST域適應任務上的大幅提升,表明本文所提出的算法具有推廣到復雜情況的潛力.其他方面,在MNIST→USPS的域適應任務中,對比最新的相關研究成果[18],本文所提出的算法取得了SOTA.
除此之外,本文還和其他幾種最新的相關研究成果進行了比對,本文所提出的算法在使用更少的參數(shù)量的情況下,取得了超過或與它們相近的成績.盡管在USPS→MNIST和SVHN→MNIST任務中,本文沒有取得SOTA,但是,包括ADDA在內(nèi),其他相關研究工作普遍使用了更復雜的網(wǎng)絡結構或采用了數(shù)據(jù)增強等其他技術手段,并在此基礎上取得了當前的性能表現(xiàn).相比之下,本文的研究工作主要著力于改進ADDA的2個缺陷——特征提取能力和模式崩塌問題,而不是組合、使用其他技巧來取得新的SOTA.因此,雖然沒有在所有標準任務中達到SOTA,但拋開其他網(wǎng)絡訓練技巧,本文的工作依舊取得了較好的成果,更具有說服性和啟發(fā)性的意義.
針對數(shù)據(jù)分布不同但任務相同的域適應任務,本文通過對抗性學習得到一種特征轉(zhuǎn)換方案,使得在轉(zhuǎn)換過后的特征空間上源域和目標域分布的區(qū)分度達到最小,以此繞過在標簽稀疏或缺失的目標域上無法進行有監(jiān)督學習的障礙,并利用源域的標注數(shù)據(jù)提高模型整體的訓練質(zhì)量,提升模型在目標域上進行無監(jiān)督遷移學習的性能表現(xiàn).
簡而言之,從ADDA的固有缺陷著手,受到了膠囊網(wǎng)絡的啟發(fā),本文對膠囊網(wǎng)絡的架構進行了一定改進,提出了Res-CapsNet架構并與ADDA算法相結合,極大地提升了ADDA算法的性能表現(xiàn).為了使得基于對抗性學習方案的ADDA算法更加穩(wěn)定、有效地最小化域間距離,本文融入VAE-GAN的思想,將Res-CapsNet調(diào)整為自編碼器混入網(wǎng)絡中.最后,在多個復雜程度不同的域適應任務中,通過實驗驗證了本文所提算法的有效性.
今后的研究工作及展望是嘗試探究膠囊網(wǎng)絡所使用的路由算法對性能的影響,以期提高算法的整體穩(wěn)定度和樣本特征提取性能.