1. 程式人生 > >深度學習網路篇——ZFNet(Part2 ZFNet的訓練細節)

深度學習網路篇——ZFNet(Part2 ZFNet的訓練細節)

上篇文章中我們介紹了ZFNet的發展歷程和一些演算法小心機,在這篇文章中我們將分享一下ZFNet的訓練細節!Come on!!!Baby!!!

一、ZFNet訓練細節

【AlexNet和ZFNet的區別】
1.AlexNet中使用2個GPU運的稀疏連線;在ZFNet中被單GPU密集連線替換;
2.將AlexNet第一層卷積核由11變成7,步長由4變為2(預告一波);
【ZFNet的訓練】
------(預處理)該模型在ImageNet 2012培訓集上進行了培訓(130萬張影象,分佈在1000多個不同的類別)。
------每個RGB影象都經過預處理,方法是將最小尺寸調整為256,裁剪圖片中間的256x256區域,然後減去整張影象每個畫素的顏色均值,然後用10個不同224x224視窗對原影象進行裁剪(中間區域加上四個角落,及水平翻轉影象)。
------進行隨機梯度下降法,對128個圖片組成的塊來更新引數。
------起始學習率為0.01,動量係數為0.9。當驗證集誤差趨近於收斂時,手動調整學習率。
------在全連線網路中使用係數為0.5的dropout(Hinton等,2012),且所有權值都初始化為0.01,偏置設為0。
------高訓練集的大小。
------我們在70個迭代之後停止了訓練,在單個GTX580 GPU上花了大約12天,基於(Krizhevsky等,2012)的實現。
【網路遇到的小問題】
訓練期間第一層卷積核的視覺化顯示,其中一些核數值過大,導致一些因素佔主導位置。解決辦法:為了解決這個問題,我們將RMS均方根值超過固定半徑0.01的卷積核重新歸一化,使其均方根到為0.1。這步驟是至關重要的,特別是在模型的第一層,輸入影象大致在[-128,128]範圍內。
在這裡插入圖片描述

二、卷積網路視覺化

使用剛剛講的模型,使用反捲積網路,視覺化ImageNet驗證集上的特徵啟用,展示反向生成的刺激。

1.特徵視覺化
1)展示了訓練結束後,我們模型的特徵視覺化,將模型各個隱含層提取了特徵。
------顯示前9個最強的啟用。
2)將這些計算所得的特徵,投影在畫素空間顯示時,可以清晰的看到:輸入存在一定畸變時,網路的輸出結果保持不變,即:其對輸入內容具備變形的不變性。
3)顯示的圖patch。 僅關注每個patch內的判別結構(和重構特徵相比,輸入影象間差異很大,而重構特徵只包含那些具有判別能力的紋理結構)。
例如,在第5層第1行第2列的九張輸入圖片中,各不相同,差異很大,而對應的重構輸入特徵似乎沒有什麼共同之處,但視覺化顯示此特定要素圖聚焦於背景中的草,而不是前景物件。
【每層的投影(視覺化結果),顯示了網路的層次化特點】


1)第2層展示了物體的邊緣和其他輪廓,以及與顏色的組合。
2)第3層具有更復雜的不變性,主要展示相似的紋理(例如網格圖案(R1,C1);(R2,C4))。
3)第4層顯示出顯著的變化,更具有類別特徵,開始展現類與類之間的差異:狗的臉(R1,C1);鳥的腿(R4,C2)。
4)第5層顯示具有顯著差異的一類物體,還可以對物體進行定位,例如,鍵盤(R1,C11)和狗(R4)
在這裡插入圖片描述
視覺化訓練好的模型中的特徵!
對於2-5層反捲積計算後,我們在驗證資料集的特徵對映的隨機子集中顯示前9個啟用,使用我們的反捲積網路方法向下投影到畫素空間。
我們的重建不是通過對模型取樣得到的,他們是固定由特定的輸出特徵反捲積計算產生的:它們是來自驗證集的重建模式,其在給定特徵圖中引起高啟用。
對於每個特徵對映,我們還會顯示相應的影象patch。
注意:
(i)每個特徵圖內的強關聯性
(ii)層次越高,不變性越強
(iii)原始輸入影象的強辨識度部分的誇大展現,例如,狗的眼睛、鼻子(第4層,第1行,第1列)。

2.訓練時的特徵演變
1)在訓練過程中,由輸出特徵的反向卷積,所獲得的最強重構特徵的演化。
2)當輸入圖片中最強的刺激源發生變化時,對應的輸出特徵的輪廓發生跳變。
3)可以看到:模型的較低層,在一定次數的迭代就收斂。
4)然而,上層僅在相當多的迭代後(約40-50週期)才可以收斂,證明需要讓模型訓練到所有的層完全收斂。
在這裡插入圖片描述
【上圖解讀】通過訓練模型特徵的隨機選擇的子集的演變。每個圖層的特徵都顯示:在不同的塊中(模型特徵逐層演化過程)。在每個區塊內,我們在迭代[1,2,5,10,20,30,40,64]次時,顯示隨機選擇的特徵子集。視覺化顯示給定特徵圖的最強啟用(在所有訓練示例中),使用我們的反捲積網路的方法向下投影到畫素空間。色彩對比是人為增強的。

3.特徵不變性
1)展出了5個樣本影象被平移,旋轉和縮放,同時檢視來自模型的頂層和底層的特徵向量相對於未變換特徵的變化。
------在模型的第一層中,小的變化具有顯著效果;
------但在頂部特徵層中,具有較小的影響
2)對於平移和縮放是準線性的,網路輸出對平移和縮放是穩定的。
3)除了具有旋轉對稱性的物體之外,卷積網路無法對旋轉操作產生不變性。
在這裡插入圖片描述
【上圖解讀】
行:1)垂直平移(a),旋轉(b)和尺度變化(c)2)用於在卷積網路模型中,相應的特徵不變性。
列:1)列 1:5個經歷各種轉換的原始影象。2)第2和第3列:分別來自第1層&第7層中的原始影象和變換影象的特徵向量之間的歐幾里德距離。3)第4列:當影象被轉換時,真實類別在輸出中的概率。

4.Architecture Selection結構選取
1.訓練模型的視覺化
------深入瞭解內部操作
------幫助我們選擇更好的架構
2.視覺化Krizhevsky等人的第一層和第二層的架構,問題很明顯。
------第一層卷積核後,是高頻資訊和低頻資訊的混合,幾乎沒有中頻資訊。
------第二層視覺化顯示由第一層卷積中使用的4為步長,引起的混疊偽像,產生了混亂無用的特徵。
3.為了解決這些問題,我們(剛剛預告的)
------將第一層卷積核尺寸從11x11減小到7x7
------步幅減小為2而不是4。
4.這種新架構在第1層和第2層功能中保留了更多資訊, 還提高了分類效能。
在這裡插入圖片描述
【上圖解讀】a) 第一層輸出的特徵,沒有經過尺度的約束操作。 可以看到一個特徵,會佔主導地位。
b) (Krizhevsky等,2012)第一層特徵
c) 我們ZFNet第一層的特徵。 較小的步幅(2 VS 4)和卷積核尺寸(77對1111)導致更具辨識度的特徵和更少的無用特徵。
d) (Krizhevsky等,2012)第二層特徵的視覺化
e) 我們ZFNet的第二層特徵的視覺化。這些更清晰,沒有(d)中可見的模糊特徵。
------b,d Krizhevsky等人的第一層和第二層的架構各種問題都很明顯。
------c,e 新架構在第1層和第2層功能中保留了更多資訊,它還提高了分類效能
【因而得到我們的ZFNet!】

三、ZFNet網路

1.ZFNet的網路結構
在這裡插入圖片描述
1.8層卷積網路模型的架構
2.ZFNet=(conv+relu+maxpooling)×2+(conv+relu)×3+fc×2+softmax
3.224×224個影象(具有3個通道的GRB影象)作為輸入
4.與AlexNet相比,網路結構沒什麼改進,
1)第一層
------卷積核由11變成7,步長由4變為2
------通過矯正函式,使所有的卷積值均不小於(圖中未示出),
------最大池化(33的區域內,步幅為2)
------在特徵圖之間歸一化的對比度,得到96個不同的55
55個元素特徵對映
2)層2,3,4,5中重複類似的操作。
------第3,4,5卷積層轉變為384,384,256512,1024,512。
3)在最後兩層使用全連線,將上步卷積層的特徵作為向量形式的輸入(第五層的輸出為:66256 = 9216維)。
4)最後一層是C類softmax函式,C是類的數量。

2.Occlusion Sensitivity 遮擋敏感性
1)影象分類時,一個自然的問題是:模型如何做到的分類?
------真實地識別影象中物件的位置,
------或者僅僅使用物件周圍的上下文
2)通過用灰色方塊,系統地遮擋輸入影象的不同部分,並測試在不同的遮擋情況下,分類器的輸出結果。
表明:
模型正在定位場景中的物件,因為當物件被遮擋時,正確類的概率(分類器的效能)會顯著下降。
3)展示出了最上層卷積層的最強響應特徵,展示了遮擋位置和響應強度之間的關係。當遮擋物覆蓋關鍵物體出現的區域時,我們會看到響應在強度急劇下降。
表明:
------視覺化真實地對應於刺激該特徵圖的影象結構,因此驗證了圖4和圖2中所示的其他視覺化。
------真實反映了輸入什麼樣的刺激,會促使系統產生某個特定的輸出特徵,
------用這種方法可以一一查找出圖2和圖4中特定特徵的最佳刺激。
在這裡插入圖片描述
【上圖解讀】
1)圖7:對三個不同的測試圖片的不同位置用灰色小方塊進行掩蓋後(參見第1列),觀測分類輸出的改變情況【第5層的輸出強度產生影響(b)和(c)和分類結果輸出(d)和(e)的變化】。
2)(b):某個區域被灰色小方塊掩蓋後的網路結構中,第五層的特徵圖
3)(c)將第五層的特徵圖,投影到畫素空間的情境(帶黑框的),第一行展示了狗狗圖片產生的最強特徵。當存在遮擋時,對應輸入圖片對特徵產生的刺激強度降低(藍色區域表示降低)
4)(d)正確分類對應的概率,是關於遮擋位置的函式,當小狗面部發生遮擋時,小狗分類作為輸出的概率急劇降低
5)(e)最有可能的類的標籤。也是一個關於遮擋位置的函式。
例如:第一行表明最強烈的特徵表現在狗狗的面部區域,只要遮擋區域不在狗狗面部,輸出都是波希米亞小狗,當遮擋區域發生在狗狗面部,但又沒有遮擋網球時,輸出結果是網球。在第二行中,車上的文字是第五層卷積網路的最強輸出特徵,但也很容易被誤判為車輛。第三行包含了多個物體,第五層卷積網路對應的最強輸出特徵是人臉,但分類器對於“狗”十分敏感(d中的藍色區域)原因是softmax分類器使用了多組特徵(既有人的特徵,也有狗的特徵)

3.Correspondence Analysis圖片相關性分析
1.沒有一套明確的定位機制(例如,如何解釋人臉眼睛和鼻子在空間位置上的關係)。
2.可能:深度網路模型隱式(非顯式)計算它們。
3.為了探索,本文隨機選擇了5個狗狗正面姿勢的影象,並且系統地掩蓋每個影象中的狗狗的臉部的相同部分(例如,所有左眼,參見圖8)。
4.對於每個影象i,我們計算 : 分別表示原始影象和被遮擋影象的第l層的特徵向量。然後,我們測量所有相關影象對(i; j)的誤差向量ε的一致性: ,其中H是漢明距離。 較低的值表示由遮擋操作引起的變化的更大一致性,因此不同影象中的相同物件部分之間的更緊密的對應(即,阻擋左眼以一致的方式改變特徵表示)。
5.在表1中,我們使用來自第5、7層的重構特徵來比較面部(左眼,右眼和鼻子)的三個部分與物件的隨機部分的Δ得分。
6.這些部分的得分相對於隨機物件區域較低,說明眼睛圖片和鼻子圖片內部存在相關性。
7.對於第5層,鼻子和眼睛的得分差異明顯,說明第5層卷積網路對於部件(鼻子,眼睛等)各個部分的相關性更為關注。
8.第七層各個部分的得分差異不大,說明第七層卷積網路開始關注更高層的資訊。(狗狗的品種等)
在這裡插入圖片描述
【上圖解讀】用於對應實驗的影象。 第1列:原始影象。 列2,3,4:分別遮擋右眼,左眼和鼻子。 其他列顯示隨機遮擋的示例。
在這裡插入圖片描述
【上圖解讀】
1.5種不同狗影象中,不同物件部分的相關性測量。
2.第5層中,眼睛和鼻子的較低分數(與隨機物件部分相比)
------表明網路已經開始產生了相關性。
3.在第7層,分數相差不大,
------可能是由於高層網路試圖區分不同品種的狗,而不是區域性特徵。

下一篇文章將會給大家介紹ZFNet中的最後的實驗細節,還請大家多多關注!我們還是深度學習剛入門的小學生,有些理解不到位的地方還請大大們指出。蟹蟹大家~