乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      CVPR2020論文解讀—華為高效輕量級網(wǎng)絡(luò)GhostNet, 性能超越谷歌MobileNetV3

       知識分享家 2021-04-16

      AI研習(xí)圖書館,發(fā)現(xiàn)不一樣的精彩世界

      論文解讀

      華為諾亞方舟實(shí)驗(yàn)室提出的新型端側(cè)神經(jīng)網(wǎng)絡(luò)架構(gòu)GhostNet,在同樣精度條件下,模型速度和計(jì)算量均少于此前SOTA算法,值得一看。GhostNet論文已經(jīng)被CVPR 2020收錄,模型與代碼也已經(jīng)在GitHub上開源。那么,華為諾亞方舟實(shí)驗(yàn)室是如何做到的?我們來一探究竟~~
      • 文章出處:華為諾亞方舟實(shí)驗(yàn)室,CVPR2020

      • 論文地址:https:///abs/1911.11907

      • 源碼地址(TF):https://github.com/huawei-noah/ghostnet

      • 源碼地址(PT):https://github.com/iamhankai/ghostnet.pytorch

      一、Introduction

      由于應(yīng)用設(shè)備內(nèi)存以及計(jì)算資源限制,將常規(guī)的CNN架構(gòu)部署到移動(dòng)設(shè)備是件非常困難的事。在將深度神經(jīng)網(wǎng)絡(luò)運(yùn)用到移動(dòng)設(shè)備的過程中,怎么保證性能不減,且計(jì)算量變得更少,成為研究的重點(diǎn)之一。常用的方法有剪枝、量化、蒸餾以及設(shè)計(jì)一些高效輕量的神經(jīng)網(wǎng)絡(luò)等。目前已經(jīng)出現(xiàn)很多經(jīng)典高效的輕量形卷積神經(jīng)網(wǎng)絡(luò),例如MobileNet,ShuffleNet等。

      近年來,雖然涌現(xiàn)了許多移動(dòng)端網(wǎng)絡(luò)架構(gòu)設(shè)計(jì),但是大部分都是從減少卷積計(jì)算量的思路出發(fā),例如:谷歌出品的Mobilenet系列是提出了「Depthwise+Pointwise卷積」來減少計(jì)算量,曠視則是提出「通道混洗」,利用轉(zhuǎn)置操作,均勻的shuffle各個(gè)通道進(jìn)行卷積。Mixnet是在Mobilenet基礎(chǔ)上,關(guān)注了卷積核的大小,通過「不同大小卷積核」所生成的卷積圖在不增加計(jì)算量前提下進(jìn)一步提高精度。

      而華為的Ghostnet則是聚焦于「特征圖冗余」,希望通過少量的計(jì)算(即文中的cheap operation)得到大量特征圖。而Ghostnet在相同計(jì)算量下,精度超越了Mobilenetv3,達(dá)到了75.7%分類準(zhǔn)確率( ImageNet ILSVRC-2012)。

      二、Motivation
      通常情況下,為了保證模型對輸入數(shù)據(jù)有全面的理解,訓(xùn)練好的深度神經(jīng)網(wǎng)絡(luò)中,會(huì)包含豐富甚至大量冗余的特征圖。

      何為特征圖冗余?

      如上圖所示,作者對訓(xùn)練好的Resnet-50模型進(jìn)行了特征圖可視化,在ResNet-50中,經(jīng)過第一個(gè)殘差塊處理后的特征圖,會(huì)出現(xiàn)很多相似的“特征圖對”——它們用相同顏色的框注釋。這樣的操作,雖然能實(shí)現(xiàn)較好的性能,但需要更多的計(jì)算資源驅(qū)動(dòng)大量的卷積層,來處理這些特征圖。

      在將深度神經(jīng)網(wǎng)絡(luò)應(yīng)用到移動(dòng)設(shè)備的浪潮中,怎么保證性能不減,且計(jì)算量變得更少,成為研究的重點(diǎn)之一。深度卷積神經(jīng)網(wǎng)絡(luò)通常是由大量的卷積塊所組成的,導(dǎo)致大量的計(jì)算成本。盡管最近的工作,例如MobileNet和ShuffleNet引入了深度可分離卷積或混洗操作,以使用較小的卷積核(浮點(diǎn)運(yùn)算)來構(gòu)建有效的CNN,其余1x1卷積層仍將占用大量內(nèi)存和FLOPs。

      華為諾亞方舟實(shí)驗(yàn)室的團(tuán)隊(duì)沒有沿著這條路繼續(xù)前進(jìn),而是另辟蹊徑:

      “特征圖對”中的一個(gè)特征圖,可以通過廉價(jià)操作由另一特征圖變換而獲得,則可以認(rèn)為其中一個(gè)特征圖是另一個(gè)的“幻影”。

      這是不是意味著,并非所有特征圖都要用卷積操作來得到?“幻影”特征圖,也可以用更廉價(jià)的操作來生成?

      于是,就有了GhostNet的基礎(chǔ)——Ghost模塊,用更少的參數(shù),生成與普通卷積層相同數(shù)量的特征圖,其需要的算力資源,要比普通卷積層要低,集成到現(xiàn)有設(shè)計(jì)好的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中,則能夠降低計(jì)算成本。

      核心理念:用更少的參數(shù)來生成更多特征圖

      因此,本文提出了一種更高效的輕量形卷積神經(jīng)網(wǎng)絡(luò)GhostNet,其核心思想是用更少的參數(shù)生成更多的特征圖。

      三、Method

      1. Ghost 模塊

      給定一個(gè)輸入數(shù)據(jù)  ,其中  代表輸入通道,  和  分別代表高度和寬度,當(dāng)我們用一個(gè)具有  個(gè)濾波器,內(nèi)核大小為  的卷積核  跟原始特征圖  做卷積操作時(shí),可以得到輸出特征圖  .其中  為偏置項(xiàng)。
      為簡化計(jì)算,這里忽略掉偏置項(xiàng),并假設(shè)輸入和輸出特征圖的尺寸大小相同。那么可以很方便的算出,原始卷積操作中的FLOPs數(shù)量為:  ,當(dāng)輸入通道數(shù)和濾波器數(shù)量為512以上時(shí),可想而知,為了得到這么多數(shù)量的特征圖,計(jì)算代價(jià)得多大。
      我們都知道,對于卷積神經(jīng)網(wǎng)絡(luò)而言,特征無疑是最重要的。在第一節(jié)通過特征可視化的結(jié)果,我們了解到部分原始特征圖當(dāng)中存在著非常多的冗余特征圖。
      從上面的分析可以得出,得到這部分特征圖需要花費(fèi)很大的計(jì)算代價(jià)。那么問題來了,我們是不是可以換種方式去得到這部分冗余的特征圖,從而避免昂貴的計(jì)算代價(jià)?畢竟無中生有難,但是對已有的東西通過適當(dāng)?shù)姆绞礁脑斓玫叫碌臇|西卻是比較簡單且合理的。
      作者認(rèn)為沒有必要耗費(fèi)大量計(jì)算資源來生成冗余的特征圖,一些特征圖之間是一種相似的關(guān)系,所以想到在原始特征圖基礎(chǔ)上,經(jīng)過簡單線性變換再生成新的特征圖。

      如上圖所示,先通過常規(guī)卷積,生成部分特征圖。再在這特征圖基礎(chǔ)上得到新的特征圖。最后兩部分特征圖在通道維度上連結(jié),生成最終的output。

      下面講解一下作者是如何進(jìn)行操作的。

      同上,給定一個(gè)輸入數(shù)據(jù)  ,我們用一個(gè)具有  個(gè)濾波器,內(nèi)核大小為  的卷積核  跟原始特征圖  進(jìn)行卷積運(yùn)算,得到輸出特征圖  .
      這里  . 為了進(jìn)一步的獲得剩余的  個(gè)"冗余"特征圖,作者對輸出的這  個(gè)特征圖分別進(jìn)行一系列廉價(jià)的線性運(yùn)算,最終得到  個(gè)特征圖。
      這里  表示  中的第  個(gè)特征圖,  表示對第  個(gè)特征圖進(jìn)行第  個(gè)線性運(yùn)算,用于生成第  個(gè)幻影(ghost)特征圖。于是原始輸出特征圖可以被表示為:
      于是,可以算出Ghost-block跟原始卷積塊之間的加速比  和參數(shù)壓縮率  .

      這里,  ,其他符號含義同上所述。其中  減掉的“1”即為圖2的indentity部分??梢园l(fā)現(xiàn),當(dāng)  且  時(shí),我們可以將上述公式進(jìn)一步地簡化為:

      可以發(fā)現(xiàn),使用Ghost模塊所帶來的的理論加速比和參數(shù)壓縮率約等于  --進(jìn)行線性運(yùn)算的次數(shù)。作者這里主要是通過線性運(yùn)算  來替代部分原始的卷積操作,從而將計(jì)算量和參數(shù)量降下來。
      來到這里,你可能會(huì)有兩個(gè)疑問:
      (1)如何保證原始卷積操作減掉的那部分特征圖都是冗余而非有用的特征?
      (2)對特征圖進(jìn)行線性變化所得到的幻影特征圖,如何確保這些特征圖不是冗余的?

      Ghost本質(zhì)可以理解為depth wise convolution 和 point wise convolution的重新組合。Ghost module 中的primary conv是一個(gè)point wise convolution;;Ghost module的cheap opration 是一個(gè)depth wise convolution。

      2. Ghost Bottleneck
      構(gòu)建新型端側(cè)神經(jīng)網(wǎng)絡(luò)架構(gòu)GhostNet
      利用Ghost模塊的優(yōu)勢,研究團(tuán)隊(duì)提出了一個(gè)專門為小型CNN設(shè)計(jì)的Ghost bottleneck(G-bneck)。其架構(gòu)如下圖所示,與ResNet中的基本殘差塊(Basic Residual Block)類似,集成了多個(gè)卷積層和shortcut。

      Ghost bottleneck主要由兩個(gè)堆疊的Ghost模塊組成。第一個(gè)用作擴(kuò)展層,增加了通道數(shù)。第二個(gè)用于減少通道數(shù),以與shortcut路徑匹配。然后,使用shortcut連接這兩個(gè)Ghost模塊的輸入和輸出。

      研究團(tuán)隊(duì)表示,這里借鑒了MobileNetV2中的思路:第二個(gè)Ghost模塊之后不使用ReLU,其他層在每層之后都應(yīng)用了批量歸一化(BN)和ReLU非線性激活。

      這里說的Ghost bottleneck,適用于上圖Stride= 1情況。對于Stride = 2的情況,shortcut路徑由下采樣層和Stride = 2的深度卷積來實(shí)現(xiàn)。此外,而且出于效率考慮,Ghost模塊中的初始卷積是點(diǎn)卷積。

      在Ghost bottleneck的基礎(chǔ)上,研究團(tuán)隊(duì)提出了GhostNet——遵循MobileNetV3的基本體系結(jié)構(gòu)的優(yōu)勢,用Ghost bottleneck替換MobileNetV3中的bottleneck。

      網(wǎng)絡(luò)第一層是具有16個(gè)卷積核的標(biāo)準(zhǔn)卷積層,然后是一系列Ghost bottleneck,通道逐漸增加。Ghost bottleneck根據(jù)輸入特征圖的大小分為不同的階段,除了每個(gè)階段的最后一個(gè)Ghost bottleneck是Stride = 2,其他所有Ghost bottleneck都以Stride = 1進(jìn)行應(yīng)用。通過兩個(gè)ghost module與原始輸入(shortcut)相加得到最終輸出,若shortcut維度不一致,則需要用1x1卷積來調(diào)整通道數(shù)。并且引入了SElayer,增加了特征圖注意力機(jī)制。

      最后,會(huì)利用全局平均池和卷積層將特征圖轉(zhuǎn)換為1280維特征向量以進(jìn)行最終分類。SE模塊也用在了某些Ghost bottleneck中的殘留層。與MobileNetV3相比,這里用ReLU換掉了Hard-swish激活函數(shù)。

      研究團(tuán)隊(duì)表示,這里的架構(gòu)只是一個(gè)基本的設(shè)計(jì)參考,進(jìn)一步的超參數(shù)調(diào)整或基于自動(dòng)架構(gòu)搜索的Ghost模塊將進(jìn)一步提高性能。

      四、Experiments

      如此思路設(shè)計(jì)出來的神經(jīng)網(wǎng)絡(luò)架構(gòu),性能到底如何?研究團(tuán)隊(duì)從各個(gè)方面進(jìn)行了驗(yàn)證。

      1. 分類任務(wù)

      GhostNet是為移動(dòng)設(shè)備設(shè)計(jì)的,文中沒有給出在GPU端的開銷情況,在華為P30 Pro上進(jìn)行了GhostNet的實(shí)際推理速度測試,并和其他模型進(jìn)行了對比。和MobileNetV3相比,相同F(xiàn)LOPs的情況下,大約可以提升0.3%~0.5%不等的top-1準(zhǔn)確率,相同Latency的情況下,大約可以提升0.5%的top1準(zhǔn)確率。

      在論文中,他們提供了Ghost模塊生成的特征圖。下圖展示了Ghost-VGG-16的第二層特征,左上方的圖像是輸入,左紅色框中的特征圖來自初始卷積,而右綠色框中的特征圖是經(jīng)過廉價(jià)深度變換后的幻影特征圖。

      研究團(tuán)隊(duì)表示,盡管生成的特征圖來自原始特征圖,但它們之間確實(shí)存在顯著差異,這意味著生成的特征足夠靈活,可以滿足特定任務(wù)的需求。

      2. 檢測任務(wù)

      論文在一階段檢測器RetinaNet和二階段檢測器Faster R-CNN上都做了實(shí)驗(yàn),在COCO數(shù)據(jù)集上達(dá)到相同的map精度時(shí),Backbone FLOPs都低于MobibleNet V2 和 V3。

      五、Conclusion

      為了減少深度神經(jīng)網(wǎng)絡(luò)的計(jì)算成本,本文提出了一種用于構(gòu)建有效神經(jīng)體系結(jié)構(gòu)的新型Ghost模塊。基本的Ghost模塊將原始的卷積層分為兩個(gè)部分,并使用較少的過濾器來生成多個(gè)固有特征圖。

      然后,進(jìn)一步應(yīng)用一定數(shù)量的廉價(jià)變換操作以有效地生成重影特征圖。在基準(zhǔn)模型和數(shù)據(jù)集上進(jìn)行的實(shí)驗(yàn)表明,該方法是一種即插即用模塊,用于將原始模型轉(zhuǎn)換為緊湊模型,同時(shí)保持可比的性能。此外,使用本文提出的新模塊構(gòu)建的GhostNet在效率和準(zhǔn)確性方面均優(yōu)于最新的輕量型神經(jīng)體系結(jié)構(gòu)。

      GhostNet,即插即用,歡迎嘗試~~

      參考文獻(xiàn)

      • [1]GhostNet: More Features from Cheap Operations. CVPR2020

      • [2]Searching for MobileNetV3

      • [3]MobileNetV2: Inverted Residuals and Linear Bottlenecks

      • [4]Squeeze-and-Excitation Networks

      最后,祝大家煉丹愉快,學(xué)習(xí)順利~~

        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多