當前位置:
首頁 > 新聞 > 什麼是多尺度密集網路 - MSDNet?

什麼是多尺度密集網路 - MSDNet?

什麼是多尺度密集網路 - MSDNet?


本文為 AI 研習社編譯的技術博客,原標題 :

Review: MSDNet — Multi-Scale Dense Networks (Image Classification)

作者 | Sik-Ho Tsang

翻譯 | 莫爾?哈該、Yao Lu、Winteryangwt、唐里、鳶尾

編輯 | 王立魚

原文鏈接:

https://towardsdatascience.com/review-msdnet-multi-scale-dense-networks-image-classification-4d949955f6d5

本文講述了康奈爾大學、復旦大學、清華大學和Facebook人工智慧研究(FAIR)聯合開發的多尺度密集網路MSDNet。該網路的作者在2017年的CVPR中提出了DenseNet(超過2900次引用,並獲得了最佳論文獎)。並在2018年的 ICLR 中提出MSDNet(多尺度密集網路)得到了數十次引用。

使用MSDNet,訓練多個不同資源要求的分類器來自適應不同的測試時間。因此,對於高性能計算設備,圖像經過整個網路來完成圖像分類。對於有限計算資源的設備,圖像提前退出網路來完成相對粗略的圖像分類。現在來讓我們來看一下這個網路是如何工作的。

大綱:

  1. 計算受限的圖像分類概念

  2. MSDNet 架構

  3. 對隨時分類和預算批分類的評估。

  4. 網路約減和惰性計算

  5. 結果

1. 計算受限的圖像分類概念

這裡有兩種對計算受限的圖像分類的設置。

1.1 隨時分類
  • 給出任意的時間點,網路能強制輸出預測。

  • 例如:安卓應用上的移動APP。

1.2 預算批分類

一個固定的計算預算在一組大量的樣例中共享,且花費在簡單和困難樣例上的時間並不平均。這在大型機器學習應用中很有用。

例如:搜索引擎,社交媒體公司、在線廣告代理商,都要在有限硬體上處理大量數據。

截至2010年,谷歌圖像搜索已經索引了超過100億張圖片,以後可能增長到1萬億張。一個新的模型處理每張圖片即使慢了0.1秒,額外的開銷也會增加3170年的CPU時間。

在預算批分類設置中,公司可以將節約在簡單樣例上的計算量用在困難樣例上,從而提高平均準確度。

什麼是多尺度密集網路 - MSDNet?

MSDNet的示例

如上圖所示,MSDNet是一個多尺度的DenseNet。上面的路徑用於沒有縮小尺寸的圖像,下面的路徑用於更小尺度的圖片。

舉個例子,我們想分類一張貓的圖片。在通過這個網路的過程中,這個分類有了0.6的分類置信度,大於閾值。我們可以提前離開,剩下的網路直接跳過,這樣省下「簡單」圖像的計算時間。

另一方面,對於「困難」圖像,我們可能需要經過更深的網路直到分類置信度高於閾值。

因此,通過平衡花費在「簡單」和「困難」圖像的時間可以節省計算時間。

2. MSDNet架構2.1. 架構

什麼是多尺度密集網路 - MSDNet?

MSDNet架構

  • 它的垂直布局是微型的S層卷積網路(S=3)。

  • 對於第一層(l=1),通過下採樣來獲得較粗尺度的特徵圖。

  • 對於l=1,尺度為s的後續層 ,所有尺度為s和s-1的前面層的特徵圖被連接。Conv(1×1)-BN-ReLU-Conv(3×3)-BN-ReLU被使用。

  • 下面的圖和表更準確地展示了某些s和l使用的特徵圖。

什麼是多尺度密集網路 - MSDNet?

在某些位置,有一些中間分類器插在網路中間。

每一個分類器有兩個128維3*3的下採樣卷積層,後接一個2*2的平均池化層和線性層。

在訓練過程中,邏輯損失函數 L(fk)使用在每個分類器上,並最小化加權累計損失。

  • D代表訓練集,w_k>=0是分類器k的權重。

  • 經驗上w_k=1。

2.2 不同網路的中間分類器的評估

你可能會問:為什麼不將中間分類器插入ResNet和DenseNet?為什麼我們必須需要MSDNet?作者也對此進行了評估。有兩個主要原因。

什麼是多尺度密集網路 - MSDNet?

在CIFAR-100數據集上使用不同網路的中間分類器的評估

2.2.1 第一個原因
  • 問題:粗粒度特徵的缺乏。傳統的神經網路學習精粒度特徵網路的前層和粗粒度特徵在網路的後層。前層網路乏粗粒度特徵,並且附加到這些層的提早退出分類器可能會產生令人不滿意的高錯誤率。

  • 左上圖顯示了中間分類器的結果,這些分類器也插入到ResNet和DenseNet中。分類器的準確性與其在網路中的位置高度相關。特別是在ResNet(藍線)的情況下,可以觀察到可見的「階梯」模式,在第2和第4分類器之後有很大的改進 - 位於彙集層。

  • 解決方案:多尺度特徵圖。MSDNet在整個網路中維護多個比例的特徵表示,並且所有分類器僅使用粗粒度特徵。

  • 水平連接保留並進行高解析度信息,這有助於在後續層中構建高質量的粗粒度特徵。垂直連接在整個過程中產生粗粒度的特徵,易於分類。

2.2.2. 第二個原因

  • 問題:早期的分類器會影響以後的分類器。右上圖顯示了最終分類器的精度與單個中間分類器的位置的關係,相對於沒有中間分類器的網路的精度。

  • 引入中間分類器會損害最終的ResNet分類器(藍線),將其準確度降低多達7%。ResNet中的這種精確度降低可能是由影響早期特徵的中間分類器在短期而不是最終層優化而引起的。

  • 解決方案:密集連接。相比之下,DenseNet(紅線)受這種影響的影響要小得多。這是因為在DenseNet中,使用連接而不是在ResNet中使用加法來組合要素圖。較早層的特徵映射可以繞過與後續層的密集連接。最終分類器的性能變得(或多或少)獨立於中間分類器的位置。

3.任意時間分類和預算批分類評估3.1. 任意時間分類

在任意時間分類中,存在一個可用於每個測試樣例的有限的計算預算B>0。

在任意時間設置的測試期間,輸入通過神經網路傳播直到預算B全部用完並且輸出最接近的預測

3.2. 預算批分類

在預算批分類中,在預先知道的有限計算預算B>0的情況下,模型需要去分類一個Dtest樣例集合{x1, ..., xM} 。

預算批處理可能會花費少於B/M的計算用於分類簡單樣例,同時花費更多的B/M計算應用於困難樣例。

因此,當我們擁有一大批的測試樣例,預算B就被認為是一個軟約束。

在測試時,示例遍歷網路並且如果其預測置信度(作為置信度量的softmax概率的最大值)超過預定閾值θk,則在分類器fk之後退出。在開始訓練之前,我們計算需要將網路處理到第K個分類器的計算成本Ck。

我們用0

什麼是多尺度密集網路 - MSDNet?

  • 一個樣本在K分類其中退出的可能性

  • z是歸一化常數在這裡。

什麼是多尺度密集網路 - MSDNet?

我們需要確保在Dtest中對所有樣品進行分類的總成本不超過我們的預算B,從而產生約束:

什麼是多尺度密集網路 - MSDNet?

然後,我們可以解決上述問題,並在保留/驗證集上指定閾值,使得大約一小部分qkvalidation樣本在第k個分類器處退出。

4.網路減少和懶惰計算

有兩種直接的方法可以進一步降低MSDNets的計算要求。

什麼是多尺度密集網路 - MSDNet?

首先,在網路的最後一層之前保持所有更精細的比例是低效的。減小網路大小的一個簡單策略是沿深度維度將其分成S塊,並且僅在第i個塊中保持最粗糙(S-i + 1)比例,如上所示。這降低了訓練和測試的計算成本。

其次,由於第1層的分類器僅使用最粗尺度的特徵,因此第1層中的更精細的特徵圖(以及先前S-2層中的一些更精細的特徵圖)不會影響該分類器的預測。因此,「對角塊」中的計算被分組,使得我們僅沿著評估下一個分類器所需的路徑傳播該示例。當我們需要停止因為計算預算耗盡時,這最小化了不必要的計算。這種策略稱為懶惰計算。

5.結果5.1 數據集

CIFAR-10 & CIFAR-100,這兩個CIFAR數據集包括了50000張訓練圖像和10000張測試圖像,且均為32x32像素大小。5000張訓練圖像作為一個驗證集。數據集分別包含10個類和100個類。訓練集採用標準數據擴充、隨機裁剪和水平翻轉,小批量大小為64。

ImageNet: ImageNet數據集包含1,000個類,總共有120萬張訓練圖像和50,000張驗證圖像。從訓練集中提取50000幅圖像,用於估計MSDNet分類器的置信閾值。應用了標準數據增強。在測試時,將224×224像素大小中心裁剪的圖像調整為256×256像素進行分類。小批量大小為256。

在ImageNet上,使用4個scale,即S=4,每層分別生成16、32、64和64個feature map。在進入MSDNets的第一層之前,首先通過7×7卷積和3×3 max pooling(均使用stride 2)對原始圖像進行變換。

5.2 消融實驗

什麼是多尺度密集網路 - MSDNet?

CIFAR-100的消融實驗

使用一個包含6個中間分類器的MSDNet,有三個主要組件,多尺度特徵圖、密集連接和中間分類器,每次刪除其中一個組件

如果去掉MSDNet中的所有三個部分,就得到了一個規則的類vgg卷積網路

讓我們公平地進行對比,我們保持網路的計算成本相近,約3.0×10?FLOPs,並且適應網路的寬度,如每層的輸出通道數。

當然,原始的MSDNet(黑色)具有最高的精度。

去掉密集連通性(橙色)後,整體精度會受到極大的影響。

再加上去除多尺度卷積(淡藍色),精度只在低成本區域受到影響。這與作者的動機是一致的,即多尺度設計在早期就引入了區分特徵。

作者還提到,去掉所有3個組件後,在特定的預算下,它(Star)的性能與MSDNet類似。(但我無法從圖中找到星星……)

5.3. 隨時分類
  • MSDNet 有24層

  • 分類器對第2×(i+1)層的輸出進行操作,i=1,…,11。

  • 在ImageNet上,第i個分類器作用於(k×i+3)第i層,i=1,…,5,其中k=4, 6, 7。

什麼是多尺度密集網路 - MSDNet?

ImageNet(左)、CIFAR-100(中)、CIFAR-10(右) 上及時分類準確率top1

ResNetMC:帶有MC(多個分類器)的ResNet,62層,每個空間解析度有10個殘餘塊(對於三個解析度):早期退出分類器在每個解析度的第4和第8個殘餘塊的輸出上,產生總共 6個中間分類器(加上最終的分類層)。

DenseNetMC:帶有MC的DenseNet,52層,三個dense block,每個dense block有16層。6個中間分類器連接到每個塊的第6層和第12層,也與該塊中所有之前的層緊密連接。

ResNetMC和DenseNetMC完成所有的評估都需要大約1.3×10? FLOPs。

此外,還對不同深度的ResNets/DenseNets進行了綜合評價。在測試時,按照網路大小的升序對網路進行評估,以獲得測試數據的預測。所有的預測都在評估的分類器上求平均值。在ImageNet上,深度從10層到50層不等的ResNets和DenseNets的集合,深度從36層到121層不等。

在CIFAR-100上,MSDNet在任何範圍內都明顯優於ResNetMC和DenseNetMC。這是因為在僅僅幾層之後MSDNets就生成了比ResNets或DenseNets早期的高解析度特徵圖更適合分類的低解析度特徵圖。

在算力極低的情況下,總體具有優勢,因為它們的預測是由第一個(小)網路執行的,該網路專門針對低算力進行優化。然而,當算力增加時,總體的準確性並沒有增加得那麼快。

和MSDNets不同的是,該集合反覆的重複類似底層特徵的計算。

當所有網路都是淺層時,集合精度會迅速飽和。

5.4. 預算批分類
  • 在CIFAR-10和CIFAR-100上,MSDNet網路的範圍從10層到36層。第k個分類器附加到{1+…+ k}層。

  • ImageNet上使用了與及時分類相同的網路。

什麼是多尺度密集網路 - MSDNet?

ImageNet(左)、CIFAR-100(中)、CIFAR-10(右) 上Budgeted Batch Classification精度top1

在 Budgeted Batch Classification 中,預測模型接收一批M個實例和一個用於對所有M個實例進行分類的計算預算B. 使用動態評估。

在ImageNet上,M = 128,比較五個DenseNets,五個ResNets,一個AlexNet和一個GoogLeNet。

5個ResNet的集合: 「簡單」圖像只通過最小的ResNet-10傳送,而「複雜」圖像由所有5個ResNet模型分類。(預測在整體中的所有評估網路中取平均值)。

在CIFAR-100、M=256上,比較了不同大小的ResNets, DenseNets,Stochastic Depth Networks,Wide ResNets,FractalNets,ResNetMC和DenseNetMC。

如圖所示,使用了三個不同深度的MSDNets,將它們組合在一起,覆蓋了大範圍的計算預算。

例如,在ImageNet上,平均預算為1.7×10? FLOPs,MSDNet達到了前75%的精度,比具有相同FLOP數量的ResNet高出約6%。

與計算效率高的DenseNets相比,MSDNet使用少約2至3倍的FLOP來實現相同的分類精度。

在CIFAR-100上,MSDNets在所有預算中始終優於所有基準。

MSDNet的性能與110層ResNet相當,僅使用十分之一的算力。

MSDNet的效率比DenseNets,Stochastic Depth Networks,Wide ResNets和FractalNets高出5倍。

與任何時間預測設置的結果相似,MSDNet具有多個中間分類器,其性能顯著優於ResNetsMC和DenseNetsMC,這進一步證明了MSDNet中的粗粒度特徵對於早期層的高性能非常重要。

5.5. 信息可視化

什麼是多尺度密集網路 - MSDNet?

在ImageNet上可視化簡單和困難的圖像

  • 簡單圖像(頂行):退出第一個分類器並正確分類。

  • 複雜圖像(下一行):退出第一個分類器,分類不正確,然而最後一個分類器分類正確,屬於非典型圖像。

5.6. 計算效率更高的DenseNets

一種更有效的DenseNet被發現並研究。作者還認為這是在探索MSDNet過程中的一個有趣發現。

什麼是多尺度密集網路 - MSDNet?

隨時分類(左)和預算批分類(右)

  • DenseNet*:通過將每個過渡層之後的增長率加倍來修改原始DenseNets,以便將更多過濾器應用於低解析度特徵圖。

  • DenseNet*(綠色)在計算效率方面明顯優於原始的DenseNet(紅色)。

  • 在隨時分類中,不同深度的DenseNets*的集合只比MSDNet稍差。

  • 在預算批分類中,MSDNet的性能仍然大大優於不同深度的DenseNets*。

對於今後的工作,作者計劃在分類之外進行研究(比如圖像分割)將MSDNet與模型壓縮、空間自適應計算和更有效的卷積操作相結合。對我而已,這篇論文有很多重要的事實和概念,所以我寫了這麼長的文章。雷鋒網雷鋒網雷鋒網

參考文獻

[2018 ICLR] [MSDNet]

Multi-Scale Dense Networks for Resource Efficient Image Classification

想要繼續查看該篇文章相關鏈接和參考文獻?

點擊【什麼是多尺度密集網路-MSDNet?】即可訪問:

今日資源推薦:AI入門、大數據、機器學習免費教程

35本世界頂級原本教程限時開放,這類書單由知名數據科學網站 KDnuggets 的副主編,同時也是資深的數據科學家、深度學習技術愛好者的Matthew Mayo推薦,他在機器學習和數據科學領域具有豐富的科研和從業經驗。

點擊鏈接即可獲取:https://ai.yanxishe.com/page/resourceDetail/417

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雷鋒網 的精彩文章:

助力車聯網真正走向產業化,華為向汽車業提出3大標準
全球超50000台伺服器遭攻擊,它說是中國黑客乾的

TAG:雷鋒網 |