姚紅革 董澤浩 喻鈞 白小軍, 2
識(shí)別并分離高度重合數(shù)字對(duì)象的問題由Hinton等[1]于2002 年提出,多年來也有其他研究者在該領(lǐng)域進(jìn)行了研究,如Goodfellow等[2]使用深度卷積網(wǎng)絡(luò),Ba等[3]使用視覺注意力機(jī)制和Greff等[4]使用深度無監(jiān)督分組進(jìn)行嘗試.他們均是利用對(duì)象形狀的先驗(yàn)知識(shí)進(jìn)行分離.在性能最好的Ba等[3]的研究中雖然實(shí)現(xiàn)了95%的識(shí)別率,但圖片也只是4%的重疊率.
直到Sabour等[5]所研究的膠囊網(wǎng)絡(luò)CapsNet面世,重疊手寫體識(shí)別成功率才有了大幅提高,當(dāng)重疊率80%時(shí)識(shí)別率可達(dá)95%.膠囊網(wǎng)絡(luò)的主要特征是,使用膠囊神經(jīng)元代替了普通神經(jīng)元,使用向量代替了在網(wǎng)絡(luò)中流通的標(biāo)量.膠囊神經(jīng)元除了承載著網(wǎng)絡(luò)權(quán)值的聯(lián)系之外,其向量?jī)?nèi)部也存在著維度上的聯(lián)系,豐富了圖像特征的表達(dá)與提取能力.在CapsNet 中使用了迭代路由算法,該算法用向量?jī)?nèi)積來表示向量方向的同向程度,動(dòng)態(tài)路由通過迭代來實(shí)現(xiàn).CapsNet 將最突出的向量作為分類結(jié)果輸出,向量的突出程度跟膠囊內(nèi)與輸出向量方向相近的向量數(shù)目和模長(zhǎng)正相關(guān).為避免在使用內(nèi)積作為衡量手段出現(xiàn)無上界的情況,對(duì)向量進(jìn)行了輸出前的壓縮.
CapsNet 的優(yōu)勢(shì)是簡(jiǎn)單易實(shí)現(xiàn),但在使用它進(jìn)行全重疊數(shù)字圖片識(shí)別時(shí)發(fā)現(xiàn),由于網(wǎng)絡(luò)深度寬度不足,中間向量的規(guī)模太小,同時(shí)內(nèi)積路由算法效率低.這些因素降低了網(wǎng)絡(luò)的速度,影響了網(wǎng)絡(luò)的聚類效果,從而使網(wǎng)絡(luò)對(duì)圖像特征提取不夠充分,在分類時(shí)表現(xiàn)不佳,導(dǎo)致重構(gòu)出來的分離圖片不夠準(zhǔn)確和清晰.為了提高對(duì)全重疊手寫數(shù)字的識(shí)別精度,基于CapsNet,本文提出以下改進(jìn)方法:
1)首先對(duì)膠囊網(wǎng)絡(luò)CapNet 進(jìn)行加深.在它的Conv1 層之后加入一層卷積層 “卷積層2”,提高目標(biāo)特征提取能力;另外在CapNet 的DigitCap 之后,對(duì)應(yīng)本文 “初級(jí)膠囊層(膠囊部分)”之后加入一層全連接膠囊層 “聚類膠囊層1”,增加聚類能力以增強(qiáng)網(wǎng)絡(luò)識(shí)別能力,參見圖1(a).
圖1 深度膠囊網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.1 Deep capsule network structure diagram
2)提高膠囊維度為16 維.這樣使各個(gè)膠囊層膠囊統(tǒng)一維度為16 維,既提高了膠囊對(duì)圖片特征表達(dá)能力,減少維度轉(zhuǎn)換時(shí)系統(tǒng)消耗和信息的丟失和變異,也便于各層間信息的傳輸.
3)用EM (Expectation-maximization)向量聚類取代原路由聚類,提高聚類效果.膠囊網(wǎng)絡(luò)中向量神經(jīng)元將低級(jí)特征預(yù)測(cè)為高級(jí)特征,輸出向量的分布符合以不同高級(jí)特征為期望的混合高斯模型[5].混合高斯模型是有限混合概率分布模型,其可用EM 算法找到最大似然估計(jì)[6?7].通過假設(shè)隱變量的存在,簡(jiǎn)化似然函數(shù)方程的求解[6?8].基于此特點(diǎn),本文將EM 聚類改為EM 向量聚類,并用它取代膠囊網(wǎng)絡(luò)中的迭代路由,提高了聚類效果.也減少中間變量的產(chǎn)生,降低顯存以及空間消耗,總體提高系統(tǒng)的運(yùn)行效率.
4)設(shè)計(jì)了一個(gè)并行重構(gòu)網(wǎng)絡(luò).因?yàn)橐蛛x兩個(gè)重疊的數(shù)字,需要取兩個(gè)模數(shù)最長(zhǎng)的向量來進(jìn)行重構(gòu),因此數(shù)字重構(gòu)網(wǎng)絡(luò)必須要設(shè)計(jì)成并行的兩個(gè)網(wǎng)絡(luò)結(jié)構(gòu),才能對(duì)模數(shù)最長(zhǎng)的兩個(gè)向量分別并行重構(gòu).依據(jù)這一想法,本文設(shè)計(jì)了一個(gè)雙并行重構(gòu)網(wǎng)絡(luò)結(jié)構(gòu),實(shí)現(xiàn)了對(duì)兩個(gè)全重疊手寫數(shù)字的分離重構(gòu),參見圖1(b).
膠囊網(wǎng)絡(luò)的思想最早出現(xiàn)于Hinton等[7]提出的分組神經(jīng)元.基于此,Sabour等[5]進(jìn)一步提出膠囊間的動(dòng)態(tài)路由算法,該算法使膠囊進(jìn)入了初級(jí)應(yīng)用階段.盡管是初級(jí)應(yīng)用,但它實(shí)現(xiàn)了目標(biāo)屬性間的 “等變性” (Equivariance),“等變性”保留有圖像各部分信息間的關(guān)聯(lián).而在此之前的神經(jīng)網(wǎng)絡(luò)只是實(shí)現(xiàn)空間不變性,空間不變性實(shí)現(xiàn)的一般方法是卷積神經(jīng)網(wǎng)絡(luò)(Convolutional neural network,CNN)的池操作,空間不變性與 “等變性”比較丟失了圖像各部分間的關(guān)聯(lián)信息.它的實(shí)現(xiàn)要?dú)w因于網(wǎng)絡(luò)內(nèi)的動(dòng)態(tài)路由算法,但動(dòng)態(tài)路由算法優(yōu)化能力較弱,于是 Wang等[9]通過引入耦合分布KL (Kullback-Leibler)散度來優(yōu)化動(dòng)態(tài)路由,使膠囊網(wǎng)絡(luò)性能獲得一定的提升.膠囊網(wǎng)絡(luò)的又一應(yīng)用是CapsGan[10]網(wǎng)絡(luò),它使用膠囊網(wǎng)絡(luò)作為生成式對(duì)抗網(wǎng)絡(luò)(Generative adversarial network,GAN)中的甄別器,比CNN 的GAN 獲得更好的生成效果.以上方法均是對(duì)膠囊網(wǎng)絡(luò)優(yōu)化和新領(lǐng)域的應(yīng)用,在網(wǎng)絡(luò)構(gòu)造上基本沒有改變.
LaLonde等[11]和 Rajasegaran等[12]對(duì)膠囊網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行了加深.LaLonde 等通過卷積,讓所有膠囊沿深度方向作為輸入進(jìn)行轉(zhuǎn)換,包含在較高層的膠囊里.加深膠囊層必定增加動(dòng)態(tài)路由量,引起計(jì)算復(fù)雜度的增加.為了降低計(jì)算復(fù)雜度,Rajasegaran等[12]采用了如下措施: 在初始階段減少路由迭代次數(shù);在路由中間層使用三維卷積,采用參數(shù)共享而減少參數(shù)的數(shù)目;同時(shí)提出本地化路由代替完全連接的路由.新加深的膠囊網(wǎng)絡(luò)具有捕獲更細(xì)致信息的能力,增強(qiáng)了它的實(shí)際應(yīng)用能力,可以處理比MNIST 數(shù)據(jù)集更復(fù)雜的數(shù)據(jù)集.本文對(duì)膠囊網(wǎng)絡(luò)的加深主要體現(xiàn)在前端的特征提取和后端的分離方面,目的是增強(qiáng)對(duì)重疊手寫體的識(shí)別能力和分離能力.
將EM 算法應(yīng)用于膠囊路由也起源于Hinton等[13]的研究之作,底層膠囊的姿態(tài)矩陣通過與轉(zhuǎn)換矩陣相乘而得到高層膠囊的姿態(tài)矩陣,這個(gè)過程可以看作是每一個(gè)底層膠囊對(duì)高層膠囊所表達(dá)圖像特征的投票.投票通過分配一個(gè)權(quán)重系數(shù)來實(shí)現(xiàn).這個(gè)系數(shù)是由EM 算法進(jìn)行循環(huán)更新的,通過EM算法系統(tǒng)將底層膠囊的輸出路由給高層膠囊.底層膠囊與高層膠囊的這種聯(lián)系反應(yīng)的是圖像中實(shí)體的整體與部分間關(guān)系,它使膠囊網(wǎng)絡(luò)具有了對(duì)所關(guān)注實(shí)體的視角不變性.EM 算法在文獻(xiàn)[13]中是直接應(yīng)用,并未改動(dòng).本文依據(jù)輸入向量的獨(dú)立性對(duì)EM算法的E (Expectation)步進(jìn)行了改進(jìn),并依信息熵重新定義了混合度,優(yōu)化了膠囊間的迭代,加速其收斂,并將其用于手寫體數(shù)字分離中,相較于文獻(xiàn)[13]分離效果有了明顯提高.
Mixup[14]和Between-Class learning[15]是兩個(gè)對(duì)類別不同的樣本進(jìn)行重疊的算法,可以是兩個(gè)圖片按不同混合比的重疊.其目的是通過豐富訓(xùn)練樣本的狀態(tài)來提高所訓(xùn)練模型的泛化能力.Mixup和Between-Class learning 算法說明將不同類別的圖片重疊來訓(xùn)練模型能提高模型的分類能力.這一點(diǎn)與本文方法相同.但這兩種方法目的是分類,不能將混合的像素按圖像本來分離.本文方法是基于細(xì)致識(shí)別下的重疊圖片的重構(gòu)分離.
基于膠囊網(wǎng)絡(luò)CapsNet,本文構(gòu)建了一個(gè)以EM為向量聚類的深度膠囊網(wǎng)絡(luò)(Deep capsule network,DCN),其網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示,由分類網(wǎng)絡(luò)(參見圖1(a))和重構(gòu)網(wǎng)絡(luò)(參見圖1(b))組成.
因?yàn)榫矸e層在神經(jīng)網(wǎng)絡(luò)中具有提取多級(jí)特征的能力,而且可以通過卷積核的共享降低運(yùn)算量.因此在DCN 中,使用了兩個(gè)卷積層對(duì)輸入圖像的特征進(jìn)行提取,其中卷積層1 使用512 個(gè) 9×9 的卷積核對(duì)圖像進(jìn)行卷積在卷積層2 中使用256 個(gè)5×5 卷積核進(jìn)行卷積,最終得到 256×16×16 的特征圖.
然后構(gòu)建一個(gè)初級(jí)膠囊層,其前半部分通過多重卷積獲得一組 32×16×6×6 的標(biāo)量,由其后半部分的膠囊生成一組由16 維向量組成的1152 個(gè)向量神經(jīng)元,每個(gè)神經(jīng)元輸出一個(gè)16 維的向量.在每個(gè) 6×6 的網(wǎng)格中,設(shè)定權(quán)重共享給每一個(gè)膠囊,然后對(duì)每個(gè)輸出向量進(jìn)行輸出.
接下來使用兩個(gè)聚類膠囊層進(jìn)行最終的分類,增加的聚類膠囊層1 是對(duì)初級(jí)膠囊中的向量,通過EM 向量聚類進(jìn)行初步篩選,形成較為高級(jí)的有明顯傾向性的高級(jí)向量給聚類膠囊層2,然后再由聚類膠囊層2 進(jìn)行第2 次EM 向量聚類,細(xì)選出可用于表示不同類別信息的向量.在每次聚類之后是壓縮.聚類的過程使得高級(jí)特征更集中,壓縮的目的是為了限制向量的模長(zhǎng).模長(zhǎng)被限制于0~ 1 之間,用以表達(dá)其所屬類別的概率.再由最后一層產(chǎn)生10 個(gè)16 維的向量代表0~ 9 的10 分類結(jié)果,作為輸出.
在檢測(cè)重疊手寫數(shù)字時(shí),選取輸出模最長(zhǎng)的前兩個(gè)向量作為最可能重疊的結(jié)果進(jìn)行輸出.如果模長(zhǎng)第二的向量模長(zhǎng)不足0.1,就認(rèn)為是由兩個(gè)分類相同的數(shù)字疊加而成.
重構(gòu)由重構(gòu)網(wǎng)絡(luò)完成,本文重構(gòu)網(wǎng)絡(luò)是由兩個(gè)結(jié)構(gòu)相同的3 層全連接網(wǎng)絡(luò)構(gòu)成,詳見圖1(b).重構(gòu)時(shí)選取 “分類網(wǎng)絡(luò)”輸出的模長(zhǎng)最長(zhǎng)的兩個(gè)向量,為避免其余8 個(gè)向量的干擾,將其全部值置為“零”.然后將這10 個(gè)16 維向量,首尾接續(xù)分別傳入兩個(gè)并行重構(gòu)網(wǎng)絡(luò)進(jìn)行重構(gòu).
底層膠囊所生成的向量可以認(rèn)為其代表了某種低級(jí)特征,該低級(jí)特征通過姿態(tài)變換矩陣可對(duì)高級(jí)特征進(jìn)行預(yù)測(cè),這種預(yù)測(cè)是對(duì)向量的方向以及維度的變換,其表達(dá)式為
其中,U(l+1,j)表示在第i層中第j個(gè)膠囊的預(yù)測(cè)向量,即預(yù)測(cè)結(jié)果.W(i,j)表示由l層的i膠囊輸出到第l+1 層中第j個(gè)膠囊特征的姿態(tài)變換矩陣.V(l,i)表示第l層中第i個(gè)膠囊的輸出向量.
膠囊網(wǎng)絡(luò)中向量神經(jīng)元將低級(jí)特征預(yù)測(cè)為高級(jí)特征,輸出向量的分布符合以不同高級(jí)特征為期望的混合高斯模型[5].基于此,將EM 聚類改造成為EM 向量聚類,用它取代膠囊網(wǎng)絡(luò)中的迭代路由,以優(yōu)化系統(tǒng),提高其運(yùn)行效率.
2.2.1 EM 向量聚類
經(jīng)過姿態(tài)變換方程產(chǎn)生的一組預(yù)測(cè)向量是符合混合高斯分布的[5],如式(2)所示,經(jīng)過多輪迭代獲得概率最大的分布函數(shù)[6?7],作為膠囊的輸出.
其中,j代表類別,X為輸入向量,αj為第j類的概率且 Σjαj=1,μj為第j類的向量期望,Σj為協(xié)方差矩陣.
因?yàn)榈图?jí)特征來自于輸入圖像的變換結(jié)果,所產(chǎn)生的向量之間可以認(rèn)為是相互獨(dú)立的,因此協(xié)方差矩陣是一個(gè)對(duì)角陣,這樣就相當(dāng)于輸入X在各分量解耦.所以本文相較于標(biāo)準(zhǔn)EM 迭代算法進(jìn)行了改動(dòng),即
因?yàn)閷⑤斎敕植家暈榛旌细咚狗植歼M(jìn)行聚類,聚類中心向量是類內(nèi)向量的加權(quán)平均,無法通過模長(zhǎng)來衡量顯著性.所以引入一個(gè)標(biāo)量aj作為縮放尺度來衡量顯著性,并在輸出之前代入asquashing 函數(shù)來控制輸出向量的模長(zhǎng).
用EM 聚類結(jié)果得到輸出高斯分布的方差,方差越大意味著預(yù)測(cè)向量分布越接近均勻分布,說明這個(gè)輸出膠囊輸入的預(yù)測(cè)結(jié)果并不明顯接近同一種特征,此時(shí)aj應(yīng)該小;方差越小意味著分布越集中,說明這個(gè)輸出的輸入的預(yù)測(cè)結(jié)果大致相近,此時(shí)aj應(yīng)該大.基于這種思想選擇使用信息熵Cj來輔助aj衡量特征的顯著程度[6?7, 16],Cj表達(dá)式可定為
當(dāng)分布的方差越小時(shí)Cj的值越小,因此通過最大化Cj的方式實(shí)現(xiàn)迭代優(yōu)化.為防止無上限的情況,在此采用sigmoid 激活函數(shù).
2.2.2 算法流程
EM 向量聚類算法的流程如圖2 所示.
圖2 EM 向量聚類算法流程圖Fig.2 Flow chart of EM vector clustering algorithm
在已知Uij,Sj,aj的情況下,其中Uij表示l層的第i個(gè)膠囊輸出經(jīng)過姿態(tài)轉(zhuǎn)換矩陣處理后向l+1層的第j個(gè)高層膠囊輸出的向量預(yù)測(cè);Sj表示l+1層膠囊的輸出方向;為l+1 層膠囊的輸出方向的方差;aj表示其特征的顯著程度.EM 向量聚類的具體算法流程如下.
算法 1.EM 向量聚類算法
在進(jìn)行多次迭代之后,以概率aj作為j膠囊的輸出尺度,對(duì)輸出的方向向量進(jìn)行縮放,得到最終的輸出向量,即
式中,asquashing 為壓縮函數(shù),參見第2.3 節(jié).
為了防止膠囊向量在后續(xù)運(yùn)算中無限增長(zhǎng)導(dǎo)致網(wǎng)絡(luò) “爆炸”,同時(shí)又能用其模長(zhǎng)表示分類概率,使用一個(gè)非線性函數(shù)對(duì)這些向量進(jìn)行壓縮,并使模長(zhǎng)維持在0~ 1 之間.這也在一定程度上抑制了與當(dāng)前高級(jí)特征相關(guān)性小的向量.壓縮函數(shù)asquashing為
其中,Vj表示最終輸出向量,Sj表示在進(jìn)行壓縮之前的原始輸出,aj是縮放尺度.
為了實(shí)現(xiàn)對(duì)并行重構(gòu)網(wǎng)絡(luò)(見圖1(b))的訓(xùn)練,構(gòu)建了一個(gè)并行重構(gòu)損失函數(shù)Lrecon,通過使用均方誤差計(jì)算輸入圖片與輸出圖片的差來實(shí)現(xiàn),即
式中,ImageGT為疊加前的真值圖像,Imagerecon為重構(gòu)后的結(jié)果,δ為重構(gòu)損失的縮放倍數(shù).當(dāng)重構(gòu)損失在總損失中占比過大時(shí)會(huì)導(dǎo)致網(wǎng)絡(luò)的過擬合,本文使用δ取值為0.0005 對(duì)重構(gòu)損失進(jìn)行縮放.
訓(xùn)練時(shí)選取模長(zhǎng)最大的兩個(gè)向量,同時(shí)放入兩個(gè)重構(gòu)網(wǎng)絡(luò)進(jìn)行訓(xùn)練.將上式的重構(gòu)誤差加入總損失函數(shù)中,參見第2.5 節(jié),可以使重構(gòu)網(wǎng)絡(luò)與分類網(wǎng)絡(luò)一起進(jìn)行共同訓(xùn)練.
因?yàn)橹丿B手寫數(shù)字識(shí)別,需要進(jìn)行兩分類,也即需要最后輸出的向量中有兩個(gè)模長(zhǎng)較長(zhǎng)的向量.由于是雙向量結(jié)果,所以要避免這兩個(gè)向量間的競(jìng)爭(zhēng).在此選擇使用Margin Loss 作為代價(jià)函數(shù),它適用于雙分類,在不同類識(shí)別結(jié)果之間不進(jìn)行競(jìng)爭(zhēng),其具體形式為
式中,Lcls表示k個(gè)分類的膠囊的分類誤差,Tk表示第k分類的標(biāo)簽值.
為防止過優(yōu)化,將式(9)中的m?和m+分別設(shè)定為0.1與0.9.若為正標(biāo)簽,則式(9)的前半部分有效,希望正標(biāo)簽的膠囊輸出的向量的模長(zhǎng)vk保持在0.9 以上;若為負(fù)標(biāo)簽,則式(9)的后半部分有效,希望負(fù)標(biāo)簽的膠囊輸出的向量的模長(zhǎng)vk保持在0.1 以下.最后,將每個(gè)分類的損失函數(shù)值進(jìn)行相加,再與重構(gòu)損失Lrecon聯(lián)合起來形成最終的損失函數(shù)值Ltotal,即
通過式(10)進(jìn)行分類網(wǎng)絡(luò)與重構(gòu)網(wǎng)絡(luò)的聯(lián)合訓(xùn)練.
本實(shí)驗(yàn)采用的數(shù)據(jù)集為3 種: 1)MNIST 原數(shù)據(jù)集;2)全重疊數(shù)據(jù)集;3)前兩種數(shù)據(jù)集的混合集.其中第2 種是由MNIST 原數(shù)據(jù)集生成,生成方式是將MNIST 數(shù)據(jù)集的一半(30000 幅圖像),與另一半(30000 幅圖像)進(jìn)行疊加生成,重疊率為100%,也即全重疊生成,疊加后效果如圖3 所示.
圖3 全重疊數(shù)據(jù)集Fig.3 Full-overlapping dataset
標(biāo)簽是對(duì)原one-hot 標(biāo)簽進(jìn)行處理后得到的,如表1 所示.若由兩個(gè)不同數(shù)字疊加,將這兩個(gè)數(shù)字的位置置為1,其他位置置為0;如果是由相同數(shù)字疊加,將其位置置為2,其他位置置為0.
表1 數(shù)據(jù)集標(biāo)簽Table 1 Dataset label
3.2.1 EM 向量聚類模長(zhǎng)
輸出向量的模長(zhǎng)是對(duì)分類概率的度量,模長(zhǎng)越長(zhǎng)屬于該類的概率越高.它也是聚類效率和效果的反映,因?yàn)榫垲愂菍⒄_的類別向量進(jìn)行放大,提示降低不正確類別向量模長(zhǎng),所以越快達(dá)到高模長(zhǎng),說明所用聚類形式的效率越高,效果越好.
在DCN 結(jié)構(gòu)上分別用MNIST 數(shù)據(jù)集、全重疊手寫數(shù)字?jǐn)?shù)據(jù)集以及混合數(shù)據(jù)集進(jìn)行訓(xùn)練.對(duì)全重疊圖片進(jìn)行測(cè)試,以測(cè)試不同聚類迭代次數(shù)R下EM 向量聚類的模長(zhǎng),見圖4 所示.以下本文實(shí)驗(yàn)不做特別說明時(shí)其值均為3,并與CapsNet 路由模長(zhǎng)進(jìn)行對(duì)比,如表2 所示,其為分別進(jìn)行10 次測(cè)量的均值.
圖4 不同聚類次數(shù)下輸出向量的模長(zhǎng)Fig.4 Module length of output vector under different clustering times
從表2 和圖4 可發(fā)現(xiàn),對(duì)重疊數(shù)字識(shí)別時(shí),不同的聚類次數(shù)對(duì)輸出向量的模長(zhǎng)有著相當(dāng)大的影響.在進(jìn)行聚類之前,最長(zhǎng)的輸出向量只有不到0.1的長(zhǎng)度,而在進(jìn)行了3 次聚類之后,正確的向量的長(zhǎng)度已經(jīng)達(dá)到了0.85 以上(由于壓縮函數(shù)的存在,向量的長(zhǎng)度不能超過1).從表2 可見,DCN 所用EM 向量聚類效果,在第3 輪聚類時(shí)(R=3),在3個(gè)數(shù)據(jù)集下模長(zhǎng)都明顯高于CapsNet 的路由聚類,說明EM 向量聚類效果較路由算法更好.
表2 在不同聚類次數(shù)下的激活向量模長(zhǎng)Table 2 Active vector module length under different clustering times
3.2.2 EM 向量聚類速度
在DCN 中一共進(jìn)行兩次EM 聚類,分別在初級(jí)膠囊層與聚類膠囊層1 之間和聚類膠囊層1與聚類膠囊層2 之間,見圖1(a).因?yàn)榫垲愂且粋€(gè)無監(jiān)督過程,該過程并不對(duì)學(xué)習(xí)參數(shù)進(jìn)行保存,所以在每一次網(wǎng)絡(luò)進(jìn)行聚類時(shí),都先初始化參數(shù)然后多次迭代.迭代過程無論在訓(xùn)練還是測(cè)試中都會(huì)進(jìn)行,是整個(gè)網(wǎng)絡(luò)中最耗時(shí)的部分.表3 是在不同的聚類次數(shù)之下網(wǎng)絡(luò)進(jìn)行一個(gè)Epoch 所花費(fèi)的時(shí)間(實(shí)驗(yàn)平臺(tái)是單張titan XP).從表3 可知,每次聚類中每增加一次迭代,訓(xùn)練時(shí)間都會(huì)增加近三分之一(對(duì)比進(jìn)行一次聚類的網(wǎng)絡(luò)).
表3 參數(shù)量與不同聚類次數(shù)下的單Epoch 消耗時(shí)間(s)Table 3 Parameter quantity and single epoch consumption time under different clustering times (s)
因?yàn)镈CN 是原CapsNet 網(wǎng)絡(luò)的加深與擴(kuò)寬,DCN 的參數(shù)量達(dá)到了原CapsNet 網(wǎng)絡(luò)的2.45 倍(增加140%),所以DCN 網(wǎng)絡(luò)相較于CapsNet 網(wǎng)絡(luò)能夠提取更多細(xì)粒度特征,識(shí)別能力更強(qiáng).但DCN 較CapsNet 的運(yùn)行時(shí)間也增加了40%,如表3所示.
DCN 較CapsNet 在增加網(wǎng)絡(luò)深度與寬度,從而導(dǎo)致訓(xùn)練參數(shù)量增加140%的情況下,對(duì)相同訓(xùn)練數(shù)據(jù)量的訓(xùn)練時(shí)間僅增加40%,縮短的運(yùn)行時(shí)間可以認(rèn)為是EM 向量聚類算法較CapsNet 迭代路由算法快的時(shí)間.這說明單純就DCN 的EM 向量聚類算法,與CapsNet 的向量?jī)?nèi)積迭代路由算法比較,在速度上前者有明顯優(yōu)勢(shì).
在DCN 中,分別用迭代路由和EM 算法對(duì)單Epoch 消耗時(shí)間進(jìn)行了實(shí)驗(yàn),結(jié)果如表4 所示.在相同條件下,對(duì)于不同的迭代次數(shù)R,EM 算法較迭代路由算法消耗時(shí)間減少約30%~ 40%.
表4 DCN 不同聚類算法單Epoch 消耗時(shí)間(s)Table 4 Single epoch consumption time of different DCN clustering algorithms (s)
3.3.1 不同數(shù)據(jù)集上的識(shí)別率及對(duì)比
為了檢測(cè)DCN 對(duì)全重疊手寫數(shù)字?jǐn)?shù)據(jù)集的識(shí)別率,用MNIST 數(shù)據(jù)集、全重疊手寫數(shù)字?jǐn)?shù)據(jù)集和這兩種混合數(shù)據(jù)集訓(xùn)練,對(duì)得到的網(wǎng)絡(luò)模型進(jìn)行對(duì)比實(shí)驗(yàn).設(shè)定了兩組實(shí)驗(yàn),分別對(duì)無重疊的字體識(shí)別以及對(duì)全重疊字體進(jìn)行識(shí)別.
由表5 可知,DCN 使用MNIST與全重疊數(shù)據(jù)集混合訓(xùn)練得到的網(wǎng)絡(luò)不僅在重疊目標(biāo)識(shí)別任務(wù)上取得了96.55%的正確率,在無重疊的識(shí)別上的正確率也提高到了95.7%.
表5 DCN 識(shí)別手寫數(shù)字效果對(duì)比 (%)Table 5 Effect comparison of handwritten digits recognized by DCN (%)
值得注意的是,使用MNIST 數(shù)據(jù)集訓(xùn)練的DCN 模型在全重疊的識(shí)別任務(wù)上得到了55.2%的正確率.盡管識(shí)別率不高,但這是在簡(jiǎn)單的數(shù)據(jù)集上進(jìn)行訓(xùn)練而對(duì)復(fù)雜數(shù)據(jù)集的識(shí)別結(jié)果.一定程度反映了DCN 網(wǎng)絡(luò)的特征提取,以及運(yùn)用所提取低級(jí)特征對(duì)高級(jí)特征進(jìn)行有效預(yù)測(cè)的能力.
同時(shí),使用重疊手寫數(shù)字?jǐn)?shù)據(jù)集進(jìn)行訓(xùn)練的DCN模型,在進(jìn)行無重疊識(shí)別時(shí),取得了80%的識(shí)別率.這表明在不進(jìn)行特別的訓(xùn)練集設(shè)計(jì)時(shí),DCN 網(wǎng)絡(luò)可以在使用重疊圖片進(jìn)行訓(xùn)練后,對(duì)不重疊的圖片進(jìn)行識(shí)別,即在特征有區(qū)別的情況下,也能保證一定準(zhǔn)確度的識(shí)別率.
DCN 模型對(duì)于全重疊手寫數(shù)字測(cè)試集5000個(gè)測(cè)試樣本的總體識(shí)別率達(dá)到了96.75%,其識(shí)別準(zhǔn)確率與loss 值的變化曲線如圖5 所示.
由圖5 可知,在不到20 個(gè)Epoch 下測(cè)試準(zhǔn)確率達(dá)到96%以上,損失由1 開始縮小至低于0.02,且其后沒有反復(fù),說明DCN “識(shí)別網(wǎng)絡(luò)”運(yùn)行收斂快且平穩(wěn),能夠較好地將重疊的數(shù)字進(jìn)行分類識(shí)別.
圖5 DCN 對(duì)全重疊手寫數(shù)字的識(shí)別率與損失函數(shù)值曲線Fig.5 Recognition rate and loss value curve of DCN for fully overlapped handwritten digits
與CapsNet 進(jìn)行對(duì)比,CapsNet 在80%重疊率的MutiMNIST 數(shù)據(jù)集上取得了95%的正確率[5],在全重疊數(shù)據(jù)集中正確率只有88%.本文DCN 網(wǎng)絡(luò)結(jié)果在全重疊識(shí)別正確率達(dá)到了96.75%,見表6所示.與CapsNet 對(duì)比在全重疊的情況下,DCN 識(shí)別準(zhǔn)確率高于CapsNet.
表6 重疊手寫數(shù)字識(shí)別率對(duì)比(R =3) (%)Table 6 Comparison of recognition rate of overlapping handwritten digits (R=3) (%)
3.3.2 分離效果
本文構(gòu)建的DCN 重構(gòu)網(wǎng)絡(luò)見圖1(b).其為對(duì)分類網(wǎng)絡(luò)(圖1(a))的輸出向量進(jìn)行重構(gòu),得到分離圖片.在分離訓(xùn)練過程中,使用掩蔽的方法只把正確的數(shù)字膠囊的激活向量保留下來.然后用兩個(gè)激活向量通過兩個(gè)并行的重構(gòu)網(wǎng)絡(luò)進(jìn)行重構(gòu),最終輸出兩幅 28×28 像素的灰度圖片,顯示已經(jīng)分離的手寫體數(shù)字的分離效果.
重構(gòu)時(shí)的重構(gòu)誤差是通過計(jì)算重構(gòu)圖片的像素亮度以及與疊加之前的圖片的像素亮度進(jìn)行對(duì)比,然后加和得到,參見式(9).把得到的此重構(gòu)誤差按一定的占比放入到總誤差中,參見式(11),然后對(duì)全網(wǎng)絡(luò)進(jìn)行統(tǒng)一訓(xùn)練,進(jìn)而得到重構(gòu)圖片.
圖6 顯示了在不同縮放數(shù)量級(jí)的情況下,總損失函數(shù)值Ltotal的變化情況.由圖6(a)中總損失函數(shù)值Ltotal升高的情況可以得知,在重構(gòu)誤差占比大于0.005 時(shí)網(wǎng)絡(luò)出現(xiàn)了過擬合的情況.重構(gòu)損失占比過大抑制了分類的損失Lcls,導(dǎo)致分類效果的下降.通過反復(fù)試調(diào),將重構(gòu)損失Lrecon占比降低至0.0005 時(shí),重構(gòu)損失才不會(huì)在訓(xùn)練過程中抑制Lcls的作用,得到的總損失Ltotal曲線收斂迅速,在20 Epoch 時(shí)Ltotal值下降到了0.02,而且下降平穩(wěn),沒有反復(fù),見圖6(b)所示.
圖6 重構(gòu)loss 函數(shù)占比收斂對(duì)比Fig.6 Comparison of proportion convergence of reconstructed loss function
圖7 為分離結(jié)果,圖7(a)為100 個(gè)待分離重疊數(shù)字圖片,圖7(b)和圖7(c)為分類網(wǎng)絡(luò)識(shí)別后由重構(gòu)網(wǎng)絡(luò)所重構(gòu)的分離結(jié)果.
圖7 重構(gòu)結(jié)果Fig.7 Reconstructing results
表7 顯示的是8 個(gè)重疊圖片的分離情況,其中標(biāo)注 “?”的3 組數(shù)字 “7”與 “9”的組合中,3 幅重疊圖片均由相同數(shù)字不同寫法的圖片疊加而成,在進(jìn)行準(zhǔn)確分類之后,得到的重構(gòu)結(jié)果與原本的數(shù)字一樣,這說明整個(gè)網(wǎng)絡(luò)對(duì)重疊數(shù)字分離準(zhǔn)確,盡管這3 組數(shù)字筆畫有些許區(qū)別,但網(wǎng)絡(luò)進(jìn)行了準(zhǔn)確的識(shí)別與重構(gòu).(3,7),(9,1),(0,8),(0,4)這4 幅圖片,重疊后圖形復(fù)雜,“識(shí)別網(wǎng)絡(luò)”識(shí)別準(zhǔn)確,“分離網(wǎng)絡(luò)”分離后字體筆劃基本清晰.
表7 全重疊手寫數(shù)字分類與重構(gòu)的部分結(jié)果Table 7 Partial results of classification and reconstruction of fully overlapped handwritten digits
卷積在標(biāo)注 “?”的數(shù)字 “5”與 “9”的組合中,原圖疊加后的特征復(fù)雜,網(wǎng)絡(luò)分類出現(xiàn)錯(cuò)誤.由重構(gòu)結(jié)果可以得知,DCN 網(wǎng)絡(luò)依舊將數(shù)字 “9”完整地區(qū)分出來,但是將另一個(gè)數(shù)字 “5”識(shí)別成了數(shù)字“8”.說明網(wǎng)絡(luò)對(duì)于極復(fù)雜的圖片的識(shí)別不夠理想,需要進(jìn)一步提高.
用DCN 對(duì)CASIA 漢字手寫圖片集中的 “不”、“下”、“丑”、“世”、“?!?、“王”、“也”、“衛(wèi)”、“大”、“人”10 個(gè)漢字進(jìn)行全重疊測(cè)試.共進(jìn)行了150 個(gè)Epoch 訓(xùn)練,訓(xùn)練的平均識(shí)別率為92.7%,如見圖8 所示.
圖8 訓(xùn)練識(shí)別率Fig.8 Training recognition rate
表8 是部分識(shí)別和分離結(jié)果.從中可以看出,對(duì)圖片清晰、字體簡(jiǎn)單的漢字,識(shí)別結(jié)果準(zhǔn)確,分離基本清晰.但對(duì)于字體復(fù)雜不規(guī)整的漢字,重疊圖片識(shí)別率低,如最后兩個(gè)標(biāo)簽(王,丑)、(也,衛(wèi))識(shí)別錯(cuò)誤,分離結(jié)果模糊.
表8 部分識(shí)別和分離結(jié)果Table 8 Partial identification and separation results
對(duì)重疊漢字測(cè)試,DCN 在所選漢字較簡(jiǎn)單情況下測(cè)試識(shí)別誤差為15.2%,相較MNIST 手寫數(shù)字重疊識(shí)別誤差較高.對(duì)于簡(jiǎn)單圖片分離基本清晰,復(fù)雜圖片識(shí)別與分離誤差較高.
本文設(shè)計(jì)了一種深度膠囊網(wǎng)絡(luò)模型DCN,它具有6 層網(wǎng)絡(luò)結(jié)構(gòu),使用向量維數(shù)為16 維,用EM的向量聚類算法代替了原路由算法.同時(shí)構(gòu)建了一個(gè)并行重構(gòu)網(wǎng)絡(luò),以實(shí)現(xiàn)對(duì)重疊目標(biāo)的分離重構(gòu).最后用不同的聚類次數(shù)與訓(xùn)練集對(duì)重疊手寫體數(shù)字進(jìn)行了識(shí)別實(shí)驗(yàn),結(jié)果顯示DCN 網(wǎng)絡(luò)對(duì)全重疊手寫數(shù)字識(shí)別率達(dá)到96%,超過了膠囊網(wǎng)絡(luò)CapsNet在80%重疊率下識(shí)別率95%,分離重構(gòu)圖片的效果較好.但是DCN 對(duì)重疊數(shù)字的重構(gòu)效果還未達(dá)到理想效果,重構(gòu)目標(biāo)還是有一定比例的模糊和近4%的識(shí)別錯(cuò)誤問題,這將在后期工作中進(jìn)行完善.后期工作也將進(jìn)一步提高該方法應(yīng)用于重疊手寫漢字的識(shí)別.