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

目錄

題目:AttoNets:緊湊和高效的深度神經網絡的邊緣通過人機協同設計

摘要:

1 介紹

2 方法

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

2.2 機器驅動的設計探索

3 AttoNet 架構設計

3.1 模塊層級的微架構

3.2 創建 AttoNet網絡架構

4 結果與討論

4.1 物體識別

5 結論

 

題目:AttoNets:緊湊和高效的深度神經網絡的邊緣通過人機協同設計

摘要:

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

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

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

1 介紹

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

爲了解決採用和部署邊緣上的深度學習的挑戰,人們越來越重視探索在多個不同方向上生成高效深度神經網絡的策略。已經探索的一個方向是,首先設計一個複雜但功能強大的深度神經網絡,然後執行精度降低,其中設計的深度神經網絡的內部組件表示爲定點或整數精度精度,2位精度,甚至1位精度。這種方法的一個侷限性是,在精度和精度之間可能存在很大的權衡,並且需要在目標處理器上提供特殊的降低精度的加速支持。同樣,科學家們已經探索首先設計一個複雜的策略,但強大的深層神經網絡模型,然後利用壓縮,在傳統的數據壓縮方法,如體重閾值、散列,和哈夫曼編碼,以及師生策略涉及更大的教師網絡培訓一個較小的學生網絡。

針第二種:方向是深度神經網絡本身的基礎設計,這是近年來被大量探索的方向,通過引入架構設計原則來實現更高效的深度神經網絡架構。例如,He等人引入了瓶頸模塊級宏觀架構,首先使用1*1的卷積層來降低進入3*3卷積層的維度,然後在3*3卷積層之後再使用1*1的卷積層來恢復維度。因此,這在輸入/輸出維數較低的3*3卷積層上造成了瓶頸,並使更深層次的架構能夠以較低的計算和內存複雜度構建。Iandola等人的[14]以壓縮擴展宏架構的形式引入了一個替代的瓶頸模塊級宏架構,該宏架構由一個1*1壓縮卷積層和一個由1*1和3*3卷積濾波器組合組成的擴展卷積層組成。霍華德等人槓桿的概念切除可分離旋轉減少計算和內存需求,在傳統的卷積層被一個映像(i)組成的一個變體切除卷積層在一個卷積濾波器應用於每個輸入通道,緊隨其後的是(2)1 1卷積層執行點態分佈計算新特性通過輸入通道的線性組合。此外,Sandler等人不僅利用了深度可分卷積,還引入了較薄的線性瓶頸層,進一步提高了建模性能和效率之間的平衡。

最近,研究人員採取的一個有趣的新方向是探索完全自動化的網絡架構搜索策略,用於算法設計用於邊緣和移動場景的高效深度神經網絡。值得注意的策略包括MONAS和ParetoNASH,其中高效深度神經網絡的搜索被表述爲一個多目標優化問題,目標包括模型大小和精度,分別通過增強學習和進化算法求解。最後,Tan等人提出了一種基於強化學習的網絡架構搜索策略,用於搜索高效的深度神經網絡架構,爲特定的移動硬件提供最佳的精度和延遲之間的權衡。

正如所看到的,針對邊緣和移動場景的高效深度神經網絡的直接設計最近的重點主要落在兩個極端之一:(i)通過設計原則手工製作,或(ii)完全自動化的網絡架構搜索。在這項研究中,我們採取了一個有趣的新方向,並對人機協同設計方法的有效性進行了更深入的探索,以創建高效的深度神經網絡人驅動原則的網絡設計原型和機器驅動的設計探索之間的協作。這種更平衡的方法充分利用了人類的經驗和創造力的細緻和原始的速度的機器。通過創建AttoNets(一組用於設備邊緣深度學習的高效深度神經網絡),證明了人機協作設計的有效性。 

本文組織如下。第二部分詳細描述了爲邊緣和移動場景創建高效深度神經網絡的人機協作設計策略。第3節介紹了通過提出的設計策略創建的AttoNets家族的模塊化宏觀體系結構和微觀體系結構設計。第4節給出並討論了對象識別、實例分割和對象檢測任務的實驗結果,第5節給出了結論。

2 方法

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

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

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

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

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

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

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

2.2 機器驅動的設計探索

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

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

生成性綜合體的概念可以簡單概括如下。其目標爲學習一個生成器 G ,該生成器能夠基於種子集合 S 生成深度神經網絡,該過程通過最大化一個全局效果函數 U 實現,並能夠滿足指示函數 1r(·) 所定義的定量要求。公式如下:

見論文。。。

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

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

3 AttoNet 架構設計

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

3.1 模塊層級的微架構

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

 

逐點壓縮。 兩個網絡都在第一個構件中使用了一個包含 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 逐漸降低,與本文中的機器驅動的設計探索階段所採用的策略一致。第三,網絡內部同樣存在微觀架構和宏觀架構的差異。網絡間和網絡內部架構的多樣性僅能通過細粒度的機器驅動的設計探索來實現。

4 結果與討論

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

4.1 物體識別

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

5 結論

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

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章