<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          14種輕量級網絡綜述 — 主干網絡篇

          共 8071字,需瀏覽 17分鐘

           ·

          2021-08-01 03:33

          ↑ 點擊藍字 關注極市平臺

          作者丨VincentLee
          來源丨曉飛的算法工程筆記
          編輯丨極市平臺

          極市導讀

           

          早期的卷積神經很少考慮參數量和計算量的問題,由此輕量級網絡誕生,其旨在保持模型精度基礎上近一步減少模型參數量和復雜度。本文對主要的輕量級網絡進行了簡述,讓大家對輕量級網絡的發(fā)展歷程以及種類有更加清晰的了解。 >>加入極市CV技術交流群,走在計算機視覺的最前沿

          輕量級網絡的核心是在盡量保持精度的前提下,從體積和速度兩方面對網絡進行輕量化改造,本文對輕量級網絡進行簡述,主要涉及以下網絡:

          • SqueezeNet系列
          • ShuffleNet系列
          • MnasNet
          • MobileNet系列
          • CondenseNet
          • ESPNet系列
          • ChannelNets
          • PeleeNet
          • IGC系列
          • FBNet系列
          • EfficientNet
          • GhostNet
          • WeightNet
          • MicroNet

          SqueezeNet系列

          SqueezeNet系列是比較早期且經典的輕量級網絡,SqueezeNet使用Fire模塊進行參數壓縮,而SqueezeNext則在此基礎上加入分離卷積進行改進。雖然SqueezeNet系列不如MobieNet使用廣泛,但其架構思想和實驗結論還是可以值得借鑒的。

          SqueezeNet

          SqueezeNet是早期開始關注輕量化網絡的研究之一,使用Fire模塊進行參數壓縮。



          SqueezeNet的核心模塊為Fire模塊, 結構如圖 1 所示, 輸入層先通過squeeze卷積層 卷 積)進行維度壓縮,然后通過expand卷積層 卷積和 卷積混合)進行維度擴展。Fire模 塊包含 3 個參數, 分別為squeeze層的 卷積核數 , expand層的 卷積核數 層的 卷積核數 , 一般

          SqueezeNext

          SqueezeNext是SqueezeNet實戰(zhàn)升級版,直接和MobileNet對比性能。SqueezeNext全部使用標準卷積,分析實際推理速度,優(yōu)化的手段集中在網絡整體結構的優(yōu)化。
          SqueezeNext的設計沿用殘差結構,沒有使用當時流行的深度分離卷積,而是直接使用了分離卷積,設計主要基于以下策略:
          • Low Rank Filters ? 低秩分解的核心思想就是將大矩陣分解成多個小矩陣,這里使用CP分解(Canonical Polyadic Decomposition), 將 卷積分解成 的分離卷積, 參數量能從 降為 。
          • Bottleneck Module ? 參數量與輸入輸出維度有關,雖然可以使用深度分離卷積來減少計算量,但是深度分離卷積在終端系統(tǒng)的計算并不高效。因此采用SqueezeNet的squeeze層進行輸入維度的壓縮,每個block的開頭使用連續(xù)兩個squeeze層,每層降低1/2維度。
          • Fully Connected Layers ? 在AlexNet中,全連接層的參數占總模型的96%,SqueezeNext使用bottleneck層來降低全連接層的輸入維度,從而降低網絡參數量。

          ShuffleNet系列

          ShuffleNet系列是輕量級網絡中很重要的一個系列,ShuffleNetV1提出了channel shuffle操作,使得網絡可以盡情地使用分組卷積來加速,而ShuffleNetV2則推倒V1的大部分設計,從實際出發(fā),提出channel split操作,在加速網絡的同時進行了特征重用,達到了很好的效果。

          ShuffleNet V1

          ShuffleNet的核心在于使用channel shuffle操作彌補分組間的信息交流,使得網絡可以盡情使用pointwise分組卷積,不僅可以減少主要的網絡計算量,也可以增加卷積的維度。
          在目前的一些主流網絡中,通常使用pointwise卷積進行維度的降低,從而降低網絡的復雜度,但由于輸入維度較高,pointwise卷積的開銷也是十分巨大的。對于小網絡而言,昂貴的pointwise卷積會帶來明顯的性能下降,比如在ResNext unit中,pointwise卷積占據了93.4%的計算量。為此,論文引入了分組卷積,首先探討了兩種ShuffleNet的實現:
          • 圖1a是最直接的方法,將所有的操作進行了絕對的維度隔離,但這會導致特定的輸出僅關聯了很小一部分的輸入,阻隔了組間的信息流,降低了表達能力。
          • 圖1b對輸出的維度進行重新分配,首先將每個組的輸出分成多個子組,然后將每個子組輸入到不同的組中,能夠很好地保留組間的信息流。
          圖1b的思想可以簡單地用channel shuffle操作進行實現,如圖1c所示, 假設包含 組的卷積 層輸出為 維,首先將輸出reshape()為 , 然后進行transpose 0 , 最后再flatten()回 維。

          ShuffleNet V2

          ShuffleNetV1的pointwise分組卷積以及bottleneck結果均會提高MAC,導致不可忽視的計算損耗。為了達到高性能以及高準確率,關鍵是在不通過稠密卷積以及過多分組的情況下,獲得輸入輸出一樣的大維度卷積。ShuffleNet V2從實踐出發(fā),以實際的推理速度為指導,總結出了5條輕量級網絡的設計要領,并根據要領提出了ShuffleNetV2,很好地兼顧了準確率和速度,其中channel split操作十分亮眼,將輸入特征分成兩部分,達到了類似DenseNet的特征重用效果。
          ShuffeNetV1的unit結構如圖3ab所示, 在V1的基礎上加入channel split操作, 如圖3c所示。在每個unit的開頭, 將特征圖分為 以及 兩部分,一個分支直接往后傳遞,另一個分支包 含3個輸入輸出維度一樣的卷積。V2不再使用分組卷積, 因為unit的開頭已經相當于進行了分 組卷積。在完成卷積操作后,將特征concate, 恢復到unit的輸入大小, 然后進行channel shuffle操作。這里沒有了element-wise adddition操作,也節(jié)省了一些計算量,在實現的時候將concat/channel shuffle/channel split合在一起做了,能夠進一步提升性能。? 空間下采樣時對unit進行了少量的修改,如圖3d所示,去掉了channel split操作,因此輸出大小降低一倍,而維度則會增加一倍。

          MnasNet

          論文提出了移動端的神經網絡架構搜索方法,該方法主要有兩個思路,首先使用多目標優(yōu)化方法將模型在實際設備上的耗時融入搜索中,然后使用分解的層次搜索空間讓網絡保持層多樣性的同時,搜索空間依然很簡潔,MnasNet能夠在準確率和耗時中有更好的trade off

          MobileNet系列

          MobileNet系列是很重要的輕量級網絡家族,出自谷歌,MobileNetV1使用深度可分離卷積構建輕量級網絡,MobileNetV2提出創(chuàng)新的inverted residual with linear bottleneck單元,雖然層數變多了,但是整體網絡準確率和速度都有提升,MobileNetV3則結合AutoML技術與人工微調進行更輕量級的網絡構建。

          MobileNetV1

          MobileNetV1基于深度可分離卷積構建了非常輕量且延遲小的模型,并且可以通過兩個超參數進一步控制模型的大小,該模型能夠應用到終端設備中,具有很重要的實踐意義。
          MobileNet通過深度可分離卷積優(yōu)進行計算量優(yōu)化,將標準卷積轉化為深度卷積和pointwise卷積,每層后面都會接BN和ReLU。

          MobileNetV2

          MobileNetV2首先表明高維特征實際可以用緊湊的低維特征表達,然后提出了新的層單元inverted residual with linear bottleneck,該結構與殘差網絡單元類似,都包含shorcut,區(qū)別在于該結構是輸入輸出維度少,中間通過線性卷積先擴展升維,然后通過深度卷積進行特征提取,最后再映射降維,可以很好地保持網絡性能且網絡更加輕量。

          MobileNetV3

          MobileNetV3先基于AutoML構建網絡,然后進行人工微調優(yōu)化,搜索方法使用了platform-aware NAS以及NetAdapt,分別用于全局搜索以及局部搜索,而人工微調則調整了網絡前后幾層的結構、bottleneck加入SE模塊以及提出計算高效的h-swish非線性激活。

          CondenseNet

          DenseNet基于特征復用,能夠達到很好的性能,但是論文認為其內在連接存在很多冗余,早期的特征不需要復用到較后的層。為此,論文基于可學習分組卷積提出CondenseNet,能夠在訓練階段自動稀疏網絡結構,選擇最優(yōu)的輸入輸出連接模式,并在最后將其轉換成常規(guī)的分組卷積分組卷積結構。
          分組卷積的學習包含多個階段,前半段訓練過程包含多個condensing階段,結合引導稀疏化的正則化方法來反復訓練網絡,然后將不重要的filter剪枝。后半部分為optimization階段,這個階段對剪枝固定后的網絡進行學習。

          ESPNet系列

          ESPNet系列的核心在于空洞卷積金字塔,每層具有不同的dilation rate,在參數量不增加的情況下,能夠融合多尺度特征,相對于深度可分離卷積,深度可分離空洞卷積金字塔性價比更高。另外,HFF的多尺度特征融合方法也很值得借鑒 。

          ESPNet

          ESPNet是用于語義分割的輕量級網絡,核心在于ESP模塊。如圖a所示,該模塊包含point-wise卷積和空洞卷積金字塔,分別用于降低計算復雜度以及重采樣有效感受域不同的特征。ESP模塊比其它卷積分解方法(mobilenet/shufflenet)更高效,ESPNet能在GPU/筆記本/終端設備上達到112FPS/21FPS/9FPS。
          另外,論文發(fā)現,盡管空洞卷積金字塔帶來更大的感受域,但直接concate輸出卻會帶來奇怪網格紋路。為了解決這個問題,論文提出圖b的HFF操作,在concate之前先將輸出進行層級相加。相對于添加額外的卷積來進行后處理,HFF能夠有效地解決網格紋路而不帶來過多的計算量。另外,為了保證網絡的梯度傳遞,在ESP模塊添加了一條從輸入到輸出的shortcut連接。

          ESPNetV2

          ESPNetv2在ESPNet的基礎上結合深度分離卷積的設計方法,進行了進一步的模型輕量化。首先將point-wise卷積替換為分組point-wise卷積,然后將計算量較大的空洞卷積替換為深度可分離空洞卷積,最后依然使用HFF來消除網格紋路,輸出特征增加一次特征提取,得到圖b的結構??紤]到單獨計算K個point-wise卷積等同于單個分組數為K的point-wise分組卷積,而分組卷積的在實現上更高效,于是改進為圖c的最終結構。

          ChannelNets

          論文提出channel-wise卷積的概念,將輸入輸出維度的連接進行稀疏化而非全連接,區(qū)別于分組卷積的嚴格分組,以類似卷積滑動的形式將輸入channel與輸出channel進行關聯,能夠更好地保留channel間的信息交流。基于channel-wise卷積的思想,論文進一步提出了channel-wise深度可分離卷積,并基于該結構替換網絡最后的全連接層+全局池化的操作,搭建了ChannelNets。

          PeleeNet

          基于DenseNet的稠密連接思想,論文通過一系列的結構優(yōu)化,提出了用于移動設備上的網絡結構PeleeNet,并且融合SSD提出目標檢測網絡Pelee。從實驗來看,PeleeNet和Pelee在速度和精度上都是不錯的選擇。

          IGC系列

          IGC系列網絡的核心在分組卷積的極致運用,將常規(guī)卷積分解成多個分組卷積,能夠減少大量參數,另外互補性原則和排序操作能夠在最少的參數量情況下保證分組間的信息流通。但整體而言,雖然使用IGC模塊后參數量和計算量降低了,但網絡結構變得更為繁瑣,可能導致在真實使用時速度變慢。

          IGCV1

          Interleaved group convolution(IGC)模塊包含主分組卷積和次分組卷積,分別對主分區(qū)和次 分區(qū)進行特征提取, 主分區(qū)通過輸入特征分組獲得, 比如將輸入特征分為 個分區(qū), 每個分區(qū) 包含 維特征,而對應的次分區(qū)則分為 個分區(qū), 每個分區(qū)包含 維特征。主分組卷積負責對輸入特征圖進行分組特征提取, 而次組卷積負責對主分組卷積的輸出進行融合, 為 卷 積。IGC模塊形式上與深度可分離卷積類似,但分組的概念貫穿整個模塊, 也是節(jié)省參數的關鍵,另外模塊內補充了兩個排序模塊來保證channel間的信息交流。

          IGCV2

          IGCV1通過兩個分組卷積來對原卷積進行分解,減少參數且保持完整的信息提取。但作者發(fā)現,因為主分組卷積和次分組卷積在分組數上是互補的,導致次卷積的分組數一般較小,每個分組的維度較大,次卷積核較為稠密。為此,IGCV2提出Interleaved Structured Sparse Convolution,使用多個連續(xù)的稀疏分組卷積來替換原來的次分組卷積,每個分組卷積的分組數都足夠多,保證卷積核的稀疏性。

          IGCV3

          基于IGCV和bootleneck的思想,IGCV3結合低秩卷積核和稀疏卷積核來構成稠密卷積核,如圖1所示,IGCV3使用低秩稀疏卷積核(bottleneck模塊)來擴展和輸入分組特征的維度以及降低輸出的維度,中間使用深度卷積提取特征,另外引入松弛互補性原則,類似于IGCV2的嚴格互補性原則,用來應對分組卷積輸入輸出維度不一樣的情況。

          FBNet系列

          FBNet系列是完全基于NAS搜索的輕量級網絡系列,分析當前搜索方法的缺點,逐步增加創(chuàng)新性改進,FBNet結合了DNAS和資源約束,FBNetV2加入了channel和輸入分辨率的搜索,FBNetV3則是使用準確率預測來進行快速的網絡結構搜索。

          FBNet

          論文提出FBNet,使用可微神經網絡搜索(DNAS)來發(fā)現硬件相關的輕量級卷積網絡,流程如圖1所示。DNAS方法將整體的搜索空間表示為超網,將尋找最優(yōu)網絡結構問題轉換為尋找最優(yōu)的候選block分布,通過梯度下降來訓練block的分布,而且可以為網絡每層選擇不同的block。為了更好地估計網絡的時延,預先測量并記錄了每個候選block的實際時延,在估算時直接根據網絡結構和對應的時延累計即可。

          FBNetV2

          DNAS通過訓練包含所有候選網絡的超網來采樣最優(yōu)的子網,雖然搜索速度快,但需要耗費大量的內存,所以搜索空間一般比其它方法要小,且內存消耗和計算量消耗隨搜索維度線性增加。為了解決這個問題,論文提出DMaskingNAS,將channel數和輸入分辨率分別以mask和采樣的方式加入到超網中,在帶來少量內存和計算量的情況下,大幅增加倍搜索空間。

          FBNetV3

          論文認為目前的NAS方法大都只滿足網絡結構的搜索,而沒有在意網絡性能驗證時的訓練參數的設置是否合適,這可能導致模型性能下降。為此,論文提出JointNAS,在資源約束的情況下,同時搜索最準確的訓練參數以及網絡結構。FBNetV3完全脫離了FBNetV2和FBNet的設計,使用的準確率預測器以及基因算法都已經在NAS領域有很多應用,主要亮點在于將訓練參數加入到了搜索過程中,這對性能的提升十分重要。

          EfficientNet

          論文對模型縮放進行深入研究,提出混合縮放方法,該方法可以更優(yōu)地選擇寬度、深度和分辨率的維度縮放比例,從而使得模型能夠達到更高的精度。另外,論文通過NAS神經架構搜索提出EfficientNet,配合混合縮放方法,能夠使用很少量的參數達到較高的準確率。

          GhostNet

          訓練好的網絡一般都有豐富甚至冗余的特征圖信息來保證對輸入的理解,相似的特征圖類似于對方的ghost。但冗余的特征是網絡的關鍵特性,論文認為與其避免冗余特征,不如以一種cost-efficient的方式接受,于是提出能用更少參數提取更多特征的Ghost模塊,首先使用輸出很少的原始卷積操作(非卷積層操作)進行輸出,再對輸出使用一系列簡單的線性操作來生成更多的特征。這樣,不用改變其輸出的特征圖數量,Ghost模塊的整體的參數量和計算量就已經降低了。

          WeightNet

          論文提出了一種簡單且高效的動態(tài)生成網絡WeightNet,該結構在權值空間上集成了SENet和CondConv的特點,在激活向量后面添加一層分組全連接,直接產生卷積核的權值,在計算上十分高效,并且可通過超參數的設置來進行準確率和速度上的trade-off。

          MicroNet

          論文提出應對極低計算量場景的輕量級網絡MicroNet,包含兩個核心思路Micro-Factorized convolution和Dynamic Shift-Max,Micro-Factorized convolution通過低秩近似將原卷積分解成多個小卷積,保持輸入輸出的連接性并降低連接數,Dynamic Shift-Max通過動態(tài)的組間特征融合增加節(jié)點的連接以及提升非線性,彌補網絡深度減少帶來的性能降低。


          本文亮點總結


          1.ShuffleNet系列是輕量級網絡中很重要的一個系列,ShuffleNetV1提出了channel shuffle操作,使得網絡可以盡情地使用分組卷積來加速,而ShuffleNetV2則推倒V1的大部分設計,從實際出發(fā),提出channel split操作,在加速網絡的同時進行了特征重用,達到了很好的效果。

          2.FBNet系列是完全基于NAS搜索的輕量級網絡系列,分析當前搜索方法的缺點,逐步增加創(chuàng)新性改進,FBNet結合了DNAS和資源約束,FBNetV2加入了channel和輸入分辨率的搜索,FBNetV3則是使用準確率預測來進行快速的網絡結構搜索。

          如果覺得有用,就請分享到朋友圈吧!

          △點擊卡片關注極市平臺,獲取最新CV干貨

          公眾號后臺回復“ICCV2021”獲取最新論文合集

          極市干貨
          YOLO教程:一文讀懂YOLO V5 與 YOLO V4大盤點|YOLO 系目標檢測算法總覽全面解析YOLO V4網絡結構
          實操教程:PyTorch vs LibTorch:網絡推理速度誰更快?只用兩行代碼,我讓Transformer推理加速了50倍PyTorch AutoGrad C++層實現
          算法技巧(trick):深度學習訓練tricks總結(有實驗支撐)深度強化學習調參Tricks合集長尾識別中的Tricks匯總(AAAI2021
          最新CV競賽:2021 高通人工智能應用創(chuàng)新大賽CVPR 2021 | Short-video Face Parsing Challenge3D人體目標檢測與行為分析競賽開賽,獎池7萬+,數據集達16671張!


          CV技術社群邀請函 #

          △長按添加極市小助手
          添加極市小助手微信(ID : cvmart4)

          備注:姓名-學校/公司-研究方向-城市(如:小極-北大-目標檢測-深圳)


          即可申請加入極市目標檢測/圖像分割/工業(yè)檢測/人臉/醫(yī)學影像/3D/SLAM/自動駕駛/超分辨率/姿態(tài)估計/ReID/GAN/圖像增強/OCR/視頻理解等技術交流群


          每月大咖直播分享、真實項目需求對接、求職內推、算法競賽、干貨資訊匯總、與 10000+來自港科大、北大、清華、中科院、CMU、騰訊、百度等名校名企視覺開發(fā)者互動交流~



          覺得有用麻煩給個在看啦~  
          瀏覽 45
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日本成人免费电影一区二区三区 | 国产操逼视频免费 | 艹逼片| 欧美极品在线 | 青娱乐在线视频自拍好爽好舒服啊 |