賀文亮,朱敏玲
北京信息科技大學 計算機學院,北京100101
深度學習是機器學習的一部分,隨著大數(shù)據時代的到來和GPU 技術的進步,深度學習廣泛應用于圖像識別、圖像分類、圖像分割、目標檢測[1]、身份認證[2]、知識圖譜[3]、自然語言處理、語音識別、文本分類[4]等各個領域。與傳統(tǒng)的機器學習算法相比,深度學習的優(yōu)越性在于其卓越的準確性。從圖像分類到自然語言處理,深層神經網絡正被應用于不同的領域。人們對人工神經網絡進行了研究,開發(fā)了不同類型的神經網絡,如卷積神經網絡和循環(huán)神經網絡,它們已經應用于不同的應用領域。卷積神經網絡的引入是神經網絡重新流行的原因之一。可是研究發(fā)現(xiàn)它存在一個根本性的問題,即無法考慮到底層目標特征之間的空間關系。由于在卷積神經網絡中,上一層神經元傳遞到下一層神經元中的是標量,標量沒有方向,無法表示出高層特征與低層特征之間的位姿關系。另外,它的池化層會丟失大量有價值的信息,因此卷積神經網絡存在較大的局限性。2017年,Geoffrey Hinton 在神經網絡架構中引入了一個新概念——膠囊網絡。
膠囊網絡是近年來為克服卷積神經網絡存在的缺陷而引入的神經網絡之一,它以向量的形式來表示部分與整體之間的關系,不僅能夠以特征響應的強度來表示圖像,還能夠表征圖像特征的方向、位置等信息。同時,膠囊網絡采用囊間動態(tài)路由算法,取代傳統(tǒng)卷積神經網絡中的最大池化法,避免了圖像因池化導致精確位置信息的丟失。因此,膠囊網絡以其獨特魅力迅速成為深度學習領域的一項熱門技術,眾多科研人員紛紛致力于對其進行深入研究。
圖1 LeNet-5神經網絡結構圖
神經網絡早期在圖像分割、圖像分類和識別等領域實現(xiàn)都非常困難。在神經網絡實現(xiàn)過程中,它的隱藏層結構需要人為進行設計,同時計算成本非常高。因此,為了解決這些問題,LeCun 提出了卷積神經網絡(Convolutional Neural Network,CNN)[5-6]。卷積神經網絡成為神經網絡研究熱點之一,尤其是在圖像分類領域,由于CNN 避免了圖像的復雜預處理過程,并且可以直接輸入使用原始圖像,因此獲得了廣泛的關注[7-8]。
CNN 是一種深度神經網絡,它的結構一般由輸入層、卷積層、池化層、全連接層和輸出層組成。卷積層以空間上下文感知的方式將多個低層特征編碼為更具區(qū)分性的高級特征,再通過池化層降低圖像的維數(shù),最終由全連接層作為分類器對隱藏層的輸出進行分類,輸出結果。因網絡結構是人為設計的,沒有固定格式,因此網絡結構過于復雜則會導致過擬合和梯度爆炸現(xiàn)象。
LeNet 是一類特殊的卷積神經網絡,非常適合用于處理圖像數(shù)據,但它只能處理高分辨率的灰度圖像。比較經典的CNN 模型有LeNet-5、AlexNet、VGGNet、GoogLeNet、ResNet[9]以及DenseNet[10],以上均是LeNet的改進版模型[11]。下面對LeNet-5、AlexNet、VGGNet、GoogLeNet進行簡單介紹。
(1)卷積神經網絡LeNet-5[12]的結構如圖1 所示,它由7層組成,每層均包含可訓練的參數(shù)。其中,C為卷積層,S為池化層。
該網絡輸入大小為32×32的圖片,各層的網絡結構參數(shù)如表1所示。此網絡結構是第一個成功用于MNIST手寫數(shù)字識別的神經網絡,在MNIST 數(shù)據集上準確率達到大約99.2%,由此CNN 迅速發(fā)展,出現(xiàn)了很多處理圖像的優(yōu)質網絡結構。
表1 LeNet-5的各層網絡結構參數(shù)
(2)AlexNet[13]以圖像數(shù)據集分類高準確率的優(yōu)勢名聲大震。和現(xiàn)在的深度神經網絡結構相比,AlexNet的結構非常簡單,它由5 個卷積層、1 個最大池化層、dropout層[14]和3個全連接層組成,作者設計此網絡結構用于1 000 個類別的分類。AlexNet 采用Relu[15]作為激活函數(shù),同時利用數(shù)據增強技術擴充數(shù)據集,并且為了解決模型的過擬合問題,在結構中增加了dropout層。
(3)VGGNet[16]是卷積神經網絡的一種,為了表示信息的層次結構,它實現(xiàn)了一個深層網絡結構。同時,它還使用Relu作為每個卷積層后的激活函數(shù)。它采用的3×3 大小的濾波器和AlexNet 的11×11 大小的濾波器有很大區(qū)別,3個卷積層得到1個7×7的有效感受野,其在圖像分類以及定位的操作中都能得到不錯的結果。
(4)GoogLeNet[17]使用batch normalization,image distortions 和優(yōu)化算法rmsprop 等技術。為了減少參數(shù)數(shù)量,其結構設定為22層,使用過程中在內存和功耗等方面表現(xiàn)都很好。因為CNN 的圖片是按順序堆疊的,該網絡設計時受到LeNet結構的啟發(fā),實現(xiàn)了一個名字為Inception 的網絡模型。其整個網絡結構中使用了9個模塊,共100多層。網絡結構中還使用一個平均池化層,將特征圖大小從7×7×1 024變成1×1×1 024,此方法可減少大量參數(shù),最后選取softmax 作為激活函數(shù)。GoogLeNet的主要特點就是提升了計算資源的利用率。CNN 的迅速發(fā)展,對于圖像處理領域擴大了不小的影響力,正是這種優(yōu)秀的圖像處理能力,使眾多學者紛紛投入對CNN的研究之中。但由此固化的網絡結構所產生的問題日益凸顯,經典的CNN 模型已經不能滿足當前社會人工智能技術的需要。在醫(yī)療、金融、交通等領域,CNN 已經不能很好地解決一些復雜的圖像處理的問題,如圖像旋轉、指靜脈識別等。因此,為了解決CNN現(xiàn)有的問題,膠囊網絡在此之上進行改進,通過新的算法和網絡結構進一步提升模型的能力,增加應用場景,滿足圖像處理領域的需求。
1.2.1 膠囊網絡背景
上述介紹的所有卷積神經網絡模型中,都存在一個根本性的缺點,即從上一層至下一層傳遞的是標量,導致CNN無法考慮到底層對象之間的空間關系。眾所周知標量沒有方向,因此不能表示低層特征和高層特征的關系,同時CNN的池化層會丟失非常多的有用信息,因此CNN 在識別具有空間關系的特征時存在很大局限性。于是,2017年Hinton等人提出了一種新型神經網絡結構:膠囊網絡(Capsule Network,CapsNet)[18],膠囊網絡是當今圖像識別領域最先進的技術之一,在CNN 的基礎上能夠達到更好的效果。
與CNN 不同的是,膠囊不再是以單個神經元的形式出現(xiàn),而是一組神經元的集合,這個集合可以是向量也可以是矩陣[19],膠囊和神經元的差異如表2 所示。多個膠囊構成一個隱藏層,深淺兩層隱藏層之間的關系則通過動態(tài)路由算法確定。與卷積神經網絡隱藏層中的特征圖不同,膠囊的組成形式非常靈活,動態(tài)路由算法沒有固定的模版,并且是單獨計算深淺兩層隱藏層中每個膠囊之間的關系。動態(tài)路由的計算方式決定了深淺兩層隱藏層之間是動態(tài)連接的關系,因此模型可以自動篩選更有效的膠囊,從而提高性能。CapsNet 解決了CNN對物體大幅度旋轉之后識別能力低下及物體之間的空間辨識度差的兩個缺陷。
表2 膠囊和神經元的差異
1.2.2 膠囊網絡結構
由Hinton等[18]提出的膠囊網絡模型,又稱向量膠囊網絡。此膠囊網絡結構較淺,由卷積層、PrimaryCaps(主膠囊)層、DigitCaps(數(shù)字膠囊)層構成,結構如圖2所示[18]。輸入部分為28×28的MNIST手寫數(shù)字圖片,輸出部分是一個10維向量。其中,卷積層操作結束后,主膠囊層將卷積層提取出來的特征圖轉化成向量膠囊,隨后通過動態(tài)路由算法將主膠囊層和數(shù)字膠囊層連接輸出最終結果。第一層卷積層使用的卷積核大小為9×9,深度為256,步長為1,并且使用Relu激活函數(shù)。第二層主膠囊層采用8組大小為9×9,深度為32,步長為2的卷積核,對第一層卷積后得到的特征圖進行8 次卷積操作,得到8組6×6×32的特征圖,隨后將特征圖展平,最終得到向量神經元大小為1 152×8,即1 152 個膠囊,每個膠囊由一個8 維向量組成。第三層全連接層輸出10 個16維向量的膠囊,由第二層主膠囊層經過卷積操作后得到的膠囊通過動態(tài)路由算法計算得出,圖2 中Wij為動態(tài)路由的轉化矩陣。
圖2 膠囊網絡編碼器結構圖
膠囊網絡允許多個分類同時存在,因此不能再使用傳統(tǒng)交叉熵損失函數(shù),而是采用了間隔損失的方式作為損失函數(shù),間隔損失如公式(1)所示:
式中,Lk為經過計算得到的間隔損失;Tk為第k分類的存在值,若存在則取1,否則取0;m+、m-和λ分別取0.9、0.1、0.5。
CapsNet的解碼器結構如圖3所示[18],解碼器用來重構圖像,共有3個全連接層,接受DigitCaps層輸出的10個16 維向量,也就是16×10 矩陣,重構出一幅和輸入層大小28×28相同的圖像。
圖3 膠囊網絡解碼器結構圖
1.2.3 動態(tài)路由算法
上文已介紹過膠囊是一組神經元的集合,它的輸出是一個多維向量,因此它可以用來表示實體的一些屬性信息,其模長可以用來表示實體出現(xiàn)概率,模長值越大,表示該實體存在可能性越大。若實體的特征位置發(fā)生變化,膠囊輸出的向量對應的模長不會變化,只改變其方向,實現(xiàn)同變性。
神經膠囊的工作原理如圖4 所示[20],可以簡單概括為4個步驟,即矩陣轉化、輸入加權、加權求和以及非線性變換。
圖4 神經膠囊工作過程圖
圖4 中ui為輸入向量,第一步即將此向量與矩陣Wij相乘得到向量Uj,做矩陣轉化。ui為輸入層圖片的低層特征,例如人臉的單個實體部分,比如嘴、鼻子、眼睛等。而Wij包含低層特征和高層特征的空間關系以及其他重要關系,通過矩陣轉化操作得到向量Um,即高級特征。
式中,cij表示膠囊i連接至膠囊j的連接概率;bij表示膠囊i連接至膠囊j的先驗概率。
cij是由softmax函數(shù)計算獲得的,softmax函數(shù)的結果是非負數(shù),且每個獨立的cij相加總和為1,因此c表示概率,softmax函數(shù)計算方法如公式(3)所示。
式中,sj表示l層膠囊的總輸入。
式中,vj表示l+1 層的膠囊輸出。
第四步就是對sj進行非線性變換得到vj,采用激活函數(shù)如公式(5)所示,其中公式中第一部分的作用是壓縮,如果sj很長,第一項約等于1,反之如果sj很短,第一項約等于0。第二部分的作用是將向量sj單位化,因此第二項的長度為1。此步驟的主要功能就是控制vj的長度不超過1,同時保持vj和sj同方向。經過此步驟,輸出向量vj的長度在0~1之間,因此可通過vj的長度確定具有某個特征的概率。
在動態(tài)路由第一次迭代過程中,因bij都被初始化為0,耦合系數(shù)cij此時都相等,所以l層的膠囊i要傳遞給l+1 層中的哪個高級膠囊j的概率是平等的。經過這四個工作步驟,最終以的結果來更新bij,經過r次迭代后,輸出vj。
動態(tài)路由算法偽代碼如下:
動態(tài)路由算法作為膠囊網絡的核心,對于整個膠囊網絡的應用起到了決定性的作用。正是膠囊網絡使用這種非模板化的算法,使得模型在對圖像、文字等目標進行識別時,可以將目標姿態(tài)、形狀、位置等關鍵信息進行學習,盡可能多地學習到目標的特征,同時保留重要特征,不輕易丟棄任何一個有用特征。因此,動態(tài)路由算法超越CNN 的固有卷積模式,膠囊網絡成為當前人工智能領域最先進的技術之一。
計算機的圖像識別過程通常分為兩大步驟:圖像特征提取和圖像分類預測。首先對輸入圖片進行預處理,處理為適合特征提取的形式,然后再提取圖像的特征,隨后對特征圖像進行分類預測,過程如圖5所示[21]。
圖5 圖像識別過程
圖像預處理操作的意義主要是為了增強目標圖像信息,同時可以減少很多干擾,能夠更好地進行圖像特征提取。基于深度學習的圖像分類方法和傳統(tǒng)的圖像分類方法相比的關鍵優(yōu)勢在于,其能通過深層架構自動學習更多深層含義的數(shù)據特征,無需人工干預即可找到特征,效果顯著地增強了圖像分類的效果。目前常用于圖像分類的數(shù)據集如表3所示,由上至下在數(shù)據量和復雜程度上逐漸遞增。
2.1.1 CNN和膠囊網絡應用對比
為了探究經典CNN模型和膠囊網絡識別精度的差異性,Anuradha 等[26]比較了4 種模型AlexNet、VGGNet和GoogleNet 與CapsNet 在擴展MNIST 數(shù)據集上的應用,同時展示了膠囊網絡在目標檢測中的最高精度,并證明膠囊網絡只需要少量的數(shù)據就可以提供更好的性能。其使用的數(shù)據集是擴展MNIST(EMNIST)[27],EMNIST 是一組手寫字符數(shù)字,從NIST 專用數(shù)據庫19中提取,并轉換為28×28像素的圖像格式。此數(shù)據集中提供了6 種不同的拆分,它們是ByClass、ByMerge、Balanced、字母、數(shù)字和MNIST,EMNIST 語料庫的示例如圖6 所示[26]。實驗中使用了EMNIST Balanced數(shù)據集,EMNIST Balanced數(shù)據集包含一組字符,每個類具有相同數(shù)量的樣本。它包含47 個類,131 600 個圖像分為112 800個訓練圖像和18 800個測試圖像。
表3 不同數(shù)據集的特點
圖6 EMNIST語料庫
此研究將Balanced EMNIST數(shù)據集分為50%、75%和100%分別進行測試,CapsNet在測試結果中的精度分別為95.7%、98.9%、99.7%。研究表明,CapsNet 帶來了總體上最好的性能,其準確率超過其他所有模型,在識別圖像中得到了較好的效果。
2.1.2 CNN結合膠囊層的應用
通過將現(xiàn)有CNN模型與膠囊網絡結構的結合方式可以提升識別精度,Hollósi等[28]選取了VGG、ResNet和DenseNet三種魯棒性很強的神經網絡,通過增加膠囊層的方式來提升神經網絡的精度,與未增加膠囊層的原始網絡進行精度對比。每個神經網絡模型中均使用包含兩層膠囊層的相同膠囊塊,膠囊塊第一層包括256個卷積核,第二層包含10 個膠囊,輸出向量為16 維,采用動態(tài)路由算法,共有3 條路由。分別使用CIFAR-10 和MNIST 數(shù)據集進行測試,兩個數(shù)據集均進行了一些修改,將圖像旋轉24°、48°、72°、96°、120°、144°、168°、192°、216°、240°、264°、288°、312°和336°,同時隨機翻轉圖像水平和垂直方向。測試時采用不同的數(shù)據集大小,分別為(1 250,250),(2 500,500),(5 000,1 000),(10 000,2 000),(20 000,4 000)和(50 000,10 000),第一個值為訓練集的大小,第二個值為測試集大小。經過測試,其中增加了膠囊層的DenseNet網絡在CIFAR-10數(shù)據集采用的(50 000,10 000)和(20 000,4 000)兩種大小方案中,分別由45.27%和36.88%提升至64.02%和59.98%。同時增加了膠囊層的DenseNet網絡在MNIST數(shù)據集中采用的(20 000,4 000)方案中精度提升最為明顯,由58.75%提升至95.35%。實驗結果表明,使用修改后的數(shù)據集降低了神經網絡原本的精度,使用膠囊塊可提升精度,采用膠囊單元的網絡普遍比傳統(tǒng)方法精度更高。采用膠囊層的神經網絡,訓練速度比原始神經網絡快,同時膠囊網絡識別旋轉物體相比傳統(tǒng)CNN 模型更具優(yōu)勢。
2.1.3 小規(guī)模數(shù)據集應用
以深度學習為代表的人工智能技術正在蓬勃發(fā)展,并已應用于很多領域。然而深度學習也有一些局限性:它更適合于大量的數(shù)據,與小規(guī)模的數(shù)據集沒有特別的相關性。由此引出的一個問題即深度學習是否適用于小數(shù)據訓練一直是一個有爭議的話題。有學者提出,當數(shù)據相對較少時,深度學習的表現(xiàn)并不優(yōu)于其他傳統(tǒng)方法,相反,有時效果甚至比傳統(tǒng)方法差。某種程度上,這種說法是正確的:深度學習需要從數(shù)據中自動學習特征,通常只有在大量訓練數(shù)據的情況下才有可能,尤其是對于一些輸入樣本高維的情況,例如圖像。
神經網絡使用數(shù)據擴充技術可以起到提升準確率的作用,Zhang 等[29]以Kaggle 中的2 000 張“貓vs 狗”比賽的圖片作為訓練數(shù)據集,同時額外選取400張進行測試,根據數(shù)據集的特點,對數(shù)據集采用了幾種預處理技術,包括最大最小范數(shù)、調整大小和數(shù)據擴充等。使用數(shù)據擴充技術后,模型不會發(fā)現(xiàn)任何兩幅完全相同的圖像,這將有助于抑制過度擬合,使模型更具普遍性。最后采用CNN 和CapsNet 對使用了數(shù)據擴充技術和未使用數(shù)據擴充技術的兩種情況分別測試,測試結果如表4所示。不使用數(shù)據擴充技術時,CNN 的精度為68%,CapsNet為73%,使用了數(shù)據擴充技術時,CNN為76.5%,CapsNet 為81.5%。實驗結果表明,CapsNets 在小規(guī)模數(shù)據集上的性能優(yōu)于傳統(tǒng)的CNN。此外,當不使用擴充技術的訓練數(shù)據時,CapsNet 的性能明顯優(yōu)于CNN,這個情況表明CapsNet 在數(shù)據量相對較小的情況下和CNN 相比具有更好的泛化能力,能夠較好地抵抗過擬合,正是膠囊具有同變性的特性,才可以更好地探索特征屬性直接的關系,因此這是一個非常重要的優(yōu)勢。
表4 分類精度比較
2.1.4 不同仿射變換的應用
膠囊網絡在識別空間位置信息上具有優(yōu)勢,付家慧等[30]從可視化角度研究了膠囊網絡在平移、旋轉等仿射變換的特征。實驗結果的準確性通過三種仿射變換的損失值來表示。最終發(fā)現(xiàn)經過600次epoch也沒有真正達到收斂,但每個batch 中的100 張圖片的總損失函數(shù)值能夠降低至10 以下,最后得到的生成圖像非常接近目標圖像。研究表明:在膠囊網絡的內部,每個膠囊模塊都能夠學習到一種姿態(tài),這種姿態(tài)適用于大多數(shù)的手寫數(shù)字,同時每個膠囊模塊得到的特征姿態(tài)均對最終結果存在一定貢獻。與卷積神經網絡不同的地方在于,膠囊網絡在搭建模型時就考慮到位置信息,最終生成結果得到的模塊特征輸出是從初始位置信息轉化而成的,膠囊網絡最后確實學到了手寫數(shù)字圖像經過變換的圖像信息。因此,膠囊網絡對于實體姿態(tài)、位置和方向等信息的處理明顯優(yōu)于卷積神經網絡。
2.1.5 指靜脈識別應用
指靜脈識別技術在現(xiàn)代應用中隨處可見,CNN 在指靜脈識別過程中存在信息丟失的問題,余成波等[31]提出了一種基于膠囊網絡的指靜脈識別算法。膠囊網絡以向量的形式封裝指靜脈的多維特征,這些特征會被保存在網絡中,而不是丟失后再進行恢復。實驗采用60 000張圖片作為訓練集,10 000張圖片作為測試集,同時進行圖像增強與裁減操作。經過測試,如表5 所示,CapsNets的識別率逐漸增加,在訓練次數(shù)為30 000時精度達到99.7%,loss值為0.010 7。經過對比,CapsNets展現(xiàn)出了令人驚訝的準確率,在準確率上相比VGG 增加了13.6%,同時loss 值最終收斂到0.01。當CapsNets 迭代到2 000 次的時候,就開始逼近90%的準確率,同時loss值降低至0.2,最終收斂于98.6%的準確率。而VGG迭代比較平穩(wěn),迭代200 次時網絡精度趨近84%,后期并無太大提升,最終精度為85%,loss值為0.21。
表5 CapsNets訓練的識別率和loss值
研究表明CapsNets比CNN更加適合進行指靜脈識別,二者對比如表6 所示。膠囊網絡結構簡單,網絡深度遠小于VGG,且訓練速度非???,只用了VGG 網絡訓練時間的1/8,同時其空間特性將靜脈的特征保留完整,能夠得到非常好的結果。
表6 CapsNets與VGG對比
2.1.6 膠囊網絡優(yōu)化方法
為了提高膠囊網絡的效率和泛化能力,Zou 等[32]提出了一種新的膠囊網絡激活函數(shù)exping,同時在損失函數(shù)中加入了最小重量損失Wloss。實驗采用MNIST 數(shù)據集對原始壓縮激活函數(shù)、exping激活函數(shù)和exping加Wloss 進行測試,測試中使用相同的參數(shù)。表7 展示了不同方法對手寫數(shù)字集MNIST 的識別精度,原始壓縮激活函數(shù)的準確率為99.71%,使用exping 激活函數(shù)的準確率為99.72%,使用exping 加Wloss 的準確率為99.75%。此研究表明,經過改進的膠囊網絡提高了網絡收斂速度,提高了網絡泛化能力,提高了網絡效率,因此具有很大的使用價值。
表7 不同方法對MINST測試集的識別精度
除了改變激活函數(shù)和損失函數(shù)的方式,還可以通過改變膠囊層的架構來提升網絡的精度。Xiong等[33]通過引入卷積膠囊層(Conv-Caps-Layer),借助現(xiàn)有CNN 深層架構可以提取高維特征的思想,加深了CapsNet的結構,大大提高了性能。同時提出了一種新的池操作——膠囊池(CapsPool),用來減少參數(shù)的數(shù)量,還能保留功能。實驗使用CIFAR-10數(shù)據集測試,如表8所示,此研究提出的DeeperCaps模型訓練準確率達到96.88%,測試準確率達到81.29%。在MNIST數(shù)據集上測試,Deeper-Caps 模型測試準確率達到99.84%。通過添加膠囊池,訓練精度和測試精度只降低了1%,但能夠顯著減少50%的參數(shù)數(shù)量,大幅節(jié)省訓練資源。此研究提出的DeeperCaps模型在數(shù)據集Cifar10上得到了迄今為止最強的CapsNet結果,Caps池在保持性能的同時減少了層間參數(shù)的一半,將CapsNet推向了最先進的CNN架構。
表8 DeeperCaps與Caps-Pool的精度對比%
為了探究影響膠囊網絡識別效率的因素,郭宏遠等[34]采用了三種優(yōu)化措施:使用衰變學習率代替恒定學習率、使用Google 提出的Swish 激活函數(shù)代替relu 激活函數(shù),以及使用較低的batch size。衰變學習率相較于恒定學習率,其后期收斂效果更好。Swish 激活函數(shù)是谷歌提出的一種新型激活函數(shù),其雖與Relu函數(shù)類似,但最終性能更加突出。更小的batch size有利于卷積層對于局部特征的捕捉。衰變學習率設置為0.9,batch size采用32 來替代常規(guī)的128。實驗使用Fashion-MNIST與MNIST 兩個數(shù)據集進行對比。進行優(yōu)化前CapsNet在MNIST上測試的錯誤率為0.36%,而優(yōu)化后的錯誤率為0.30%。優(yōu)化前CapsNet 在Fashion-MNIST 上的錯誤率為9.40%,優(yōu)化后的錯誤率為8.56%。實驗結果證明了更小的batch size同樣對于膠囊神經網絡中的膠囊層具有增強局部特征捕捉能力的效果。
近年來,隨著互聯(lián)網中文本數(shù)據的顯著增長,文本分類則越來越被人們關注。文本分類是自然語言處理中的一個基本問題,它的目標是自動將文本文檔分類到一個或多個預定義類別中,使用戶更容易找到所需的信息。因此文本分類在信息抽取、問答、情感分類和語言推理等眾多應用中起著至關重要的作用。受深度神經網絡在計算機視覺和自然語言處理領域巨大進步的推動,深度學習算法如卷積神經網絡和長短時記憶網絡已成為主流文本分類方法。以往的文本分類方法在提供大量標注訓練數(shù)據的情況下能夠取得顯著的效果,然而這種性能依賴于訓練數(shù)據和測試數(shù)據來自同一數(shù)據分布的假設很難將學習到的文本分類模型推廣到新的領域并應用。在推理過程中,人類視覺系統(tǒng)會智能地將部分分配給整體,而不必硬編碼與透視相關的模式[35]。因此,膠囊網絡具備捕捉局部和整體之間的內在空間關系的特性可以構成視點不變的知識,并自動推廣到新的視點。這種部分和整體的關系在自然語言中稱為語義合成,詞組和句子意義的分析是基于語義組合原則的。膠囊可以是一組神經元,其活動向量代表特定語義特征的實例化參數(shù),因此膠囊網絡可以用于文本分類。
2.2.1 靜態(tài)路由和動態(tài)路由的應用
Kim等[36]提出一種簡單的路由方法,稱之為靜態(tài)路由,使用這種方式成功降低了動態(tài)路由計算復雜度,同時提高了分類精度。通過7種基準數(shù)據集對5種不同的網絡結構進行測試,使用靜態(tài)路由方式的精度普遍高于動態(tài)路由0.1%~6%不等。同時,他們提出使用ELU 門傳遞信息,無論在哪種路由情況下,精度都是最高的。在文本分類方面,CapsNet 優(yōu)于CNN,能夠達到更好的效果。
Yang 等[37]研究了用于文本分類的動態(tài)路由膠囊網絡,提出了三種策略來減少噪音膠囊的干擾。他們使用一個主要由N-gram 卷積層、初級膠囊層、卷積膠囊層和全連接膠囊層組成的模型。通過6 個不同的分類基準數(shù)據集對11種網絡結構進行測試,膠囊網絡在6個數(shù)據集中的其中4 個達到了所有網絡結構中的最好效果。同時,在其余兩個數(shù)據集中,膠囊網絡的結果處于中上等水平。通過對比,膠囊網絡在文本分類時明顯優(yōu)于CNN,在將單標簽文本分類轉換為多標簽文本分類時,也具備顯著的優(yōu)勢。
2.2.2 評論識別和情緒分析的應用
在當今時代,網絡中具有攻擊性和負面的評論非常常見。Srivastava 等[38]提出了一種單模型膠囊網絡用來在評論中識別具有攻擊性的評論,他們的模型分為4層:文字嵌入層、特征提取層、膠囊層和卷積膠囊層,同時使用焦點損失代替標準的交叉熵損失函數(shù)。膠囊網絡可利用動態(tài)路由的過程來減輕一些噪聲膠囊干擾,焦點損失可以防止在訓練中大量簡單的負樣本對檢測器造成的嚴重影響。通過3 種數(shù)據集對11 種神經網絡模型測試,這種單模型膠囊網絡在每個數(shù)據集中的表現(xiàn)都是最優(yōu)的,達到了這些模型中最高的精度,特別在ROCAUC 數(shù)據集的測試結果中,他們的模型用于文本分類的準確率高達98.46%。膠囊網絡以其獨有的特性在評論識別中達到了非常好的效果。
一篇關于情緒分析的研究文章[39]將遞歸神經網絡與膠囊式網絡結合進行情緒分析。研究者為一個特定的情緒類別設計了一個膠囊,例如“積極”和“消極”。膠囊由狀態(tài)、屬性和3 個模塊(表示、概率、重構)組成,表示模塊通過注意機制構建膠囊表示,模型中使用的膠囊結構能夠模擬情緒,并且無需任何語言知識模型即可輸出情感傾向。通過基準數(shù)據集Movie Review and Stanford Sentiment Treebank,以及專有數(shù)據集Hospital Feedback對12種神經網絡模型進行測試,他們提出的RNN-Capsule模型在眾多網絡模型中脫穎而出,達到了非常理想的效果,尤其在情感分類方面高達91.6%的準確率,達到了目前為止最先進的性能。
2.2.3 動態(tài)路由和壓縮函數(shù)的優(yōu)化
為了更好地保留文本特征,增加特征多樣性,驗證動態(tài)路由迭代次數(shù)和壓縮函數(shù)對模型的影響,沈煒域等[40]構建包含多尺寸多層卷積的膠囊網絡和自注意力網絡的CapSA模型驗證模型效果。實驗使用Headlines和Review Sentiment數(shù)據集測試,結果如表9所示,僅限制迭代輪數(shù)為5 輪時,CapSA 模型在第2 輪路由迭代能夠得到較好的分類效果,后續(xù)增加的迭代次數(shù)并沒有使得效果提升。模型如果達到理想的收斂狀態(tài),需要更多的路由迭代次數(shù),亦需要非常多的數(shù)據迭代才能達成,會造成更大的計算代價。
表9 CapSA在兩種數(shù)據集上不同迭代輪數(shù)的F1與正確率
CapSA 模型上還嘗試了4 種不同的壓縮方案。方案1是,方案2是方案3 是,方案4 是在路由迭代中使用,進行最后一輪迭代輸出時使用。對比4 種方案的訓練損失變化,結果為方案2的損失下降速度是最快的,其收斂效果也達到最好。研究表明不同的動態(tài)路由迭代輪數(shù)對模型的收斂效果非常敏感,適當?shù)南蛄繅嚎s方案同樣會影響效果。
膠囊網絡有很多優(yōu)勢,朱應釗等[20]提出膠囊網絡具有3個優(yōu)勢特性。第一點即所需訓練數(shù)據量較少,神經膠囊的引入,能夠保留輸入對象的詳細屬性信息。其中屬性信息中包含了輸入對象的姿態(tài)、位置、大小、旋轉等信息,膠囊網絡能夠將學習到的東西推廣到新場景中。因此,對發(fā)生平移、旋轉、縮放等操作的同一對象依然可以識別正確,同時還能從不同角度進行識別。所需要的訓練數(shù)據量少的優(yōu)勢,使得膠囊網絡更接近人腦。第二點即不易受多類別重疊的干擾,膠囊網絡有能力處理對象重疊的復雜場景,通過每一個特定部分的屬性和存在預測高級對象的屬性和存在,同時對比預測結果之間的一致性,若達成一致則增加路由權重,不一致則減少路由權重。因此,一個膠囊的輸出只需路由到下一層對應的膠囊中,即下一層的膠囊能獲取更清晰的輸入信號,將多類別重疊的模糊性進行轉換,從而實現(xiàn)對重疊對象的識別和預測。第三個優(yōu)勢即膠囊網絡抵御白盒對抗性攻擊能力較強。因深度學習的各種網絡模型在各個領域廣泛使用,其防御對抗性攻擊的能力備受大家關注。經過研究,發(fā)現(xiàn)膠囊網絡有著較強的抵御能力,尤其是對于白盒的對抗性攻擊,相比卷積神經網絡,膠囊網絡則在這一方面更加出色。一種典型的白盒對抗性攻擊的方法FGSM發(fā)揮作用時,卷積神經網絡的準確率會斷崖式下降至20%以下,與此同時膠囊網絡卻能夠持續(xù)保持70%以上的準確率。膠囊網絡的優(yōu)勢突出、應用廣泛,本文主要列舉圖像識別和文本分類兩大方面的應用和優(yōu)化,如表10、表11所示。
膠囊網絡在很多領域的應用都展現(xiàn)出其獨特的魯棒性,無論是圖像識別領域還是文本分類領域,不管是直接使用膠囊網絡結構還是改變現(xiàn)有結構的網絡將膠囊層加入其中,都呈現(xiàn)出了令人驚訝的效果。在現(xiàn)有CNN結構中加入膠囊層提升精度的同時還能夠提升訓練速度,對于小數(shù)據集的應用,膠囊網絡的泛化能力非常強。膠囊網絡在處理空間信息中具有明顯的優(yōu)勢,能夠將空間特征保留完整,善于處理實體位置、姿態(tài)以及方向信息,且網絡結構淺、訓練速度快、空間特征保留完整。即使網絡迭代前期能夠達到一個不錯的準確率,但是網絡迭代后期仍然能夠平穩(wěn)提升準確率并降低loss值,達到更好的效果。不同的激活函數(shù)能夠提升膠囊網絡的泛化能力、收斂速度,改變膠囊層架構、batch size、學習率等也能優(yōu)化膠囊網絡的效果。動態(tài)路由迭代次數(shù)也是影響準確率的因素之一,適當?shù)牡螖?shù)能夠使得網絡性能達到最理想的狀態(tài)。膠囊網絡有能力處理對象重疊的復雜場景,這也是其在眾多神經網絡模型中脫穎而出的其中一個原因。同時,膠囊網絡對于白盒的對抗性攻擊還有著較強的抵御能力,這種抵御能力遠超卷積神經網絡。因此,膠囊網絡具有很大的潛力,還需要進行探索。
盡管研究者在深度學習的交叉領域已取得了諸多膠囊網絡的相關成果,但是膠囊網絡的發(fā)展并不完善,在某些方面仍然受到現(xiàn)有技術制約,存在很多問題需要研究者去解決。因此,未來可以在以下方面增強膠囊網絡的識別能力,從而提升膠囊網絡的性能。
(1)提高識別速度
現(xiàn)代深度學習模型的識別速度很大程度上影響模型的整體性能,在膠囊網絡的動態(tài)路由算法中,對于目標特征的每個位置都被準確地以向量形式封裝在膠囊里。因此動態(tài)路由算法內部的迭代耗時長,迭代次數(shù)多,大大降低識別效率。盡管準確率比諸多深度學習模型都要優(yōu)異,但識別速度還有很大的提升空間。膠囊網絡不光可以采用向量形式表示,也可以采用矩陣進行表示。矩陣可減少大量的參數(shù),同時降低計算量,提高計算速度。此表示方式在以后的研究中可作為一個重點突破的方向,其對膠囊網絡提高識別速度具有重大意義。同時,GPU集群技術使用的越來越普遍,雖然一定程度上提升了計算能力,但仍然不足以滿足膠囊網絡需要的強大大計算能力。因此,未來的研究方向可以著手于降低網絡參數(shù)、提升GPU計算能力、提升動態(tài)路由算法效率等方向來提升膠囊網絡的識別速度。
(2)優(yōu)化網絡結構
膠囊網絡在識別MNIST手寫數(shù)據集上表現(xiàn)極其優(yōu)異,精度趨近于100%,但由于手寫數(shù)字為28×28的灰度圖像,規(guī)模較小,內容較簡單,特征較明顯,因此膠囊網絡在小規(guī)模的圖像處理中幾乎具有最好的性能,但是在大規(guī)模的圖像處理過程上仍然有待提高。目前膠囊網絡的網絡結構很淺,和眾多典型CNN 網絡結構構成了鮮明的對比。未來可以通過適當加深網絡結構,探索適合識別大規(guī)模圖像的網絡結構進行研究,以此打造一個可以識別不同規(guī)模大小的網絡結構,進一步優(yōu)化網絡處理過程,獲得更出色的效果。
表10 膠囊網絡的應用總結
(3)優(yōu)化壓縮函數(shù)
壓縮函數(shù)在膠囊網絡結構中發(fā)揮非常重要的作用,不同的壓縮方案效果不同。在膠囊網絡原始的壓縮函數(shù)中,參數(shù)中常數(shù)值的改變對損失值、精度能夠造成很大的影響。因此,未來在提升膠囊網絡性能時,可探索其他不同的壓縮函數(shù),試驗每種壓縮函數(shù)的效果,尋求一個能夠提升現(xiàn)有性能的壓縮函數(shù),同時搭配合適的網絡結構以及優(yōu)化過的路由算法。探究更加合適的壓縮函數(shù)將會對膠囊網絡的性能帶來突破,同時對膠囊網絡的發(fā)展也具有重大意義,如何界定一個合適的壓縮方案將成為一個很重要的研究內容,將作為日后膠囊網絡的研究重點。
(4)優(yōu)化損失函數(shù)
膠囊網絡采用了間隔損失的方式作為損失函數(shù),因其可對多個目標進行分類,所以不再采用傳統(tǒng)交叉熵函數(shù)的方式。適當?shù)膿p失函數(shù)可減少負面信息對模型的不良影響,能夠盡快地將預測結果與真實結果靠近,達到訓練模型的預期目的。損失函數(shù)對模型的性能具備一定程度上的影響,目前可以將損失函數(shù)作為膠囊網絡的主要改變方向,損失函數(shù)不光對膠囊網絡具有重要意義,也對整個神經網絡的改進與優(yōu)化存在非常重要的作用。
表11 膠囊網絡的優(yōu)化總結
當前人工神經網絡應用廣泛,未來在信息處理、模式識別、醫(yī)學影像、生物信號、市場價格預測、風險評估、交通模式分析、車輛檢測與分類、教育,甚至心理學等領域都可以有顯著進步。目前的應用處于人工神經網絡的應用初始階段,較為簡單,經過探索已經有很多成熟的經典模型用于社會發(fā)展中。但正是人工神經網絡模擬人腦的特點,給科學發(fā)展帶來了無限可能。經過發(fā)展,未來的人工神經網絡會應用在生活的方方面面,人們的生活會更便捷,例如無人駕駛汽車的普及、公安系統(tǒng)對公民信息的查詢以及錄入,公司內部的員工打卡系統(tǒng),甚至商場里每一個商家手里的門店鑰匙,都會迎來質的飛躍,變成不一樣的形式伴隨著社會發(fā)展。根據現(xiàn)已應用的模型進行改進,融合膠囊網絡的優(yōu)勢,能夠在目前的研究中實現(xiàn)更進一步的發(fā)展。因此,探索膠囊網絡應用的優(yōu)勢領域是一個有待發(fā)展的研究課題,通過探索不斷完善膠囊網絡的性能,能夠極大推進人工智能技術進步。當前對膠囊網絡的探索研究仍然具有廣闊的發(fā)展空間,仍然需要更進一步地探索膠囊網絡更深層的意義。