CNN RNN圖像分類技術(shù)
1 簡介
圖像分類一直是研究的一個活躍領(lǐng)域,其目的是將圖像分類為預定義的類別,并幫助人們了解圖像包含的對象類型。傳統(tǒng)上,圖像分類主要由編碼當?shù)厥止ぶ谱鞯奶卣骱褪褂盟鼈冏鳛檩斎敕诸惼鲌?zhí)行的處理的小數(shù)據(jù)集,20, 47, 51 ]。
近年來,這項任務(wù)發(fā)生了兩個根本性的變化:首先,數(shù)字圖像的數(shù)量呈指數(shù)增長。在從大量數(shù)據(jù)中查找相關(guān)圖像時,這給人們帶來了更多的選擇和更多的困難。為了幫助人們以輕松而有意義的方式訪問數(shù)據(jù),我們需要一個良好的類別語義組織。其次,深度學習方法已被證明是成功的圖像分類。近年來,研究人員已經(jīng)建立的各種深層結(jié)構(gòu)[ 12, 35, 41 ],并取得了小數(shù)據(jù)集相當準確的預測[ 4, 10 ]。
因此,目前的研究焦點已經(jīng)移動到更大和更有挑戰(zhàn)性的數(shù)據(jù)集[ 3, 34 [],如ImageNet 6 ]。這些數(shù)據(jù)集通常根據(jù)其語義所有物來組織層次結(jié)構(gòu)中的大量類別。層次結(jié)構(gòu)越深入,類別就越具體。與僅關(guān)注葉類別的當前方法相比,我們認為以粗到細模式生成分層標簽可以呈現(xiàn)語義類別如何演變,從而可以更好地描述對象是什么。例如,對于圖 1c,預測的葉子類別標簽是“三角龍”。沒有專業(yè)知識,我們無法了解此類別標簽屬于更高級別的類別標簽'Horned Dinosaur'。在新窗口中打開圖片圖。1圖1
具有“粗→精”標簽的示例圖像
本文的第一個貢獻是通過集成強大的卷積神經(jīng)網(wǎng)絡(luò)(CNN)和遞歸神經(jīng)網(wǎng)絡(luò)(RNN),能夠生成分層標簽的框架。CNN用于生成判別特征,RNN用于生成順序標簽。
CNN-RNN框架有幾個值得注意的優(yōu)點:
(1)以分層方式學習事物與人類感知和概念組織一致。通過預測由粗到細的圖案標簽,我們可以更好地理解什么對象是,如在圖中描繪 1 ℃。
(2)它可以利用粗類和精類之間的關(guān)系,這反過來又有助于傳統(tǒng)的圖像分類任務(wù)。例如,當我們使用wrn-28-10構(gòu)建CNN-RNN框架[ 53 ]時,我們可以將粗略和精細類別的準確度分別提高2.8%和1.68%。據(jù)我們所知,這是第一個嘗試使用RNN通過利用層次標簽之間的關(guān)系來提高分類性能的工作。
(3)它是可轉(zhuǎn)移的。原則上,該框架可以構(gòu)建在任何CNN架構(gòu)之上,該架構(gòu)主要用于單級分類,并提升每個層級的性能。為了驗證這一點,我們對三個高性能網(wǎng)絡(luò)進行了大量實驗,即CNN-7 [ 25 ],wrn-28-10 [ 53 ]和我們提出的更廣泛的Resnet。
(4)結(jié)構(gòu)可以端到端地進行訓練。在與其它的方法只能模型預先計算的圖像特征的類別關(guān)系[ 7, 30 ]中,CNN-RNN框架可以共同學習的功能和關(guān)系在端至端的方式,從而可以提高最終預測相當多。對于ImageNet 2010的子集,我們比較了使用預先計算的CNN特征來訓練RNN以及CNN和RNN的端到端訓練,并且證明了子類別準確度從77.27%到82%的顯著改善。
(5)分層標簽的數(shù)量可以是可變的。RNN的靈活性允許我們生成不同長度的分層標簽,即更具體的類別將具有更多分層標簽。我們已經(jīng)在廣泛使用的ImageNet 2012數(shù)據(jù)集[ 32 ] 上演示了這個屬性。
由于該框架是可轉(zhuǎn)移的,我們打算構(gòu)建一個高性能的CNN模型,并利用其CNN-RNN變體來進一步提高準確性。因此,本文的第二個貢獻是,我們建立了一個高性能的網(wǎng)絡(luò),即更廣泛的ResNet。近年來,深度殘留網(wǎng)絡(luò)(ResNet)[ 12 ]因其在多種圖像分類任務(wù)中的領(lǐng)先性能和Zagoruyko等人而備受關(guān)注。[ 53 ]提出了一個關(guān)于ResNet幾個重要方面的全面實驗研究,例如寬度和深度,并提出了一個廣泛的Resnet,它獲得了比原始ResNet更好的性能。與[ 53]相比,我們打算進一步提高績效并建立更廣泛的ResNet]。我們的實現(xiàn)表明,更廣泛的Resnet 在CIFAR-100上的性能優(yōu)于[ 53 ],并且在數(shù)千層的情況下也優(yōu)于原始的ResNet。此外,通過利用CNN-RNN框架,我們獲得了比現(xiàn)有技術(shù)更好的結(jié)果。
深度模型的性能受益于準確和大規(guī)模的注釋,如ImageNet [ 6 ]。然而,手動標記是一項過于繁瑣且昂貴的任務(wù),特別是對于細粒度的類,這通常需要專業(yè)知識(例如狗的品種,花種等)。例如,對于圖 1a和b,使用粗標簽'dog'很容易注釋圖像,但是它需要專門的知識將它們分成'Bsenji'和'Leonberg'子類別。一個可選的想法是,如果訓練數(shù)據(jù)的一部分僅用粗類別標簽注釋,我們是否可以利用粗略標記的訓練數(shù)據(jù)來提高精細類別的分類性能?
本文的第三個貢獻是,當一小部分訓練數(shù)據(jù)只有粗標簽時,我們研究如何利用CNN-RNN框架來改進子類別分類。通過在訓練集中的完全注釋數(shù)據(jù)上訓練CNN-RNN框架,我們可以利用粗略和精細類別之間的關(guān)系。因此,我們可以預測粗標記訓練數(shù)據(jù)的精細標簽,然后重新訓練CNN-RNN模型。實驗結(jié)果表明,粗標記訓練數(shù)據(jù)通??梢詭椭宇悇e分類。在某些情況下,它甚至可以超過完全注釋的訓練數(shù)據(jù)的性能。這減輕了細粒度標記的昂貴過程。
2 相關(guān)工作
2.1 CNN-RNN框架的使用
近年來,深學習方法已經(jīng)引起顯著的關(guān)注[ 11 ]在各種應(yīng)用中取得了革命性的成功[ 12, 24 ]。深度學習的兩個重要結(jié)構(gòu)是CNN和RNN。CNN已被證明在處理類似圖像的數(shù)據(jù)方面是成功的,而RNN更適合于建模順序數(shù)據(jù)。近日,幾部作品[ 8, 23, 44, 48, 52, 54 ]曾試圖將它們結(jié)合在一起,并內(nèi)置各種CNN-RNN框架。通常,組合可以分為兩種類型:統(tǒng)一組合和級聯(lián)組合。
統(tǒng)一組合通常試圖將復現(xiàn)屬性引入傳統(tǒng)CNN結(jié)構(gòu)中以提高分類性能。例如,Zuo等人。[ 54 ]通過連接不同區(qū)域的CNN特征將每個圖像轉(zhuǎn)換為1D空間序列,并利用RNN來學習圖像區(qū)域的空間依賴性。類似的工作出現(xiàn)在[ 46 ]中。擬議的ReNet用四個遞歸神經(jīng)網(wǎng)絡(luò)取代普遍存在的卷積+匯集層,這兩個神經(jīng)網(wǎng)絡(luò)在圖像的兩個方向上水平和垂直掃描。為了改進多標簽分類,Wang等人。[ 48]提出了CNN-RNN框架,以學習聯(lián)合嵌入空間來建模語義標簽依賴性以及圖像標簽相關(guān)性。
另一方面,級聯(lián)組合將分別處理CNN和RNN,其中RNN將CNN的輸出作為輸入,并返回不同時間步的順序預測。級聯(lián)的CNN-RNN框架通常用于不同的任務(wù),而不是圖像分類。例如,[ 8, 45, 52 ]采用CNN-RNN以解決圖像字幕任務(wù),和[ 50 ]利用CNN-RNN排名基于視覺重要性的標簽列表。
在本文中,我們建議利用級聯(lián)CNN-RNN框架來解決新任務(wù),即分層圖像分類,其中我們利用CNN生成判別圖像特征,并利用RNN來模擬分層標簽的順序關(guān)系。
2.2 圖像分類的分層模型
分層模型已廣泛用于圖像分類。例如,Salakhutdinov等人。[ 33 ]提出了一種分層分類模型,以分享類別之間的特征,并提高了幾乎沒有訓練樣例的對象的分類性能。嚴等人。[ 49 ]提出了一個分層的深CNN(HD-CNN),它由在所有類別上訓練的粗分量以及在類的子集上訓練的幾個精細分量組成。Murdock等人沒有使用固定的架構(gòu)進行分類。[ 29 ]提出了一種正則化方法,即Blockout,以自動學習層次結(jié)構(gòu)。
采用分層模型的另一個管道傾向于通過利用層次結(jié)構(gòu)中類別的關(guān)系來提高分類性能。例如,鄧等人。[ 7 ]引入了HEX圖來捕捉類別之間的等級和排他關(guān)系。Ristin等。[ 30 ]利用隨機森林并提出了一個正則化的目標函數(shù)來模擬類別和子類別之間的關(guān)系。這種分層模型不僅可以提高傳統(tǒng)的圖像分類性能,還可以提供一種利用粗標記訓練數(shù)據(jù)的替代方法。
與以往的工作相比,本文利用RNN來利用粗類和精類之間的層次關(guān)系,旨在使模型適應(yīng)層次圖像分類任務(wù),同時為圖像生成層次標簽。與[比較7, 30 ],可以僅處理預先計算的圖像的特征,我們提出的CNN-RNN框架可以被訓練的端至端。
3 我們提出的方案
我們的方法的目標是同時生成圖像的分層標簽。為此,我們可以使用兩種類型的發(fā)電機:基于CNN的發(fā)電機和CNN-RNN發(fā)電機。除最后一層外,它們都保留基本CNN結(jié)構(gòu)的前面層。
3.1 基于CNN的發(fā)電機
基于CNN的發(fā)生器旨在通過利用傳統(tǒng)CNN結(jié)構(gòu)產(chǎn)生粗糙和精細標簽。它是履行這一特定任務(wù)的通用做法。在本文中,我們將最后一層傳統(tǒng)CNN替換為兩層,通過這兩層為粗略類別和精細類別提供單獨的監(jiān)控信號。這兩層可以以串行模式(圖 2:策略1和2)或以并行模式(圖2:策略3)排列 。在新窗口中打開圖片圖2圖2
可以聯(lián)合訓練和生成粗略和精細標簽的四種策略的說明
在訓練階段,我們利用softmax損失函數(shù)聯(lián)合優(yōu)化粗略和精細標簽預測,如(1)中所定義。
大號? 小號小號= - 1?Σ我=1?(Σ? =1c ^ 1 { X我 = ? }登錄p? +Σ? =1?F1 { ?我 = ? }登錄p?)損耗=-1NΣi= 1N(Σj= 1C1 {xi = j}log?pj+Σk= 1F1 {yi = k}log?pk)
(1)其中1 {?}是指標函數(shù)。 N, C, F 分別表示圖像的數(shù)量,粗略類別和精細類別。 p j 和 p k 分別是粗類和精類的softmax概率。
在推理階段,我們可以利用訓練有素的網(wǎng)絡(luò)同時確定粗標簽和精細標簽。
基于CNN的發(fā)電機有兩個潛在的缺點:首先,它單獨處理兩個監(jiān)控信號,并沒有利用它們之間的關(guān)系。其次,當層次結(jié)構(gòu)具有可變長度時,我們無法定義基于CNN的通用生成器來同時確定層次標簽。
3.2 CNN-RNN發(fā)生器
CNN-RNN生成器使用其中CNN的最后一層被RNN替換的架構(gòu)來確定分層預測(圖 2:策略4)。
RNN [ 9 ]是一類人工神經(jīng)網(wǎng)絡(luò),其中單元之間的連接形成有向循環(huán),如圖3所示 。它可以有效地模擬具有任意長度的序列的動態(tài)時間行為。然而,RNN遭受消失和爆炸梯度問題,因為梯度需要向下傳播通過循環(huán)網(wǎng)絡(luò)的許多層。因此,很難對長期動態(tài)進行建模。相反,長短期記憶(LSTM)[ 14通過結(jié)合存儲器單元以在每個時間步驟編碼知識來提供解決方案。具體地,單元的行為由三個門控制:輸入門,遺忘門和輸出門。這些門用于控制它應(yīng)該讀取多少輸入(輸入門 i),是否忘記當前單元值(忘記門 f)以及是否輸出新單元值(輸出門 o)。這些門有助于輸入信號在不影響輸出的情況下通過循環(huán)隱藏狀態(tài),因此,LSTM可以很好地處理爆炸和消失的梯度,并有效地模擬RNN無法學習的長期時間動態(tài)。在新窗口中打開圖片圖3圖3
RNN(左)和LSTM(右)的管道
在本文中,我們使用LSTM神經(jīng)元作為我們的復發(fā)神經(jīng)元。門的定義和時間步長t的LSTM更新如下:
it =σ(Wxixt +Whiht -1 +Wviv+bi)it =σ(Wxixt + Whiht - 1 + Wviv + bi)
(2)ft =σ(Wx fxt +Whfht -1 +Wvfv+bf)ft =σ(Wxfxt + Whfht - 1 + Wvfv + bf)
(3)ot =σ(Wxoxt +Whoht -1 +Wvov+bo)ot =σ(Wxoxt + Whoht - 1 + Wvov + bo)
(4)gt =φ(Wxcxt +Whcht -1 +Wvcv+bc)gt =φ(Wxcxt + Whcht - 1 + Wvcv + bc)
(5)?噸 =?F噸 ⊙?噸-1 +我噸⊙克噸 CT =ft⊙ct-1 +it⊙gt
(6)?噸 =?噸⊙φ(?噸)HT =ot⊙φ(CT)
(7)其中⊙代表產(chǎn)品操作, σ 是S形函數(shù)(σ(x)=(1 + e - x )- 1), φ 是雙曲正切函數(shù)( φ (x )= ex- e-xex+ e-xφ(x)= ex-e-xex + e-x )。其他符號的定義是: i t , f t , o t , g t 分別表示輸入門,忘記門,輸出門和輸入調(diào)制門。 x, h, v 和 c分別 表示輸入矢量,隱藏狀態(tài),圖像視覺特征和存儲器單元。我們建議 在更新LSTM時在每個時間步長處施加圖像視覺特征 v。 W 和 b 是需要學習的權(quán)重和偏差。
我們的方法的目標是為圖像生成分層標簽。標簽按粗到細的順序排列,即較粗的標簽出現(xiàn)在列表的前面。為此,我們將C 粗類和 F 細類合并 為 C + F 超類。對于不同的時間步長,CNN-RNN生成器將不同級別的標簽作為輸入,其中較粗級別的標簽出現(xiàn)在前面的時間步長處。通過這種方式,較粗級標簽可以為更精細標簽的預測提供有見地的信息。程序如圖4所示 。在新窗口中打開圖像圖4圖4
CNN-RNN框架的管道
在訓練階段,CNN-RNN生成器利用groundtruth較粗級標簽作為輸入,并聯(lián)合優(yōu)化粗略和精細預測,如(8)所示。
大號? 小號小號= - 1?Σ我=1?(Σ噸=1?Σ? =1c ^+ ?F 1 { X我噸 = ? }登錄p?)損耗=-1NΣi= 1N(σT=1TΣj= 1C + F1 { xti = j}log?pj)
(8)在推理階段,當?shù)孛孑^粗級標簽不可用時,CNN-RNN發(fā)生器首先預測當前時間步的最大似然標簽,即 Wt = a r g m a xWt -1 p(Wt -1 | I ) Wt = argmaxWt-1p(Wt-1 | I) ,然后利用預測的標簽作為下一個時間步的輸入。
此外,我們使用CIFAR-100 [ 18 ] 上的t-SNE技術(shù)[ 43 ] 可視化不同時間步長的LSTM激活,如圖5所示 。這兩次激活分別用于粗略和精細預測。我們可以看到,第二個時間步的激活比第一個時間步的激活更具辨別力。在新窗口中打開圖片圖5圖5
不同時間步長的LSTM激活的可視化。左邊是用于粗標簽分類的特征,而右邊的特征用于精細標簽分類
由于CNN-RNN生成器定義了超類別,并且它同樣訓練和預測超類別,因此我們不需要為不同級別的類別設(shè)計特定網(wǎng)絡(luò)。因此,CNN-RNN生成器是健壯的,并且可以用于生成不同長度的分層標簽。
4 實驗
我們在三個眾所周知的數(shù)據(jù)集上進行實驗:CIFAR-100 [ 18 ],ImageNet 2012 [ 32 ]和ImageNet 2010的子集[ 30 ]。這三個數(shù)據(jù)集提供了分層圖像標簽。表1總結(jié)了三個數(shù)據(jù)集的特征 。表格1
數(shù)據(jù)集的特征,包括層次結(jié)構(gòu)的深度,粗類別和精細類別的數(shù)量性能基于前1精度測量。所有實驗均使用帶有NVIDIA TITAN X卡的Caffe [ 16 ]庫進行。
實驗可分為兩部分。在第一部分中,我們評估分層預測的性能。在第二部分中,我們研究了子類別分類的性能,當只有一部分訓練數(shù)據(jù)標有精細標簽而其余部分只有粗標簽時。
4.1 分層預測
我們評估了兩個廣泛使用的數(shù)據(jù)集的層次結(jié)構(gòu)預測:CIFAR-100 [ 18 ]和ImageNet 2012 [ 32 ]。
4.1.1 CIFAR-100
CIFAR-100包含100個類,每個類有500個訓練圖像和100個測試圖像。這些類進一步分為20個超類。因此,每個圖像都帶有兩個級別標簽:一個精細標簽(它所屬的類)和一個粗標簽(它所屬的超類)。對于數(shù)據(jù)預處理,我們使用通道平均值和標準偏差對數(shù)據(jù)進行標準化。符號“+”表示標準數(shù)據(jù)增強,即首先在每側(cè)填充4個像素的零填充,并從填充圖像或其水平反射中隨機裁剪32×32圖像。
評估分層圖像分類任務(wù)
基于CNN的生成器和CNN-RNN生成器被認為是實現(xiàn)分層圖像分類任務(wù)的兩種替代結(jié)構(gòu)。與基于CNN的發(fā)生器相比,CNN-RNN生成器可以有效地利用分層標簽的依賴性,從而實現(xiàn)粗略和精細類別的更好的分類性能。我們比較它們在表2中的表現(xiàn) 。表2
粗類別和精細類別的準確性比較。
本部分的所有評估均基于[ 25 ]中提出的CNN模型進行,因為它具有較高的培訓效率和CIFAR-100的良好性能。CNN結(jié)構(gòu)如圖6所示 。我們采用與[ 25 ]中使用的完全相同的實驗配置。在新窗口中打開圖片圖6圖6
[ 25 ]中提出的CNN基線
可以看出,CNN-RNN發(fā)生器可以明顯優(yōu)于基于CNN的發(fā)生器,用于具有/不具有數(shù)據(jù)增強的粗略/精細預測。具體地,對于粗略預測,CNN-RNN發(fā)生器優(yōu)于基于CNN的發(fā)生器至少5.05%,而對于精細預測,CNN-RNN發(fā)生器甚至更有利,具有超過6.7%的改進。這表明,通過利用粗略和精細類別之間的潛在關(guān)系,RNN可以正確地解決基于分層的任務(wù)。
評估傳統(tǒng)的圖像分類任務(wù)
傳統(tǒng)的圖像分類任務(wù)包括將圖像分類為一個預定義的類別,而不是多個分層類別。
由于CNN-RNN發(fā)生器可以同時生成粗標簽和精細標簽,在這一部分中,我們進一步將其性能與“粗略特定”和“精細特定”網(wǎng)絡(luò)進行比較?!熬毺囟ā本W(wǎng)絡(luò)使用常見的CNN結(jié)構(gòu),該結(jié)構(gòu)專門用于精細類別分類?!按致蕴囟ā本W(wǎng)絡(luò)與“精細特定”網(wǎng)絡(luò)共享相同的前一層,其中最后一層適合于等于粗略類別編號,例如對于CIFAR-100而言為20。
可以基于任何CNN架構(gòu)來構(gòu)造粗略特定的,精細特定的和CNN-RNN框架。為了使比較更加通用和令人信服,我們評估了三個網(wǎng)絡(luò)的性能:CNN-7 [ 25 ],wrn-28-10 [ 53 ]和我們提出的更廣泛的Resnet。這三個數(shù)據(jù)集的結(jié)果如表4所示 。我們可以看到,CNN-RNN可以同時生成粗略和精細標簽,而無需開發(fā)兩個單獨的模型,兩個類別的準確性都優(yōu)于特定網(wǎng)絡(luò)。以我們提出的更廣泛的Resnet為例,CNN-RNN結(jié)構(gòu)在粗略特定和精細特定網(wǎng)絡(luò)上分別提高了2.85%和1.17%的粗精度和精確度。該優(yōu)點表明,通過利用粗略和精細類別的潛在關(guān)系,CNN-RNN可以幫助傳統(tǒng)的圖像分類任務(wù)。表4
粗類別和精細類別的準確性比較。對于每個網(wǎng)絡(luò),CNN-RNN可以獲得更好的結(jié)果,并且他們的結(jié)果是粗體我們對wrn-28-10 [ 53 ]的實現(xiàn)不能重現(xiàn)原始發(fā)表的結(jié)果,可能是由于平臺(Torch vs Caffe)的差異,或者預處理步驟的差異(墊與原始圖像與墊的反射)零)。盡管如此,通過利用CNN-RNN結(jié)構(gòu),我們?nèi)匀豢梢詫⒋志群途_度分別提高2.8%和1.68%。
與最先進的技術(shù)進行比較
我們將更廣泛的Resnet網(wǎng)絡(luò)及其CNN-RNN變體與現(xiàn)有技術(shù)進行比較,如表5所示 。表5
CIFAR-100數(shù)據(jù)集上不同方法的測試誤差,標準數(shù)據(jù)增強(平移/鏡像)。最好的結(jié)果是大膽的
通過比較,我們進一步證明了更廣泛的網(wǎng)絡(luò)對CIFAR-100數(shù)據(jù)集的優(yōu)越性,因為我們不是非常深的更寬的Resnet網(wǎng)絡(luò)(29層)超過了具有超深層(1001層)的ResNet的性能。與具有相似深度的另一個廣泛的ResNet [ 53 ] 相比,更寬的Resnet也表現(xiàn)出很大的改進,并且在相同平臺和預處理步驟下將分類誤差從25.45%顯著降低到22.03%。
總的來說,我們提出的更廣泛的Resnet實現(xiàn)了比以前的工作更好的性能,更廣泛的Resnet-RNN進一步將最新技術(shù)提升到20.86%。盡管如此,我們?nèi)栽趯で笤谖磥碜钕冗M的架構(gòu)之上構(gòu)建CNN-RNN框架,以提升分類性能。
4.1.2 ImageNet 2012
RNN的一個顯著優(yōu)點是它可以生成具有可變長度的序列。為了證明這一點,我們在廣泛使用的ImageNet 2012數(shù)據(jù)集[ 32 ] 上研究了CNN-RNN框架。
ImageNet是根據(jù)WordNet層次結(jié)構(gòu)組織的圖像數(shù)據(jù)集[ 27 ]。它的規(guī)模和多樣性比其他圖像分類數(shù)據(jù)集更大。ImageNet 2012使用ImageNet的一個子集,在1000個類別中每個都有大約1300個圖像。圖像用不同長度的分層標簽注釋??偣灿写蠹s120萬個訓練圖像和50000個驗證圖像。對于所有實驗,我們在訓練圖像上訓練我們的模型,并測試ImageNet 2012數(shù)據(jù)集的驗證圖像。
我們使用ResNet-152 [ 12 ]作為我們的CNN模型。為簡單起見,預先訓練的模型權(quán)重保持固定而不進行微調(diào)。對于RNN模型,我們使用1000維度進行嵌入和LSTM內(nèi)存的大小。在實驗過程中,我們首先將所有圖像調(diào)整為224×224像素并使用ResNet-152提取最后的池特征,然后將這些特征發(fā)送到LSTM以對類別依賴性進行建模。
展示了一些示例圖像的分層預測,我們可以從中觀察到:首先,RNN能夠生成具有不同長度的預測,并且更具體的類別將具有更多分層標簽。其次,層次標簽可以描述精細類別如何從更高級別的粗類別演變而來,從而可以使我們更好地理解對象??紤]例如圖7中的上圖 a,我們可能會對葉級標簽感到困惑:'Granny Smith'。但是當提供粗級標簽時,我們觀察到'格蘭尼史密斯'是一種蘋果。第三,將圖像分類為葉級別類別可能比分支級別類別更難。當我們?yōu)榻o定的圖像錯誤的葉級的預測,我們?nèi)钥赡軙W到什么形象從粗預測描述,如圖。 7灣 在新窗口中打開圖片圖7圖7
一些示例圖像的分層預測。 a 和 c 顯示了一些積極的例子。 b 顯示了部分錯誤預測的示例,例如正確的粗標簽和錯誤的精細標簽。 d 顯示與(c)相同類別的例子,但它們具有完全錯誤的預測
4.2 從粗略類別到精細類別
在上一節(jié)中,我們研究了當所有粗標簽和精細標簽可用于訓練數(shù)據(jù)時CNN-RNN的分級分類性能。但是,為大量訓練數(shù)據(jù)注釋精細標簽非常昂貴,尤其是在需要專業(yè)知識時。在本小節(jié)中,我們將重點放在一個場景中,其中一部分訓練數(shù)據(jù)用精細標簽注釋,而其余部分只有粗標簽。這可以被視為弱監(jiān)督學習的一個特例,并且在[ 30 ]中曾經(jīng)被研究過。
我們遵循[ 30 ] 的實驗設(shè)置,并在ImageNet 2010的子集上進行我們的實驗。該數(shù)據(jù)集特別選擇了ImageNet 2010中具有唯一父類的類,并相應(yīng)地獲得了143個粗類和387個精細類。減少的訓練集包含487K圖像,其中每個粗類具有1.4K和9.8K之間的圖像,并且每個精細類具有668到2.4K圖像。測試集包含21450個圖像,每個粗類包含150個圖像。
所有的圖像特征都是從VGG-Net [ 35 ] 中提取出來的,正如[ 30 ]中的初步實驗所做的那樣。
評估所有培訓標簽可用時的分類性能
當所有粗標簽和精細標簽都可用時,我們可以直接在完整訓練集上訓練RNN,并評估測試集上的分類性能。為了更好地展示RNN的優(yōu)勢,我們進一步在訓練集的一小部分上進行訓練。此外,我們研究了為測試數(shù)據(jù)提供粗標簽時,以及當我們以端到端的方式訓練CNN-RNN而不是使用現(xiàn)成的圖像功能時性能可以提高多少。作為與CNN-RNN框架的比較,我們還對ImageNet 2010子集上的VGG-Net進行了微調(diào)。
RNN:使用VGG-Net提取的圖像特征訓練RNN [ 35 ]; CNN:微調(diào)ImageNet 2010子集上的VGG-Net [ 35 ]; CNN-RNN:以端到端的方式聯(lián)合訓練VGG-Net [ 35 ]和RNN; 我們使用上標'*'來表示在預測測試階段的精細標簽時提供粗標簽
我們可以注意到,對更多數(shù)據(jù)的訓練可以產(chǎn)生更強大的RNN模型,從而可以獲得更好的性能。訓練有素的訓練集的部分,即0.2車型相比小號 和0.4 小號,利用完整的訓練集 小號 分別表現(xiàn)出2.18%和1.1%,同比提高。它揭示了,大型訓練數(shù)據(jù)集對于訓練深層模型至關(guān)重要。
與[ 30 ]中列出的其他方法相比,RNN通過固有地利用粗類和精類之間的關(guān)系實現(xiàn)了卓越的分類性能。值得注意的是,即使僅使用20%的訓練數(shù)據(jù),RNN也能提供更好的性能。
CNN-RNN框架的另一個優(yōu)點是可以端到端地進行訓練。與現(xiàn)有CNN功能產(chǎn)生的預測相比,聯(lián)合訓練CNN和RNN的結(jié)果顯著改善,從77.27%提高到82%。它也比在ImageNet 2010子集上直接微調(diào)VGG-Net要好得多(82%對76.01%)。當為測試圖像提供粗標簽時,CNN-RNN達到90.69%的準確度。
在缺少部分培訓用標簽時評估分類性能
該 部分中的訓練集 S被隨機分為兩個不相交的集合: S c o a r s e 和 S f i n e 。 小號 ? ? 一個 ? 小號 ? 僅具有粗糙的標簽,而 小號 ?F 我 ? ? 同時具有粗和細的標簽。我們變化| S f i n e |∈{0.1 | S |,0.2 | S |,0.5 | S |},以及每個 S f i n e ,我們進一步改變| S c o a r s e |∈{0.1 | S |,0.2 | S |,0.5 | S |}。
對于每個培訓/測試配置,我們進行三次評估:
1)小號 ?F 我 ? ? :我們培養(yǎng)的RNN 小號 ?F 我 ? é ,并在測試集評估;
2)小號 ?F 我 ? ? + 小號-? ? 一個[R小號? Scoarse- :首先,我們培養(yǎng)的RNN 小號 ?F 我 ? ? ,并用它來預測的精細標簽 小號 ? ? 一個 [R 小號 ? 。通過這種方式,我們得到了一個新的訓練集 小號-? ? 一個[R小號ê Scoarse- ,它同時包含粗和(預測)的罰款標簽。接下來,我們利用 S f i n e 和 小號-? ? 一個? 小號? Scoarse- 重新訓練RNN,并在測試組評價。
3)小號 ?F 我 ? ? + 小號+? ? 一個? 小號? Scoarse + :我們訓練RNN上 小號 ?F 我 ? ? 和 小號+? ? 一個? 小號? Scoarse + ,并在測試組評價。 小號+? ? 一個? 小號? Scoarse + 意味著我們利用的地面實況細標簽 小號 ? ? 一個 ? 小號 ? 。
一般而言, 小號 ?F 我 ? ? + 小號-? ? 一個? 小號? Scoarse- 執(zhí)行優(yōu)于 小號 ?F 我 ? ? ,表明即使是一些細標簽數(shù)據(jù)丟失的訓練的,細類型分類可以從中受益CNN-RNN結(jié)構(gòu)。
由于S f o a r s e 的精細標簽 是由在S f i n e 訓練的RNN預測的 ,因此無法保證它們的準確性。因此,RNN的第二次訓練可以在部分錯誤的標記數(shù)據(jù)集上進行。當|時,這尤其嚴重 S f i n e | 是小。正如我們在圖8a中所見 ,當| S f i n e | = 0.1 | S |,分類幾乎沒有受益于使用 S c o a r s e 與僅在S f i n e 上訓練的RNN相比 。
相反,當| S f i n e | 很大,例如| S f i n e | = 0.5 | 小號 |,我們就可以實現(xiàn)通過將相當大的改進 小號 ? ? 一個 [R 小號 ? 。值得注意的是,當| S f i n e | = 0.5 | S|,| S c o a r s e | = 0.1 | S |, S f i n e + S-c o一個? 小號? Scoarse- 甚至表現(xiàn)得比稍好 小號 ?F 我 ? ? + 小號+? ? 一個? 小號? Scoarse + ,表明在弱監(jiān)督分類其巨大潛力。
我們進一步將我們的方法與NN-H-RNCMF [ 30 ]進行比較,后者也試圖通過利用層次結(jié)構(gòu)來改進分類。我們將粗標記數(shù)據(jù)的數(shù)量設(shè)置為| S c o a r s e | = 0.5 | S |,并且變化| S f i n e |∈{0.1 | S |,0.2 | S |,0.5 | S |},結(jié)果如表7所示 ??梢钥闯?,RNN在所有配置中都比NN-H-RNCMF表現(xiàn)得好得多,證明了它在利用層次關(guān)系方面的巨大潛力。表7
為測試集分類精細類別的準確性。我們將粗標記數(shù)據(jù)的數(shù)量設(shè)置為| S c o a r s e | = 0.5 | S |。最好的結(jié)果是大膽的
5 結(jié)論
在本文中,我們提出將CNN和RNN集成以完成分層分類任務(wù)。CNN-RNN框架可以端到端地進行訓練,并且可以建立在主要用于葉級分類的任何CNN結(jié)構(gòu)之上,并且進一步促進精細類別的預測。此外,我們還研究了分類如何從粗略標記的訓練數(shù)據(jù)中受益,這減輕了細粒度注釋的專業(yè)和昂貴的手動過程。
目前,為了訓練RNN,必須在訓練集中具有分層標簽。但是,這不適用于許多小型數(shù)據(jù)集。將來,我們將研究利用傳統(tǒng)的聚類方法自動構(gòu)建對象的層次結(jié)構(gòu),并使用CNN-RNN來提高一般數(shù)據(jù)集的分類性能。
