AI研習(xí)圖書館,,發(fā)現(xiàn)不一樣的精彩世界
由于應(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),。 何為特征圖冗余,?在將深度神經(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),而是另辟蹊徑: “特征圖對(duì)”中的一個(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ì)算成本。 因此,,本文提出了一種更高效的輕量形卷積神經(jīng)網(wǎng)絡(luò)GhostNet,,其核心思想是用更少的參數(shù)生成更多的特征圖。 1. Ghost 模塊 如上圖所示,,先通過常規(guī)卷積,生成部分特征圖,。再在這特征圖基礎(chǔ)上得到新的特征圖,。最后兩部分特征圖在通道維度上連結(jié),生成最終的output,。 下面講解一下作者是如何進(jìn)行操作的,。 這里,, ,,其他符號(hào)含義同上所述。其中 減掉的“1”即為圖2的indentity部分,??梢园l(fā)現(xiàn),當(dāng) 且 時(shí),,我們可以將上述公式進(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,。 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情況,。對(duì)于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)一步提高性能,。 如此思路設(shè)計(jì)出來的神經(jīng)網(wǎng)絡(luò)架構(gòu),性能到底如何,?研究團(tuán)隊(duì)從各個(gè)方面進(jìn)行了驗(yàn)證,。 1. 分類任務(wù) 研究團(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,。 為了減少深度神經(jīng)網(wǎng)絡(luò)的計(jì)算成本,,本文提出了一種用于構(gòu)建有效神經(jīng)體系結(jié)構(gòu)的新型Ghost模塊,?;镜腉host模塊將原始的卷積層分為兩個(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)
|
|