SequenceNet論文翻譯

來源:互聯網
上載者:User

論文地址:SqueezeNet
論文翻譯:木淩
時間:2016年11月。
文章串連:http://blog.csdn.net/u014540717 1 引言和動機

最近對深卷積神經網路(CNN)的研究集中在提高電腦視覺資料集的準確性。 對於給定的精度水平,通常存在實現該精度水平的多個CNN架構。給定等效精度,具有較少參數的CNN架構具有幾個優點:
1. 更高效的分布式訓練。伺服器之間的通訊是分布式CNN訓練的可擴充性的限制因素。對於分布式資料並行訓練,通訊開銷與模型中的參數數量成正比(Iandola等,2016)。總之,小模型訓練更快,因為需要較少的溝通。
2. 將新模型匯出到用戶端時減少開銷。 對於自動駕駛,特斯拉等公司定期將新型號從其伺服器複製到客戶的汽車。 這種做法通常被稱為空白中更新(譯者註:OTA,刷過機的同學估計都知道)。 消費者報告發現,特斯拉自動駕駛儀半自動駕駛功能的安全性隨著最近的空中更新(消費者報告,2016)而逐漸改善。然而,當今典型的CNN/DNN模型的空中更新可能需要大量的資料轉送。 使用AlexNet,這將需要240MB的從伺服器到汽車的通訊。較小的模型需要較少的通訊,使頻繁更新更可行。
3. 可行的FPGA和嵌入式部署。 FPGA通常具有小於10MB的片上儲存空間並且沒有片外儲存空間。對於推理,足夠小的模型可以直接儲存在FPGA上,而不是讓儲存頻寬變成它的瓶頸(Qiu等人,2016),從而使得FPGA可以即時地處理視頻流。此外,當在專用整合電路(ASIC)上部署CNN時,足夠小的模型可以直接儲存在晶片上,並且較小的模型可以使ASIC適合更小的管芯。

正如您所看到的,較小的CNN架構有幾個優點。考慮到這一點,我們直接關注與眾所周知的模型相比,識別具有較少參數但等效精度的CNN架構的問題。我們發現了一個這樣的架構,我們稱之為SqueezeNet。 此外,我們提出了一個更嚴謹的方法來搜尋設計空間的新的CNN架構。

本文的其餘部分組織如下。 在第2節中,我們回顧了相關工作。然後,在第3節和第4節中,我們描述和評估SqueezeNet架構。之後,我們將注意力轉向理解CNN架構設計選擇如何影響模型大小和精度。 我們通過探索SqueezeNet樣架構的設計空間獲得這種理解。在第5節中,我們在CNN微體繫結構上設計空間探索,我們將其定義為各個層和模組的組織和維度。在第6節中,我們在CNN宏結構上設計空間探索,我們將其定義為CNN中的層的進階組織。最後,我們在第7節總結。總之,第3節和第4節對於CNN研究人員以及只想將SqueezeNet應用於新應用程式的從業者非常有用。其餘部分針對打算設計自己的CNN架構的進階研究人員。 2 相關工作 2.1 模型壓縮

我們工作的首要目標是確定一個具有很少參數,同時保持精度的模型。為瞭解決這個問題,一種明智的方法是採用現有的CNN模型並以有損的方式壓縮它。事實上,圍繞模型壓縮的主題出現了一個研究社區,並且已經報道了幾種方法。Denton等人的一個相當直接的方法是對預訓練的CNN模型應用奇異值分解(SVD)(Denton等人,2014)。Han等人開發了網路修剪,其從預訓練模型開始,然後用零替換低於某個閾值的參數以形成疏鬆陣列,並且最後對稀疏CNN執行幾次迭代訓練(Han等人,2015b)。最近,Han等人通過將網路修剪與量化(至8位或更少)和huffman編碼相結合,建立了一種稱為深度壓縮的方法(Han等人,2015a),並進一步設計了一種稱為EIE的硬體加速器(Han等人,2016a ),直接對壓縮模型操作,實現大幅加速和節能。 2.2 CNN微觀結構

卷積已經在人工神經網路中使用了至少25年; LeCun等人在20世紀80年代後期協助推廣用於數字識別應用的CNN(LeCun等人,1989)。在神經網路中,卷積濾波器通常是3D,具有作為關鍵尺寸的高度,寬度和通道。當應用於映像時,CNN濾波器通常在其第一層(即RGB)中具有3個通道,並且在每個後續層Li中,濾波器具有與Li-1具有濾波器相同數量的通道。LeCun等人的早期工作(LeCun等人,1989)使用5x5x通道2濾波器,並且最近的VGG(Simonyan&Zisserman,2014)架構廣泛地使用3x3濾波器。包括Network-in-Network(Lin等人,2013)和GoogLeNet系列架構(Szegedy等人,2014; Ioffe&Szegedy,2015; Szegedy等人,2015; 2016)等模型在一些層使用1x1濾波器。

隨著設計非常深的CNN的趨勢,手動選擇每層的濾波器尺寸變得麻煩。為瞭解決這個問題,已經提出了由具有特定固定組織的多個卷積層組成的各種更進階別的構建塊或模組。例如,GoogLeNet論文提出了Inception模組,其包括多個不同維度濾波器,通常包括1x1和3x3,有時5x5(Szegedy等人,2014),有時1x3和3x1(Szegedy等人,2015)。然後,許多這樣的模組可能與附加的自組織層組合以形成完整的網路。我們使用術語CNN微架構來指代各個模組的特定組織和尺寸。 2.3 CNN宏結構

雖然CNN微體繫結構涉及單個層和模組,但是我們將CNN宏體繫結構定義為多個模組到端到端CNN體繫結構的系統級組織。

也許在最近的文獻中最廣泛研究的CNN宏觀架構主題是網路中深度(即層數)的影響。Simoyan和Zisserman提出了具有12到19層的的VGG(Simonyan&Zisserman,2014)族,並且說明了更深的網路在ImageNet-1k資料集上產生更高的精度(Deng等人,2009)。K.He等人提出了最多30層的更深的CNNs,提供更高的ImageNet精度(He等人,2015a)。

選擇跨越多個層或模組的串連是CNN宏觀結構研究的新興領域。殘差網路(ResNet)(He等人。,2015b)和Highway Networks(Srivastava等人,2015)分別提出了跨越多層的串連的使用,例如將來自層3的啟用與來自層6的啟用相加串連,我們將這些串連稱為旁路串連。ResNet的作者提供了一個具有和不具有旁路串連的34層CNN的A/B比較; 添加旁路串連可在ImageNet Top-5的精度上提高2個百分點。 2.4 神經網路設計空間探索

神經網路(包括深度卷積神經網路)具有大的設計空間,具有用於微架構,宏架構,解算器和其它超參數的許多選項。社區似乎希望獲得關於這些因素如何影響神經網路的準確性(即設計空間的形狀)。神經網路的設計空間探索(DSE)的許多工作集中在開發自動化方法以發現提供更高精度的神經網路架構。這些自動化DSE方法包括貝葉斯最佳化(Snoek等人,2012),類比退火(Ludermir等人,2006),隨機搜尋(Bergstra&Bengio,2012)和遺傳演算法(Stanley和Miikkulainen,2002)。他們認為,這些論文中的每一篇提供了一種情況,其中所提出的DSE方法產生了與具有代表性的基準相比精度更高的神經網路架構。然而,這些論文沒有試圖提供關於神經網路設計空間的直觀形狀。在本文的後面,我們避開了自動化方法,相反,我們以這樣一種方式重構CNN,以便我們可以進行原理性的A/B比較來研究CNN架構決策如何影響模型大小和準確性。

在以下部分,我們首先提出和評估具有和不具有模型壓縮的SqueezeNet體繫結構。然後,我們探討設計選擇對微型架構和宏構架對SqueezeNet樣CNN架構的影響。 3 SqueezeNet:保留精度並具有較少的參數

在本節中,我們首先概述了幾個參數的CNN架構的設計策略。然後,我們介紹Fire模組,我們的新構建塊,用於構建CNN架構。最後,我們使用我們的設計策略構建SqueezeNet,它主要由Fire模組組成。 3.1 結構設計策略

我們在本文的總體目標是確定具有很少參數的CNN架構,同時保持競爭的準確性。為了實現這一點,我們在設計CNN架構時採用三個主要策略:

策略1.使用1x1過濾器替換3x3過濾器。給定一定數量的卷積濾波器的預算,我們將選擇使這些濾波器中的大多數是1x1,因為1x1濾波器具有比3x3濾波器少9倍的參數。

策略2.將輸入到3x3過濾器的通道的數量減少。考慮一個完全由3x3濾波器組成的卷積層。該層中的參數的總量是(輸入通道的數量) ∗ *(濾波器的數量) ∗ *(3 * 3)。 因此,為了在CNN中保持小的參數總數,不僅要減少3×3濾波器的數量(見上面的策略1),而且要減少3×3濾波器的輸入通道的數量。我們使用擠壓層將輸入到3x3個過濾器的通道數量減少,我們將在下一節中進行描述。

策略3.在網路後期降採樣,以使卷積層具有大的啟用圖。在卷積網路中,每個卷積層產生至少1x1並且經常比1x1大得多的空間解析度的輸出啟用圖。這些啟用圖的高度和寬度由以下控制:(1)輸入資料的大小(例如256×256映像)和(2)在CNN架構中對其進行下採樣的層的選擇。最常見的是,通過在一些卷積或池化層中設定(stride> 1),將下採樣設計到CNN架構中(例如(Szegedy等人,2014;Simonyan&Zisserman,2014;Krizhevsky等人,2012))。 如果網路中早期的層具有較大的步幅,則大多數層將具有小的啟用圖。相反,如果網路中的大多數層具有1的步幅,並且大於1的步幅集中朝向網路的尾部,則網路中的許多層將具有大的啟用圖。 我們的直覺是,在其他保持不變的情況下,大的啟用圖(由於延遲下採樣)可以導致更高的分類精度。 實際上,K.He和H.Sun對4種不同的CNN結構應用了延遲下採樣,並且在每種情況下延遲下採樣導致更高的分類精度(He&Sun,2015)。


圖1:微觀結構視圖:在Fire模組中組織卷積過濾器。 在這個例子中, s1x1 s_{1x1}= 3, e1x1 e _{1x1}和 e3x3 e _{3x3}= 4。我們展示的是卷積濾波器不是啟用器。

策略1和2關於在試圖保持準確性的同時明智地減少CNN中的參數的數量。策略3是關於在有限的參數預算上最大化精度。接下來,我們描述Fire模組,這是我們的CNN架構的構建塊,使我們能夠成功地採用戰略1,2和3。 3.2 Fire模組

我們定義Fire模組如下。Fire模組包括:擠壓卷積層(其僅具有1x1濾波器),饋送到具有1x1和3x3卷積濾波器的混合的擴充層; 我們在圖1中說明了這一點。在fire模組中自由使用1x1過濾器是第3.1節中策略1的一個應用。我們在Fire模組中公開了三個可調整維度(超級參數): s1X1 s_{1X1}, e1X1 e _{1X1}和 e3X3 e_{3X3}。在Fire模組中, s1X1 s_{1X1}是擠壓層(所有1x1)中的濾波器數, e1X1 e_{1X1}是擴充層中1x1濾波器的數量, e3X3 e_{3X3}是擴充層中的3x3濾波器的數量。當我們使用Fire模組時,我們將 s1X1 s_{1X1}設定為小於( e1X1 e_{1X1} + e3X3 e_{3X3}),因此擠壓層有助於將輸入通道的數量限制為3x3過濾器,如第3.1節中的策略2所示。 3.3 SqueezeNet結構

我們現在描述SqueezeNet CNN架構。我們在圖2中說明SqueezeNet開始於一個獨立的卷積層(conv1),然後是8個fire模組(fire2-9),最後是一個最終的轉換層(conv10)。 我們從網路的開始到結束逐漸增加每個fire模組的過濾器數量。 SqueezeNet在層conv1,fire4,fire8和conv10之後以步長為2來執行max-pooling; 這些相對較晚的polling安排是根據3.1節中的策略3。我們在表1中給出了完整的SqueezeNet架構。

圖2:我們的SqueezeNet架構的宏體繫結構視圖。 左:SqueezeNet(3.3節); 中間:SqueezeNet與簡單的旁路(第6節); 右:具有複雜旁路的SqueezeNet(第6節)。 3.3.1 其他SequenceNet細節

為簡潔起見,我們從表1和圖2中省略了關於SqueezeNet的細節和設計選擇的數量。我們在下面提供這些設計選擇。這些選擇背後的直覺可以在下面引用的論文中找到。

1、為了使來自1x1和3x3濾波器的輸出啟用具有相同的高度和寬度,我們在輸入資料中向擴充模組的3x3濾波器添加零填充的1像素邊界。

2、ReLU(Nair&Hinton,2010)應用於擠壓和膨脹層的啟用。

3、 在fire9模組之後應用比率為50%的dropout(Srivastava等人,2014)。

4、注意SqueezeNet中缺少全串連層; 這個設計選擇是受到NiN(Lin et al。,2013)架構的啟發。

5、當訓練SqueezeNet時,我們從0.04的學習率開始,我們線性減少整個訓練的學習率,如(Mishkin et al。,2016)所述。 有關訓練協議(例如批量大小,學習速率,參數初始化)的詳細資料,請參閱我們的Caffe相容設定檔,位於這裡:https://github.com/DeepScale/SqueezeNet。

6、Caffe架構本身不支援包含多個濾波器解析度的卷積層(例如1x1和3x3)(Jia等人,2014)。為瞭解決這個問題,我們使用兩個獨立的卷積層來實現我們的擴充層:一個帶1x1濾波器的層和一個帶有3x3濾波器的層。然後,我們在通道維中將這些層的輸出串連在一起。這在數值上等同於實現包含1x1和3x3濾波器的一個層。

我們以Caffe CNN架構定義的格式發布了SqueezeNet設定檔。 然而,除了Caffe之外,還出現了其他一些CNN架構,包括MXNet(Chen等,2015a),Chainer(Tokui等,2015),Keras(Chollet,2016)和Torch(Collobert等, 2011)。它們中的每一個具有其自己的用於表示CNN架構的本地格式。也就是說,大多數這些庫使用相同的底層計算後端,如cuDNN(Chetlur等,2014)和MKL-DNN(Das等,2016)。研究團體已經移植了SqueezeNet CNN架構,以便與許多其他CNN軟體架構相容:

SequeezeNet的MXNet (Chen et al., 2015a) 介面: (Haria, 2016)
SequeezeNet的Chainer(Tokui et al., 2015) 介面:(Bell, 2016)
SequeezeNet的Keras(Chollet, 2016) 介面:(DT42, 2016)
SequeezeNet fire模型的Torch(Collobert et al., 2011) 介面:(Waghmare, 2016) 4 SqueezeNet評估

我們現在將注意力轉向評估SqueezeNet。 在第2.1節中回顧的每一個CNN模型壓縮論文中,目標是壓縮AlexNet(Krizhevsky等人,2012)模型,該模型被訓練使用ImageNet(Deng等人,2009)(ILSVRC 2012) 資料集。因此,在評估SqueezeNet時,我們使用AlexNet 5和相關的模型壓縮結果作為比較的基礎。

表1:SqueezeNet體繫結構尺寸。(此表格的格式受到Inception2文章(Ioffe&Szegedy,2015)的啟發。)

在表2中,我們在最近的模型壓縮結果的上下文中檢查SqueezeNet。 基於SVD的方法能夠將預訓練的AlexNet模型壓縮5倍,同時將頂1精度降低到56.0%(Denton等人,2014)。網路修剪實現了9倍的模型大小減少,同時在ImageNet上保持了57.2%的top-1和80.3%的top-5精度的基準(Han et al。,2015b)。深度壓縮使模型尺寸減小了35倍,同時仍然保持了基準精度水平(Han 等人,2015a)。現在,使用SqueezeNet,與AlexNet相比,我們實現了模型尺寸減少50倍,同時滿足或超過了AlexNet的top-1和前top-5的精度。 我們在表2中總結了所有上述結果。

看來,我們已經超過了

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.