<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>

          深入剖析MobileNet和它的變種

          共 4551字,需瀏覽 10分鐘

           ·

          2020-08-03 01:40

          最近在看輕量級(jí)網(wǎng)絡(luò)的東西,發(fā)現(xiàn)這篇總結(jié)的非常的好,因此就翻譯過來!總結(jié)各種變種,同時(shí)原理圖非常的清晰,希望能給大家一些啟發(fā),如果覺得不錯(cuò)歡迎三連哈!


          Introduction

          在本文中,我概述了高效CNN模型(如MobileNet及其變體)中使用的組成部分(building blocks),并解釋了它們?nèi)绱烁咝У脑颉L貏e地,我提供了關(guān)于如何在空間和通道域進(jìn)行卷積的直觀說明。

          在高效的模型中使用的組成部分

          在解釋具體的高效CNN模型之前,我們先檢查一下高效CNN模型中使用的組成部分的計(jì)算量,看看卷積在空間和通道域中是如何進(jìn)行的。

          假設(shè) H x W 為輸出feature map的空間大小,N為輸入通道數(shù),K x K為卷積核的大小,M為輸出通道數(shù),則標(biāo)準(zhǔn)卷積的計(jì)算量為 HWNK2M 。

          這里重要的一點(diǎn)是,標(biāo)準(zhǔn)卷積的計(jì)算量與(1)輸出特征圖H x W的空間大小,(2)卷積核K的大小,(3)輸入輸出通道的數(shù)量N x M成正比。

          當(dāng)在空間域和通道域進(jìn)行卷積時(shí),需要上述計(jì)算量。通過分解這個(gè)卷積,可以加速 CNNs,如下圖所示。

          卷積

          首先,我提供了一個(gè)直觀的解釋,關(guān)于空間和通道域的卷積是如何對(duì)進(jìn)行標(biāo)準(zhǔn)卷積的,它的計(jì)算量是HWNK2M 。

          我連接輸入和輸出之間的線,以可視化輸入和輸出之間的依賴關(guān)系。直線數(shù)量大致表示空間和通道域中卷積的計(jì)算量。

          例如,最常用的卷積——conv3x3,可以如上圖所示。我們可以看到,輸入和輸出在空間域是局部連接的,而在通道域是全連接的。

          接下來,如上所示用于改變通道數(shù)的conv1x1,或pointwise convolution。由于kernel的大小是1x1,所以這個(gè)卷積的計(jì)算代價(jià)是 HWNM,計(jì)算量比conv3x3降低了1/9。這種卷積被用來“混合”通道之間的信息。

          分組卷積(Grouped Convolution)

          分組卷積是卷積的一種變體,將輸入的feature map的通道分組,對(duì)每個(gè)分組的通道獨(dú)立地進(jìn)行卷積。

          假設(shè) G 表示組數(shù),分組卷積的計(jì)算量為 HWNK2M/G,計(jì)算量變成標(biāo)準(zhǔn)卷積的1/G。


          在conv3x3 而且 G=2的情況。我們可以看到,通道域中的連接數(shù)比標(biāo)準(zhǔn)卷積要小,說明計(jì)算量更小。


          在 conv3x3,G=3的情況下,連接變得更加稀疏。


          在 conv1x1,G=2的情況下,conv1x1也可以被分組。這種類型的卷積被用于ShuffleNet中。

          在 conv1x1,G=3的情況.

          深度可分離卷積(Depthwise Convolution)

          在深度卷積中,對(duì)每個(gè)輸入通道分別進(jìn)行卷積。它也可以定義為分組卷積的一種特殊情況,其中輸入和輸出通道數(shù)相同,G等于通道數(shù)。


          如上所示,depthwise convolution 通過省略通道域中的卷積,大大降低了計(jì)算量。

          Channel Shuffle

          Channel shuffle是一種操作(層),它改變 ShuffleNet 中使用的通道的順序。這個(gè)操作是通過張量reshape和 transpose 來實(shí)現(xiàn)的。

          更準(zhǔn)確地說,讓GN ' (=N) 表示輸入通道的數(shù)量,首先將輸入通道的維數(shù)reshape 為(G, N '),然后將(G, N ')轉(zhuǎn)置為(N ', G),最后將其flatten 成與輸入相同的形狀。這里G表示分組卷積的組數(shù),在ShuffleNet中與channel shuffle層一起使用。

          雖然ShuffleNet的計(jì)算代價(jià)不能用乘加操作(MACs)的數(shù)量來定義,但應(yīng)該有一些開銷。


          G=2時(shí)的channel shuffle 情況。卷積不執(zhí)行,只是改變了通道的順序。


          這種情況下打亂的通道數(shù) G=3

          Efficient Models

          下面,對(duì)于高效的CNN模型,我將直觀地說明為什么它們是高效的,以及如何在空間和通道域進(jìn)行卷積。

          ResNet (Bottleneck Version)

          ResNet 中使用的帶有bottleneck 架構(gòu)的殘差單元是與其他模型進(jìn)行進(jìn)一步比較的良好起點(diǎn)。


          如上所示,具有bottleneck架構(gòu)的殘差單元由conv1x1、conv3x3、conv1x1組成。第一個(gè)conv1x1減小了輸入通道的維數(shù),降低了隨后的conv3x3的計(jì)算量。最后的conv1x1恢復(fù)輸出通道的維數(shù)。

          ResNeXt

          ResNeXt是一個(gè)高效的CNN模型,可以看作是ResNet的一個(gè)特例,將conv3x3替換為成組的conv3x3。通過使用有效的分組conv,與ResNet相比,conv1x1的通道減少率變得適中,從而在相同的計(jì)算代價(jià)下獲得更好的精度。

          MobileNet (Separable Conv)

          MobileNet是一個(gè)可分離卷積模塊的堆疊,由depthwise conv和conv1x1 (pointwise conv)組成。


          可分離卷積在空間域和通道域獨(dú)立執(zhí)行卷積。這種卷積分解顯著降低了計(jì)算量,從 HWNK2M 降低到HWNK2 (depthwise) + HWNM (conv1x1), HWN(K2 + M) 。一般情況下,M>>K(如K=3和M≥32),減小率約為1/8-1/9。

          這里重要的一點(diǎn)是,計(jì)算量的bottleneck現(xiàn)在是conv1x1!

          ShuffleNet

          ShuffleNet的動(dòng)機(jī)是如上所述,conv1x1是可分離卷積的瓶頸。雖然conv1x1已經(jīng)是有效的,似乎沒有改進(jìn)的空間,分組conv1x1可以用于此目的!


          上圖說明了用于ShuffleNet的模塊。這里重要的building block是channel shuffle層,它在分組卷積中對(duì)通多在組間的順序進(jìn)行“shuffles”。如果沒有channel shuffle,分組卷積的輸出在組之間就不會(huì)被利用,導(dǎo)致精度下降。

          MobileNet-v2


          MobileNet-v2采用類似ResNet中帶有bottleneck架構(gòu)殘差單元的模塊架構(gòu);用深度可分離卷積(depthwise convolution)代替conv3x3,是殘差單元的改進(jìn)版本。


          從上面可以看到,與標(biāo)準(zhǔn)的 bottleneck 架構(gòu)相反,第一個(gè)conv1x1增加了通道維度,然后執(zhí)行depthwise conv,最后一個(gè)conv1x1減少了通道維度。


          通過如上所述對(duì)building blocks 進(jìn)行重新排序,并將其與MobileNet-v1(可分離的conv)進(jìn)行比較,我們可以看到這個(gè)體系結(jié)構(gòu)是如何工作的(這種重新排序不會(huì)改變整個(gè)模型體系結(jié)構(gòu),因?yàn)镸obileNet-v2是這個(gè)模塊的堆疊)。

          也就是說,上述模塊可以看作是可分離卷積的一個(gè)改進(jìn)版本,其中可分離卷積中的單個(gè)conv1x1被分解為兩個(gè)conv1x1。讓T表示通道維數(shù)的擴(kuò)展因子,兩個(gè) conv1x1 的計(jì)算量為 2HWN2/T ,而可分離卷積下的conv1x1的計(jì)算量為 HWN2。在[5]中,使用T = 6,將 conv1x1 的計(jì)算成本降低了3倍(一般為T/2)。

          FD-MobileNet


          最后,介紹 Fast-Downsampling MobileNet (FD-MobileNet)[10]。在這個(gè)模型中,與MobileNet相比,下采樣在較早的層中執(zhí)行。這個(gè)簡單的技巧可以降低總的計(jì)算成本。其原因在于傳統(tǒng)的向下采樣策略和可分離變量的計(jì)算代價(jià)。

          從VGGNet開始,許多模型采用相同的下采樣策略:執(zhí)行向下采樣,然后將后續(xù)層的通道數(shù)增加一倍。對(duì)于標(biāo)準(zhǔn)卷積,下采樣后計(jì)算量不變,因?yàn)楦鶕?jù)定義得 HWNK2M 。而對(duì)于可分離變量,下采樣后其計(jì)算量減小;由 HWN(K2 + M) 降為 H/2 W/2 2N(K2 + 2M) = HWN(K2/2 + M)。當(dāng)M不是很大時(shí)(即較早的層),這是相對(duì)占優(yōu)勢(shì)的。

          下面是對(duì)全文的總結(jié)



          References


          [1] M. Lin, Q. Chen, and S. Yan, “Network in Network,” in Proc. of ICLR, 2014.

          [2] L. Sifre, “Rigid-motion Scattering for Image Classification, Ph.D. thesis, 2014.

          [3] L. Sifre and S. Mallat, “Rotation, Scaling and Deformation Invariant Scattering for Texture Discrimination,” in Proc. of CVPR, 2013.

          [4] F. Chollet, “Xception: Deep Learning with Depthwise Separable Convolutions,” in Proc. of CVPR, 2017.

          [5] X. Zhang, X. Zhou, M. Lin, and J. Sun, “ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices,” in arXiv:1707.01083, 2017.

          [6] K. He, X. Zhang, S. Ren, and J. Sun, “Deep Residual Learning for Image Recognition,” in Proc. of CVPR, 2016.

          [7] S. Xie, R. Girshick, P. Dolla?r, Z. Tu, and K. He, “Aggregated Residual Transformations for Deep Neural Networks,” in Proc. of CVPR, 2017.

          [8] A. G. Howard, M. Zhu, B. Chen, D. Kalenichenko, W. Wang, T. Weyand, M. Andreetto, and H. Adam, “Mobilenets: Efficient Convolutional Neural Networks for Mobile Vision Applications,” in arXiv:1704.04861, 2017.

          [9] M. Sandler, A. Howard, M. Zhu, A. Zhmoginov, and L. Chen, “MobileNetV2: Inverted Residuals and Linear Bottlenecks,” in arXiv:1801.04381v3, 2018.


          往期精彩:

          數(shù)學(xué)推導(dǎo)+純Python實(shí)現(xiàn)機(jī)器學(xué)習(xí)算法23:CRF條件隨機(jī)場(chǎng)

          【原創(chuàng)首發(fā)】機(jī)器學(xué)習(xí)公式推導(dǎo)與代碼實(shí)現(xiàn)30講.pdf

          【原創(chuàng)首發(fā)】深度學(xué)習(xí)語義分割理論與實(shí)戰(zhàn)指南.pdf

          瀏覽 28
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <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>
                  亚洲毛片5 | 美韩av| 免费日皮视频在线观看 | 亚洲性爱精品 | 亚洲黄色免费在线观看 |