深度學習論文翻譯解析(十):Visualizing and Understanding Convolutional Networks

論文標題:Visualizing and Understanding Convolutional Networks

  標題翻譯:可視化和理解卷積網路

論文作者:Matthew D. Zeiler  Rob Fergus

論文地址://arxiv.org/pdf/1311.2901v3.pdf

             //arxiv.org/abs/1311.2901

參考的翻譯部落格://blog.csdn.net/kklots/article/details/17136059

聲明:小編翻譯論文僅為學習,如有侵權請聯繫小編刪除博文,謝謝!

            小編是一個機器學習初學者,打算認真研究論文,但是英文水平有限,所以論文翻譯中用到了Google,並自己逐句檢查過,但還是會有顯得晦澀的地方,如有語法/專業名詞翻譯錯誤,還請見諒,並歡迎及時指出。

前言

  在所有深度網路中,卷積神經網路和影像處理最為密切相關,卷積網在很多圖片分類競賽中都取得了很好的效果,但卷積網調參過程很不直觀,很多時候都是碰運氣,我們卻不知道原因。為此,卷積網發明者 Yann  LeCun 的得意門生 Matthew Zeiler 在 2013年專門寫了一篇論文,闡述了如何用反卷積網路可視化整個卷積網路,並進行分析和調優,該論文是在AlexNet基礎上進行了一些細節的改進,網路結構上並沒有太大的突破,但是最大的貢獻是通過使用可視化技術揭示了神經網路各層到底是在幹什麼,起到了什麼作用。

  從科學的觀點觸發,如果不知道神經網路為什麼取得了如此好的效果,那麼只能靠不停的實驗來尋找更好的模型。這篇文獻的目的,就是要通過特徵可視化,查看精度變化,從而知道CNN學習到的特徵如何。它使用一個多層的反卷積網路來可視化訓練過程中特徵的演化以及發現潛在的問題;同時根據遮擋影像局部對分類結果的影響來探討對分類任務而言到底那部分輸入資訊更重要。

  所以簡單總結本文內容:當輸入一張圖片到卷積網中時,網路會逐級產生特徵,但究竟是圖片中的那一部分刺激網路產生了特定特徵,沒法直接得到;作者想到了一種辦法:將產生的特徵通過反卷積技術,重構出對應的輸入刺激,而重構的刺激只會顯示真正有用東西,作者就可以通過分析這些資訊來分析模型,實現模型調優。

摘要

  近些年,大型卷積神經網路模型在 ImageNet數據集上表現出令人印象深刻的效果(如 2012年的Krizhevsky),但是由很多人還沒有搞懂為什麼這些卷積模型會取得如此好的效果,以及如何提高分類效果。在這篇文章中,我們對這兩個問題均進行了討論。我們介紹了一種創新性的可視化技術可以深入觀察中間的特徵層函數的作用以及分類器的行為。作為一項類似診斷性的技術,可視化操作可以使我們找到比 Krizhevsky(AlexNet模型)更好的模型架構。在ImageNet分類數據集上,我們還進行了一項抽絲剝繭的工作,以發現不同的層對結果的影響。我們看到,當 Softmax分類器重新訓練後,我們的模型在 ImageNet數據集上可以很好地泛化到其他數據集,瞬間就擊敗了現如今 Caltech-101以及 Caltech-256 上的最好的方法。

 

 

1,引言

  自從 1989年 LeCun 等人研究推廣卷積神經網路(以下稱為 CNN)之後,在 1990年代,CNN在一些影像應用領域展現出極好的效果,例如手寫字體分類,人臉識別等等。在去年,許多論文都表示他們可以在一些有難度的數據集上取得較好的分類效果,Ciresan等人於 2012年在 NORB 和 CIFAR-10 數據集上取得了最好的效果。更具有代表性的是 Krizhevsky 等人 2012 的論文,在ImageNet 2012 數據集分類挑戰中取得了絕對的優勢,他們的錯誤率僅有 16.4%,與此相對的第二名則是 26.1%。造成這種有趣的現象的因素有很多:(i)大量的訓練數據和已標註數據;(ii)強大的 GPU訓練;(iii)更好的正則化方法如 Dropout(Hinton et al,2012)

  儘管如此,我們還是很少能夠深入理解神經網路中的機制,以及為何他們能取得如此效果。從科學的角度來說,這是遠遠不夠的。如果沒有清楚地了解其中的本質,那麼更好的模型的開發就只能變成整天像無頭蒼蠅一樣亂試。在本文中,我們利用反卷積網重構每層的輸入資訊,再將重構資訊投影到像素空間中,從而實現了可視化。通過可視化技術來分析「輸入的色彩如何映射不同層上的特徵」,「特徵如何隨著訓練過程發生變化」等問題,甚至利用可視化技術來診斷和改進當前網路結果可能存在的問題。我們還進行了一項很有意義的研究,那就是遮擋輸入影像的一部分,來說明那一部分是對分類最有影響的。

 

  使用這些方法,我們從 Krizhevsky 模型的體系結構開始,逐步探索了其他不同模型的體系結構,發現他們的性能優於 ImageNet 上的結果。我們還探索了不同數據集上模型的泛化能力,僅依靠在上面重新訓練 Softmax層。因此,我們這兒討論的是一種有監督的預訓練形式,與 Hinton 和 Bengio,Vincent等人推廣的無監督的訓練方法不同。另外 Convnet 特徵的泛化能力的討論在 Donahue 的 2013的論文中也有探討過。

 

1.1  相關工作

  通過對神經網路可視化方法來獲得一些科研靈感是很常有的做法,但大多數都局限於第一層,因為第一層比較容易映射到像素空間。在較高的網路層就難以處理了,只有有限的解釋節點活躍性的方法。Erhan等人 2009 的方法,通過在影像空間中執行梯度下降以最大化單元的激活來找到每個單元的最大響應刺激方式。這需要很細心的操作,而且也沒有給出任何關於單位某種恆定屬性的資訊。受此啟發有一種改良的方法,(Leet al ,2010)在(Berkes & Wiskott 2006)的基礎上做一些延伸,通過計算一個節點的 Hessian矩陣來觀測節點的一些穩定的屬性,問題在於對於更高層次而言,不變性非常複雜,因此通過簡單的二次近似法(quadratic  approximation)很難描述。相反,我們的方法提供了非參數化的不變性視圖,顯示了訓練集中的哪些模式激活了特徵映射。(Donahue等,2013)顯示了可視化,看可視化結果能表明模型中高層的節點究竟是被哪一塊區域給激活。我們的可視化效果不同,因為它不僅僅是輸入影像的作物,而是自上而下的投影,它揭示了每個修補程式內的結構,這些結構會刺激特定的特徵圖譜。

 

2,實現方法

  本文採用了由(LeCun etal. 1989)以及(Krizhevsky etal 2012)提出的標準的有監督學習的卷積網模型,該模型通過一系列隱含層,將輸入的二維彩色影像映射成長度為C的一維概率向量,向量的每個概率分別對應 C 個不同分類,每層包含以下部分:1,卷積層,每個卷積圖都由前面一層網路的輸出結果(對於第一層來說,上層輸出結果就是輸入圖片),與學習獲得的特定核進行卷積運算產生;2,矯正層,對每個卷積結果都進行矯正運算 relu(x) = Max(0, 1);3 [可選] max pooling 層,對矯正運算結果進行一定領域內的 max pooling 操作,獲得降取樣圖;4 [可選] 對降取樣圖進行對比度歸一化操作,使得輸出特徵平穩。更多操作細節,請參考(Krizhevsky et al 2012)以及(Jarrett et al 2009)。最後幾乎是全連接網路,輸出層是一個 Softmax 分類器,圖3上部展示了這個模型。

  我們使用 N 張標籤圖片(x, y)構成的數據集來訓練模型,其中標籤 yi 是一個離散變數,用來表示圖片的類別。用交叉熵誤差函數來評估輸出標籤 yihat 和真實標籤 yi 的差異。整個網路參數(包括卷積層的卷積核,全連接層的權值矩陣和偏置值)通過反向傳播演算法進行訓練,選擇隨機梯度下降法更新權值,具體細節參見章節3。

2.1  通過反卷積網路(Deconvnet)實現可視化

  要想深入了解卷積網路,就需要了解中間層特徵的作用。本文將中間層特徵反向映射到像素空間,觀察出什麼輸入會導致特點的輸出,可視化過程基於(Zeiler et al 2011)提出的反卷積網路實現。一層反卷積網可以看成是一層卷積網路的逆操作,他們擁有相同的卷積核和 pooling函數(準確來講,應該是逆函數),因此反卷積網是將輸出特徵逆映射成輸入訊號。在(Zeiler et al 2011)中,反卷積網路被用作無監督學習,本文則用來可視化演示。

  為了檢查一個網路,在本文的模型中,卷積網路的每一層都附加了一個反卷積層,參見圖1,提供了一條由輸出特徵到輸入影像的反通路。首先,輸入影像通過卷積網模型,每層都會產生特定特徵,而後,我們將反卷積網中觀測層的其他連接權值全部置零,將卷積網觀測層產生的特徵當做輸入,送給對應的反卷積層,依次進行以下操作:1 unpool,2 rectify(矯正),3 反卷積(過濾以重新構建所選激活下的圖層中的活動,然後重複此操作直至達到輸入像素空間)

 

  Unpooling:嚴格來講,max pooling 操作是不可逆的,本文用了一種近似方法來計算 max pooling 的逆操作:在 max pooling 過程中,用 Max locations 「Switches」表格記錄下每個最大值的位置,在 unpooling 過程中,我們將最大值標註回記錄所在位置,其餘位置填 0,圖1底部顯示了這一過程。

  簡單說就是,在訓練過程中記錄每一個池化操作的 z*z 的區域內輸入的最大值的位置,這樣在反池化的時候,就將最大值返回到其應該在的位置,其他位置的值補0。

  Rectification:在卷積網路中,為了保證特徵有效性,我們通過 relu 非線性函數來保證所有輸出都為非負數,這個約束對反卷積過程依然成立,因此將重構訊號送入 relu 函數中。

  Filtering:卷積網使用學習得到的卷積核與上層輸出做卷積,得到特徵。為了實現逆過程,反卷積網路使用相同卷積核的轉置作為核,與矯正後的特徵進行卷積運算。

  使用原卷積核的轉秩和 feature map 進行卷積。反卷積其實是一個誤導,這裡真正的名字就是 轉秩卷積操作。

  在 unpooling過程中,由於「Switches」只記錄了極大值的位置資訊,其餘位置均用 0 填充,因此重構出的圖片看起來會不連續,很像原始圖片中的某個碎片,這些碎片就是訓練出高性能卷積網的關鍵。由於這些重構影像不是從模型中取樣生成,因此中間不存在生成式過程。

   圖1:Top:一層反卷積網路(左)附加在一層卷積網(右)上。反卷積網路層會近似重構出下卷積網路層產生的特徵。 Bottom:反卷積網路 unpooling 過程的演示,使用 Switches表格記錄極大值點的位置,從而近似還原出 pooling 操作前的特徵。

 

3,訓練細節

  圖3中的網路模型與(Krizhevsky et al 2012)使用的卷積模型很相似,不同點在於:1,Krizhevsky在3, 4, 5層使用的是稀疏連接(由於該模型被分配到了兩個 GPU上),而本文用了稠密連接。2,另一個重要的不同將在章節4.1 和 圖6中詳細闡述。

  本文選擇了 ImageNet 2012 作為訓練集(130萬張圖片,超過 1000 個不同類別),首先截取每張 RGB圖片最中心的 256*256區域,然後減去整張圖片顏色均值,再截出 10 個不同的 224*224 窗口(可對原圖進行水平翻轉,窗口可在區域中滑動)。採用隨機梯度下降法學習,batchsize選擇128, 學習率選擇 0.01,動量係數選擇 0.9;當誤差趨於收斂時,手動停止訓練過程:Dropout 策略(Hinton et al 2012)運用在全連接層中,係數設為 0.5,所有權值初始化值設為 0.01, 偏置值設為0。

  圖6(a)展示了部分訓練得到的第1層卷積核,其中有一部分核數值過大,為了避免這種情況,我們採取了如下策略:均方根超過 0.1 的核將重新進行歸一化,使其均方根為 0.1.該步驟非常關鍵,因為第1層的輸入變化範圍在 [-128, 128]之間。前面提到了,我們通過滑動窗口截取和對原始影像的水平翻轉來提高訓練集的大小,這一點和(Krizhevsky et al 2012)相同。整個訓練過程基於(Krizhevsky et al 2012)的程式碼實現,在單塊 GTX580 GPU 上進行,總共進行了 70次全庫迭代,運行了 12天。

 

4,卷積網路可視化

  通過章節3描述的結構框架,我們開始使用反卷積網來可視化ImageNet驗證集上的特徵激活。

  特徵可視化:圖2展示了訓練結束後,模型各個隱含層提取的特徵,圖2顯示了在給定輸出特徵的情況下,反卷積層產生的最強的9個輸入特徵。將這些計算所得的特徵,用像素空間表示後,可以清洗的看出:一組特定的輸入特徵(通過重構獲得),將刺激卷積網路產生一個固定的輸出特徵。這一點解釋了為什麼當輸入存在一定畸變時,網路的輸出結果保持不變。在可視化結果的右邊是對應的輸入圖片,和重構特徵相比,輸入圖片之間的差異性很大,而重構特徵只包含哪些具有判別能力紋理結構。舉例說明:層5第1行第2列的9張輸入圖片各不相同,差異很大,而對應的重構輸入特徵則都顯示了背景的草地,沒有顯示五花八門的前景。

  每層的可視化結果都展示了網路的層次化特點。層2展示了物體的邊緣和輪廓,以及與顏色的組合;層3擁有了更複雜的不變性,主要展示了相似的紋理(例如:第1行第1列的網格模型;第2行第4列的花紋);層4不同組重構特徵存在著重大差異性,開始體現類與類之間的差異:狗狗的臉(第一行第一列),鳥的腿(第4行第2列);層5每組圖片都展示了存在重大差異的一類物體,例如:鍵盤(第1行第1列),狗(第4行)

  特徵在訓練過程中的演化:圖4展示了在訓練過程中,由特定輸出特徵反向卷積,所獲得的最強重構輸入特徵(從所有訓練樣本中選出)是如何演化的,當輸入圖片中的最強刺激源發生變換時,對應的輸出特徵輪廓發生跳變。經過一定次數的迭代後,底層特徵趨於穩定。但更高層的特徵則需要更多的迭代才能收斂(約 40~50個周期),這表明:只有所有層都收斂時,分類模型才堪用。

  特徵不變性:圖5展示了5個不同的例子,他們分別被平移,旋轉和縮放。圖5右邊顯示了不同層特徵向量所具有的不變性能力。在第1層,很小的微變都會導致輸出特徵變換明顯,但越往高層走,平移和尺度變換對最終結果的影響越小。總體來說:卷積網路無法對旋轉操作產生不變性,除非物體具有很強的對稱性。

   圖2 :訓練好的卷積網路,顯示了層2到層5通過反卷積層的計算,得到9個最強輸入特徵,並將輸入特徵映射到了像素空間。本文的重構輸入特徵不是取樣生成的:他們是固定的,由特定的輸出特徵反卷積計算產生。每一個重構輸入特徵都對應的顯示了它的輸入影像。三點啟示:1 每組重構特徵(9個)都有強相關性;2 層次越高,不變性越強;3都是原始輸入圖片具有強辨識度部分的誇張展現。例如:狗的眼睛,鼻子(層4, 第一行第1列)

 

4.1 結構選擇

  觀察 Krizhevsky 的網路模型可以幫助我們在一開始就選擇一個好的模型。反卷積網路可視化技術顯示了 Krizhevsky 卷積網路的一些問題。如圖 6(a)以及 6(d)所示,第1層卷積核混雜了大量的高頻和低頻資訊,缺少中頻資訊;第二層由於卷積過程選擇4作為步長,產生了混亂無用的特徵。為了解決這些問題,我們做了如下的工作:(i)將第一層的卷積核大小由11*11 調整到 7*7;(ii)將卷積步長由  4調整為2;新的模型不但保留了1, 2層絕大部分的有用特徵,如圖 6(c),6(e)所示,還提高了最終分類性能,我們將在章節5.1看到具體結果。

 

4.2 遮擋靈敏性

  當模型達到期望的分類性能時,一個自然而然的想法是:分類器究竟使用了什麼資訊實現分類?是影像中具體位置的像素值,還是影像中的上下文。我們試圖回答這個問題,圖7中使用了一個灰色矩陣對輸入影像的每個部分進行遮擋,並測試在不同遮擋情況下,分類器的輸出結果,可以清楚地看到:當關鍵區域發生遮擋時,分類器性能急劇下降。圖7還展示了最上層卷積網的最強響應特徵,展示了遮擋位置和響應強度之間的關係:當遮擋發生在關鍵物體出現的位置時,響應強度急劇下降。該圖真實的反映了輸入什麼樣的刺激,會促使系統產生某個特定的輸出特徵,用這種方法可以一一查找出圖2和圖4中特定特徵的最佳刺激是什麼。

 

4.3 圖片相關性分析

  與其他許多已知的識別模型不同,深度神經網路沒有一套有效理論來分析特定物體部件之間的關係(例如:如何解釋人臉眼睛和鼻子在空間位置上的關係),但深度網路很可能非顯式的計算了這些特徵。為了驗證這些假設,本文隨機選擇了5張狗狗的正面圖片,並系統性地擋住狗狗所有照片的一部分(例如:所有的左眼,參見圖8)。對於每張圖I,計算:

  其中 xil 和 xilhat 分別表示原始圖片和被遮擋圖片所產生的的特徵,然後策略所有圖片對(i, j)的誤差向量 epsilon 的一致性:

   其中,H 是 Hamming distance, Δl 值越小,對應操作對狗狗分類的影響越一致,就表明這些不同圖片上被遮擋的部件越存在緊密聯繫。表1 中我們對比了遮擋 左眼,右眼,鼻子的 Δ 比隨機遮擋的 Δ 更低,說明眼睛圖片和鼻子圖片內部存在相關性。第5層鼻子和眼睛的得分差異明顯,說明第5層卷積網對部件級(鼻子,眼睛等等)的相關性更為關注;第7層各個部分得分差異不大,說明第7層卷積網路開始關注更高層的資訊(狗狗的品種等等)。

   圖3  本文使用8層卷積網路模型。輸入層為 224*224 的3通道 RGB影像,從原始影像裁剪產生。層1 包含了 96個卷積核(紅色表示),每個核大小為 7*7 ,x和 y方向的跨度均為2。獲得的卷積圖進行如下操作:1 通過矯正函數 relu(x) = max(0, x),使所有卷積值均不小於0(圖中未顯示);2 進行 max pooling 操作(3*3 區域,跨度為2);3 對比度歸一化操作。最終產生 96個不同的特徵模板,大小為 55*55。層2, 3, 4, 5都是類似操作,層5輸出 256個 6*6 的特徵圖。最後兩層網路為全連接層,最後層是一個 C類softmax函數,C為類別個數。所有的卷積核與特徵圖均為正方形。

   圖4 模型特徵逐層演化過程。從左至右的塊,依次為層1到層5的重構特徵。塊展示在隨機選定一個具體輸出特徵時,計算所得的重構輸入特徵在第 1, 2, 5, 10, 20, 30, 40, 64 次迭代時(訓練集所有圖片跑1遍為1次迭代),是什麼樣子(1列為1組)。顯示效果經過了人工色彩增強。

   圖5  影像的垂直移動,尺度變換,旋轉以及卷積網路模型中相應的特徵不變性。列1:對影像進行各種變形;列2和列3:原始圖片和變形圖片分別在層1~層7所產生特徵間的歐式距離。列4:真實類別在輸出中的概率。

   圖6 (a)層1輸出的特徵,還未經過尺度約束操作,可以看到有一個特徵十分巨大;(b)(Krizhevsky et al 2012)第1層產生的特徵;(c)本文模型第1層產生的特徵。更小的跨度(2 vs 4),更小的核尺寸(7*7 vs 11*11)從而產生了更具辨識度的特徵和更少的「無用特徵」;(d):(Krizhevsky et al 2012)第二層產生的特徵;(e)本文模型第二層產生的特徵,很明顯,沒有(d)中的模糊特徵。

   圖7:輸入圖片被遮擋時的情況。灰度方塊遮擋了不同區域(第1列),會對第5層的輸出強度產生影響(b和c),分類結果也發生改變(d和e)(b):影像遮擋位置對第5層特定輸出強度的影響。(c)將第5層特定輸出特徵投影到像素空間的情形(帶黑框的),第1行展示了狗狗圖片產生的最強特徵。當存在遮擋時,對應輸入圖片對特徵產生的刺激強度降低(藍色區域表示降低)。(d)正確分類對應的概率,是關於遮擋位置的函數,當小狗面部發生遮擋時,波西米亞小狗的概率急劇降低。(e)最可能類的分布圖,也是一個關於遮擋位置的函數。在第1行中,只要遮擋區域不在狗狗面部,輸出結果都是波西米亞小狗,當遮擋區域發生在狗狗面部但有沒有遮擋網球時,輸出結果是「網球」。在第2行中,車上的紋理是第5層卷積網路的最強輸出特徵,但也很容易被誤判為「車輪」。第三行包含了多個物體,第5層卷積網對應的最強輸出特徵是人臉,但分類器對「狗狗」十分敏感(d)中的藍色區域,原因在於 Softmax 分類器使用了多組特徵(即有人的特徵,又有狗的特徵)。

   圖8 其他用於遮擋實驗的圖片,第1列:原始圖片,第2,3,4列;遮擋分別發送在右眼,左眼和鼻子部位;其餘列顯示了隨機遮擋。

 

 

5,實驗內容

5.1  ImageNet 2012

  該影像庫共包含了(130萬/5萬/10萬)張(訓練/確認/測試)樣例,種類數超過 1000。表2顯示了本文模型的測試結果。

  首先,本文重構了(Krizhevsky et al 2012)的模型,重構模型的錯誤率與作者給出的錯誤率十分一致,誤差在 0.1%以內,一次作為參考標準。

  而後,本文將第1層的卷積核大小調整為 7*7,將第1層和第2層卷積運算的步長改為2,獲得了相當不錯的結果,與(Krizhevsky et al 2012)相比,我們的錯誤率為 14.8%,比(Krizhevsky et al 2012)的 15.3% 提高了 0.5 個百分點。

 

   表2,ImageNet 2012分類錯誤率,星號表示了使用 ImageNet2011和ImageNet2012兩個訓練集

 

   改變卷積網路結構:如圖3所示,本文測試了改變(Krizhevsky et al 2012)模型的結構會對最終分類造成什麼樣的影響,例如:調節隱藏層節點個數,或者將某隱含層直接刪除等等。每種情況下,都將改變後的結構從頭訓練。當層6, 7被完全刪除後,錯誤率只有輕微上升;刪除掉兩個隱含卷積層,錯誤率也只有輕微上升。然而當所有的中間卷積層都被刪除後,僅僅只有4層的模型分類能力急劇下降。這個現象或許說明了模型的深度與分類效果密切相關,深度越大,效果越好。改變全連接層的節點個數對分類性能影響不大;擴大中間卷積層的節點數對訓練效果有提升,但也同時加大了全連接出現過擬合的可能。

 

5.2  特徵泛化

  上面的實驗顯示了我們的 ImageNet 模型的卷積部分在獲得最新性能方面的重要性。這由圖2 的可視化支援,它顯示了卷積層中的複雜不變性。我們現在探索這些特徵提取層的能力,以推廣到其他數據集,即 Caltech-100(Feifei 等人, 2006),Caltech-256(Grifffi等人, 2006)和 PASCAL VOC 2012。為此,我們將我們的 ImageNet 訓練的模型的第1~7層固定並使用新數據集的訓練影像在最上面訓練一個新的 Softmax 分類器(使用適當的類別數)。由於Softmax包含的參數相對較少,因此可以從相對較小的示例中快速訓練,如某些數據集的情況。

  我們的模型(Softmax)和其他方法(通常是線性 SVM)使用的分類器具有相似的複雜性,因此實驗將我們從 ImageNet 學習到的特徵表示與其他方法使用的手工標註的特徵進行比較。需要注意的是,我們的特徵表示和手工標註的特徵都是使用 Caltech 和 PASCAL 訓練集的影像設計的。例如,HOG描述中的超參數是通過對行人數據集進行系統實驗確定的(Dalal & Triggs,2005)。我們還嘗試了第二種從頭開始訓練模型的策略,即將層1~7重新設置為隨機值,並在數據集的訓練影像上訓練他們以及 Softmax。

  其中一個複雜因素是 Caltech 數據集中有一些影像也是在 ImageNet 訓練數據中。使用歸一化相關性,我們確定了這些「重疊」影像,並將其從我們的 ImageNet訓練集中移除,然後重新訓練我們的 ImageNet 模型,從而避免訓練/測試 污染的可能性。

 

  Caltech-101:我們遵循(Fei-fei等 ,2006)的程式,每類隨機選擇15或30幅影像進行訓練,每類測試50幅影像,表4中報告了每類準確度的平均值,使用 5次訓練/測試摺疊。訓練 30張影像/類的數據用時 17分鐘。預先訓練的模型在 30幅影像/類上的結果比(Bo et al 2013)的成績提高 2.2%,然而,從零開始訓練的 Convnet 模型非常糟糕,只能達到 46.5%。說明基於 ImageNet 學習到的特徵更有效。

 

 

   Caltech-256:遵循(Griffin et al 2006)的測試方法進行測試,為每個類選擇15, 30, 45,或 60 個訓練圖片,結果如表5所示,基於ImageNet預先學習的模型在每類 60 訓練影像上以準確率高出 19% (74.2% VS 55.2%)的巨大優勢擊敗了歷史最好的成績。圖9從另一個角度(一次性學習)描述了基於 ImageNet 預先學習模型的成功,只需要6張 Caltech-256訓練影像即可擊敗使用10倍影像訓練的先進方法,這顯示了ImageNet特徵提取器的強大功能。

 

 

 

  PASCAL 2012:我們使用標準的訓練和驗證影像在ImageNet預訓練的網路頂部訓練20類Softmax。這並不理想,因為 PASCAL 影像可以包含多個對象,而我們的模型僅為每個影像提供一個單獨的預測。表6顯示了測試集的結果。PASCAL 和 ImageNet 的影像本質上是完全不同的,前者是完整的場景而後者不是。這可能解釋我們的平均表現比領先(Yan et al 2012)的結果低 3.2%,但是我們確實在 5類的結果上擊敗了他們,有時甚至大幅度上漲。

 

5.3 特徵分析

   我們研究了 ImageNet 預訓練模型在每一層如何區分特徵的。我們通過改變 ImageNet模型中的層數來完整這一工作,並將線性SVM 或者 Softmax 分類器置於頂層。表7顯示了 Caltech-101 和 Caltech-256 的結果。對於這兩個數據集,隨著我們提升模型,可以看到一個穩定的改進,使用所有層可以獲得最佳結果。該結果證明了:當深度增加時,網路可學到更好的特徵。

 

6,討論

  我們以多種方式探索了大型神經網路模型,並對影像分類進行了訓練。首先,我們提出了一種新穎的方式來可視化模型中的活動。這揭示了這些特徵遠不是隨機的,不可解釋的模式。相反,提升模型時,他們顯示出許多直觀上令人滿意的屬性,例如組合性,增強不變性和類別區別等。我們還展示了如何使用這些可視化來調試模型的問題以獲得更好的結果,例如改進(Krizhevsky et al 2012)令人印象深刻的 ImageNet 2012 結果。然後,我們通過一系列遮擋實驗證明,該模型雖然訓練了分類,但是對影像局部結構高度敏感,並不僅僅使用廣闊的場景環境。對該模型的進一步研究表明,對網路而言,具有最小的深度而不是單獨的部分對模型的性能至關重要。

  最後我們展示了 imageNet 訓練模型如何很好地推廣到其他數據集。對於Caltech-101 和 Clatech-256,數據集足夠相似,以至於我們可以擊敗最好的結果,在後一種情況下,結果有一個顯著的提高。這個結果帶來了對具有小(數量級1000)訓練集的基準效用的問題。我們的 ConvNet模型對 PASCAL 數據的推廣程度較差,這可能源於數據集偏差(Torrarba & Efors, 2011),雖然它仍處理報告的最佳結果的 3.2%之內,儘管沒有調整任務。例如,如果允許對每個影像的多個對象的使用不同的損失函數,我們的性能可能會提高。這自然也能使網路能夠很好地處理對象檢測。