AttoNets,一種新型的更快、更高效邊緣計算神經網路

AIBigbull2050發表於2019-11-08
2019-11-07 18:00:43

作者 | Alexander Wong, Zhong Qiu Lin, and Brendan Chwyl

譯者 | Rachel

出品 | AI科技大本營(ID:rgznai100)

儘管機器學習已經在很多複雜的任務中取得了進展,但現有模型仍然面臨許多邊緣計算實踐的困難,這些邊緣計算場景包括移動裝置、消費裝置、無人機和車輛。現有針對低功率邊緣裝置的深度神經網路設計主要包括兩種方法:一是通過網路設計原則手工調整,二是自動進行的網路架構搜尋。

在本研究中,作者進一步探索了人機結合的深度神經網路設計方法,該方法結合了基於規則的網路設計原型開發以及機器驅動的網路設計研究。本文提出了一種新的神經網路 AttoNets ,該網路型別能夠基於裝置進行高效的邊緣深度學習。AttoNets 基於人為規定的設計要求搭建網路,其包含一個由定製模組構成的人工設計的網路級巨集觀架構,由機器設計的模組層級的巨集觀架構以及微觀架構。

在物體檢測中的實驗結果表明, 在使用更少的引數以及更低的計算花銷的情況下,AttoNets 的效率與現有最優模型相當,並在準確率指標上大幅超越現有模型(與 MobileNet-V1相比,最小的 AttoNet 的準確率提升約 1.8%,使用的乘-加運算元和引數量減小了10倍)。另外,本文也在例項分割和物體探測應用中檢測了 AttoNets 的效果,並發現與基於 ResNet-50 的 Mask R-Cnn 相比,通過使用基於 AttoNet的 Mask R-Cnn 網路,引數量和計算花銷得到了大幅度降低(乘-加操作減少5倍,引數量減少2倍)。

1 介紹

隨著深度學習的不斷髮展,現有模型在許多複雜任務中都實現了非常好的效果,尤其是視覺感知領域,具有代表性的應用包括圖片分類、物體檢測和圖片分割。儘管如此,隨著網路複雜度的不斷升高,網路在應用和實踐領域也遇到了更多挑戰,例如在基於裝置的邊緣計算場景中,包括算力、儲存、貸款、能源在內的資源都非常稀缺。因此,很多研究都開始嘗試設計小規模的深度神經網路,以適應低功率邊緣裝置的需求。

現有研究主要 關注如何通過多種方法來搭建更加高效的深度神經網路。第一種方法是首先設計一個複雜但效果很好但深度神經網路,之後再對模型進行精確的縮減。這種方法的問題在於,研究人員需要在精確度和準確度之間進行非常多的權衡,並且需要特別設計縮減模型的方法,以提升模型在目標處理器上的執行效率。另一種類似的方法是,研究者在設計初始的複雜網路之後,通過使用傳統的資料壓縮方法對模型進行壓縮,例如通過教師-學生網路設計策略產生規模較小的學生網路。

第二種主要的方法則通過引入架構設計規則來獲得更加高效的神經網路架構。例如,有學者通過在特定卷積層前後各引入一個新的卷積層建立瓶頸結構,以降低該卷積層輸入和輸出的維度。

最近出現的第三種方法則通過全自動的網路架構搜尋來尋找能夠在邊緣裝置中執行的高效深度神經網路,這一方法的代表性成果包括 MONAS 和 ParetoNASH 。這一方法將神經網路搜尋看多一個多目標優化問題,優化目標包括模型規模、準確率,並使用強化學習和演化學習演算法進行優化。

可以發現,目前的現有方法主要包括兩種思路:(1)基於設計原則手工設計網路;(2)使用全自動的網路架構搜尋。在本研究中,作者對人機結合的深度神經網路設計方法進行了探索,將人工驅動的基於規則的神經網路設計原型開發以及機器驅動的設計探索相結合,充分利用了人類的經驗、創造性以及機器的速度和嚴謹性。通過該方法,本文提出使用 AttoNets 這一新的高效的邊緣深度學習網路。

本文的結構如下。第二部分詳細介紹了人機結合的、基於邊緣和移動場景的高效神經網路的設計方法。第三部分對基於此方法設計的 AttoNets 進行了介紹,重點介紹了模組層級的微結構及其設計。第四部分展示了 AttoNets 在物體識別、例項分割和物體探測任務中的實驗結構並進行討論,第五部分則列出了本文的結論。

2 方法

本文所提出的人機結合的深度神經網路設計策略主要包含兩個階段:i)基於規則的網路設計原型開發,ii)機器驅動的設計探索。首先,本文作者基於設計原則對網路級的巨集觀架構進行設計,並搭建一個人為設定的針對視覺領域的初始設計原型。之後,作者通過機器驅動的設計探索,基於人為設定的初始原型以及人為規定的設計要求對模組級別的巨集觀結構以及微觀結構設計進行開發,併產生一系列備選的好笑深度神經網路模型。通過對兩個階段進行平衡,使用者能夠在設計約束和要求的規定下獲得針對神經網路架構的創造性解決方案。

2.1 基於規則的網路設計原型開發

由於已有研究已經針對模型的效率進行了大量的探索,本文作者在這一階段將主要 關注點集中在如何使用更廣泛的網路層級巨集觀架構來提升模型效果。儘管這一目標似乎與提升模型效率相違背,但作者認為,機器更善於通過降低模型規模來提升效率,因此提升模型效率的工作將主要在第二階段由機器驅動的方法完成。

在本文中,作者使用了兩個已有文獻中提到的在視覺領域的人工驅動的設計原則,這兩個原則主要針對視覺領域中物體識別的任務提出,並主要 關注如何設計高效的深度神經網路。在物體識別任務中,模型需要判斷給定場景所包含的一系列物件所屬的種類。針對該任務,作者使用的第一個網路設計模型原則為大幅增加網路的深度,該原則在許多已有研究中已經進行了詳細闡述。這一原則是的模型能夠對更深層次的特徵嵌入進行學習。

這一原則的一大問題在於,當模型過深時,模型訓練江邊的非常困難。為了解決這一問題並提高模型的準確率,作者 溼了了第二個設計原則,即在網路中增加捷徑連線(shortcut connections)。通過在殘差架構中增加捷徑,即使在深層的網路中,包括隨機梯度下降在內的迭代優化方法也將更加有效。

通過使用上述兩個設計原則,人工驅動的初始設計原型能夠通過模組設計提供一個深層卷積神經網路的架構,網路中間的表示層被放置在網路模組當中,且模組中包含捷徑結構。基於已有研究,作者將初始設計原型的模組數量設定為16,使得後續機器驅動的網路設計能夠具有較大的靈活性。在中間表示層之後,作者新增了一個平均池化層,之後是一個全連線層。

最後,作者新增了一個 softmax 層來得到輸入圖片所屬的類別。圖1展示了人工驅動的初始設計原型。正如在之前提到的,實際的巨集觀結構和微觀結構設計都將由機器驅動的方法來完成。

AttoNets,一種新型的更快、更高效邊緣計算神經網路

圖1 人工驅動的初始設計原型

2.2 機器驅動的設計探索

這一步中,作者基於人工設計的初始原型、資料和任務目標,通過機器驅動的方法,對模組級別的巨集觀架構和微觀架構設計進行了探索。通過這一步驟,作者得到了一系列備選的高效的神經網路。另外,作者在此步驟中也考慮了人為設定的設計要求和約束,使得機器驅動的設計所得到的深度神經網路能夠適用於邊緣和移動場景下基於裝置的物體識別任務。

在本研究中,作者通過細粒度的生成性綜合體(generative synthesis)來完成了機器驅動的設計探索過程。生成性綜合體的高度靈活性使得其非常適用於人機結合的高效深度神經網路設計。

生成性綜合體的概念可以簡單概括如下。其目標為學習一個生成器 G ,該生成器能夠基於種子集合 S 生成深度神經網路

AttoNets,一種新型的更快、更高效邊緣計算神經網路

,該過程通過最大化一個全域性效果函式 U 實現,並能夠滿足指示函式 1r(·) 所定義的定量要求。公式如下:

AttoNets,一種新型的更快、更高效邊緣計算神經網路

通過對上述公式進行迭代優化,作者得到了一系列滿足指示函式的生成器,並進一步利用這些生成器構造了一系列高效深度神經網路,這些神經網路均滿足約束要求,僅在模型準確率和效率間的權衡上存在差異。

在本文中,作者依據已有研究的方法定義了效果函式 U ,使得該函式能夠同時衡量模型效果、計算複雜性以及架構複雜性。另外,作者將指示函式設定為在 ImageNet50 上的最高驗證準確率不低於 65% ,以使得本文所得到的網路的效果不低於包括 MobileNet-V1 和 ShuffleNet-V2在內的目前最優模型。

3 AttoNet 架構設計

在本部分鐘,作者首先描述了機器驅動設計探索階段所得到的模組級巨集觀架構的設計情況,之後詳細介紹了基於本文方法得到的四種 AttoNets 網路的細節。

3.1 模組層級的微架構

圖2展示了兩個基於本文方法得到的模組級巨集觀架構設計。這兩種型別的主要差別在於,B 型別在捷徑中包含了一個額外的 1*1 的卷積層,並在卷積層中增加了 stride 。如表1所示,在模型所生成的網路中,每一個模組的巨集觀架構設計都不盡相同。下文展示了結構中所包含的一些有趣的現象。

AttoNets,一種新型的更快、更高效邊緣計算神經網路

圖2 兩個模組級的巨集觀架構設計示例

逐點壓縮。兩個網路都在第一個構件中使用了一個包含 1*1 的卷積核的壓縮層。這種結構能夠有效降低輸入到下一層的維度,使得網路架構和計算的複雜性都大幅減少。

使用包含 stride 的卷積組。兩個網路都在壓縮層後使用了多組 3*3 的卷積核。通過使用卷積組而非單個卷積層,網路能夠將壓縮層的輸出特徵劃分為更小的組並進行獨立的處理,因此能夠進一步降低計算和架構的複雜度。特別的,第二種網路在卷積組中包含了 stride ,而第一組網路沒有使用,stride 的使用能夠進一步降低複雜度。

背靠背的逐點卷積。兩個網路結構都使用多個了背靠背的 1*1 卷積層,其中第一個 1*1 的捲進層能夠將卷積組中的資訊相結合,第二個 1*1 卷積層則作為解壓縮層,恢復模組所對應的輸出維度。因此,這一方式能夠使得網路在複雜度降低的情況下仍然保持甚至提升其效果。

3.2 建立 AttoNet網路架構

作者依據本文方法建立的4個 AttoNet 網路的情況如表1所示。與之前的邊緣計算網路不同, AttoNets 包含了一個69層的深度卷積神經網路架構。通過觀察 AttoNets 網路的結構,作者得到了如下有趣的發現。第一,不同網路間的微架構存在很大差異。第二,架構的整體複雜度從 AttoNet-A 到 AttoNet-D 逐漸降低,與本文中的機器驅動的設計探索階段所採用的策略一致。第三,網路內部同樣存在微觀架構和巨集觀架構的差異。網路間和網路內部架構的多樣性僅能通過細粒度的機器驅動的設計探索來實現。

(注:由於表1過長,請到原論文中檢視。)

4 結果與討論

本文在i)物體識別和ii)實體分割與物體探測這兩個任務中對 AttoNets 的效果進行了評估,這兩個任務是邊緣和移動場景最常見的任務型別。下文展示了實驗設定及結果。

4.1 物體識別

作者在 ImageNet50 資料集上對 AttoNets的最高準確率進行了評估,該資料集是最近構建的一個新資料集,其區別於 ImageNet 資料集,並專門針對基於裝置的移動視覺應用評估。作者將 AttoNet 和目前效果最優的三種針對邊緣和移動應用所設計的深度神經網路(MobileNet-V1, MobileNet-V2, ShuffleNet-V2)進行了比較。實驗結果如表2所示。可以發現, AttoNet 在準確率和複雜性指標上均有所提升。

AttoNets,一種新型的更快、更高效邊緣計算神經網路

表2 ImageNet50 上的實驗結果

4.2 例項分割和物體檢測

這一任務要求模型在給定場景中對物體進行分割、檢測其邊界框並對每個分割進行分類。在本文中,作者在物體分割資料集 Pascal VOC 2012上訓練了一個基於 AttoNet 的 Mask R-CNN 網路(下文稱為Atto-MaskRCNN),並評估了掩膜的平均精度(APm)以及探測(邊框)的平均精度(APd)。模型訓練使用 SGD進行優化,並將動量設定為0.9。作者比較了該模型和基於 ResNet-50 的 Mask R-CNN 的效果,並發現 AttoMaskRCNN 的引數量降低了2倍,乘-加操作降低了5倍,並仍然達到了較高的精度(APd 約為65.5%, APm 約為60%)。圖3展示了 Atto-MaskRCNN 的實體分割及檢測邊界框結果示例。

AttoNets,一種新型的更快、更高效邊緣計算神經網路

圖3 Atto-MaskRCNN 的實體分割及檢測邊界框結果示例

5 結論

本文提出了一種人機結合的方法以設計在裝置上使用的高效深度神經網路。通過結合人工驅動的基於原則的網路設計原型開發,以及機器驅動的設計探索,人們能夠在滿足人為設定的網路巨集觀架構的基礎上,得到機器設計的模組級巨集觀架構和微觀架構設計。實驗結果表明,使用本文方法所得到的 AttoNets 網路能夠在顯著減少引數量和計算開銷的情況下,達到與目前網路相當的準確率。

在未來的研究中,作者計劃進一步探究在其他任務中這一人機結合的設計方法的有效性,例如視訊動作識別,視訊姿勢檢測,圖片捕捉,超解析度圖片重建,以及圖片生成。另外,作者認為,不同的人為設定的設計要求的組合對網路生成的影響也非常值得探討。

論文連結:

https://ar xiv.org/abs/190 3.07209



https://www.toutiao.com/i6756502575308079630/



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946223/viewspace-2663209/,如需轉載,請註明出處,否則將追究法律責任。

相關文章