支撐移動(dòng)端高性能AI的幕后力量!谷歌提出全新高性能MobileNet V3,網(wǎng)絡(luò)模型搜索與精巧設(shè)計(jì)的完美結(jié)合造就新一代移動(dòng)端網(wǎng)絡(luò)架構(gòu)。
在剛剛過(guò)去的谷歌I/O上小伙伴對(duì)新發(fā)布的技術(shù)一定過(guò)足了癮。支撐谷歌整合全球信息的AI被提到了至關(guān)重要的位置,從云到端,從安卓系統(tǒng)到移動(dòng)設(shè)備無(wú)處不在的AI都顯示出向善的力量。移動(dòng)端作為與用戶交流最為密切的設(shè)備,支撐它的AI技術(shù)正在飛速發(fā)展。為了實(shí)現(xiàn)更準(zhǔn)確、更迅速更節(jié)能的移動(dòng)端模型,在I/O大會(huì)召開(kāi)的同日谷歌發(fā)表文章推出了最新一代移動(dòng)端網(wǎng)絡(luò)架構(gòu)MobileNet V3,也許這就是為Pixels提供優(yōu)異表現(xiàn)背后的力量。在最新的論文里,研究人員結(jié)合了網(wǎng)絡(luò)架構(gòu)搜索技術(shù)和新穎的架構(gòu)設(shè)計(jì)實(shí)現(xiàn)了新一代的MobileNetV3,更適合移動(dòng)端CPUs運(yùn)行。新的模型在精度和延遲上進(jìn)行了很好的平衡,并在圖像分類、檢測(cè)和分割上取得了超過(guò)V2版本15%~30%的速度提升。
V3兩個(gè)版本的模型與先前模型在精度-速度上表現(xiàn)的對(duì)比(TFLite在單核CPU上測(cè)試)。
同時(shí)在相同的模型大小下取得了更好的精度。
V3模型在模型大小、操作與精度上表現(xiàn)與先前模型的對(duì)比。
隨著AI的發(fā)展和落地,高效的神經(jīng)網(wǎng)絡(luò)逐漸成為了移動(dòng)設(shè)備和app的標(biāo)配。一個(gè)高效的模型實(shí)現(xiàn)不僅能帶來(lái)順滑的體驗(yàn),更因?yàn)闊o(wú)需上傳用戶數(shù)據(jù)就能訓(xùn)練模型而增強(qiáng)了對(duì)于用戶隱私的保護(hù)。除了帶來(lái)低延時(shí)的使用體驗(yàn),高效模型還為持久續(xù)行的移動(dòng)設(shè)備節(jié)省了更多電能開(kāi)銷。(I/O大會(huì)上對(duì)于隱私的強(qiáng)調(diào)和長(zhǎng)續(xù)航的Pixels手機(jī)也許就有這個(gè)mobileNetV3的貢獻(xiàn)呢。)
在最新的論文中,研究人員提出了包含兩個(gè)子版本的MobileNetV3(Large/Small)為移動(dòng)端高精度高效率的計(jì)算機(jī)任務(wù)提供AI動(dòng)力。新模型不僅拓展了移動(dòng)端網(wǎng)絡(luò)的能力邊界,更在實(shí)現(xiàn)過(guò)程中將模型自動(dòng)搜索方法和新穎架構(gòu)設(shè)計(jì)有機(jī)結(jié)合起來(lái),創(chuàng)造出高效準(zhǔn)確的模型架構(gòu)。為了構(gòu)建高效的網(wǎng)絡(luò)模型權(quán)衡精度和效率,研究人員設(shè)計(jì)了各設(shè)各樣精妙的模型,同時(shí)也利用了自動(dòng)化的大規(guī)模架構(gòu)搜索來(lái)不斷探索能力更強(qiáng)、效率更高的模型。這些精妙的設(shè)計(jì)不斷提高了移動(dòng)端模型的效率和精度。SqueezeNet開(kāi)始模型的參數(shù)量就不斷下降,為了進(jìn)一步減少模型的實(shí)際操作數(shù)(MAdds),MobileNetV1利用了深度可分離卷積提高了計(jì)算效率,而v2則加入了線性bottlenecks和反轉(zhuǎn)殘差模塊構(gòu)成了高效的基本模塊。隨后的ShuffleNet充分利用了組卷積和通道shuffle進(jìn)一步提高模型效率。CondenseNet則學(xué)習(xí)保留有效的dense連接在保持精度的同時(shí)降低,ShiftNet則利用shift操作和逐點(diǎn)卷積代替了昂貴的空間卷積。除了各種精巧的設(shè)計(jì),研究人員們還請(qǐng)來(lái)的算法幫忙自動(dòng)化設(shè)計(jì)和搜索網(wǎng)絡(luò)模型。強(qiáng)化學(xué)習(xí)最先被引入這個(gè)領(lǐng)域,早期的工作主要集中在cell級(jí)別的結(jié)構(gòu)搜索并復(fù)用所有層中,而最近的工作則拓展到了塊級(jí)別的架構(gòu),模型探索不同的層結(jié)構(gòu)和不同分辨率的塊結(jié)構(gòu)來(lái)構(gòu)建網(wǎng)絡(luò)。此外網(wǎng)絡(luò)模型的剪枝和量化也是提高效率的重要途徑。在這些技術(shù)的加持下,Google的研究人員開(kāi)始著手構(gòu)建更強(qiáng)大的v3模型。在充分研究了v1版本的深度可分離模塊、v2版本的線性瓶頸和反轉(zhuǎn)殘差、MnasNet中的序列激活結(jié)構(gòu)后,綜合了三種結(jié)構(gòu)的優(yōu)點(diǎn)設(shè)計(jì)出了高效的v3模塊,并利用了改進(jìn)后的swish作為激活函數(shù),使得后續(xù)的量化和效率提升更為有效。在構(gòu)建v3版本模塊的過(guò)程中研究人員主要進(jìn)行了網(wǎng)絡(luò)搜索和模型改進(jìn)兩個(gè)部分,自動(dòng)和手動(dòng)的協(xié)同工作得到了更為先進(jìn)的模型架構(gòu)。
網(wǎng)絡(luò)搜索
對(duì)于模型結(jié)構(gòu)的探索和優(yōu)化來(lái)說(shuō),網(wǎng)絡(luò)搜索是強(qiáng)大的工具。研究人員首先使用了神經(jīng)網(wǎng)絡(luò)搜索功能來(lái)構(gòu)建全局的網(wǎng)絡(luò)結(jié)構(gòu),隨后利用了NetAdapt算法來(lái)對(duì)每層的核數(shù)量進(jìn)行優(yōu)化。對(duì)于全局的網(wǎng)絡(luò)結(jié)構(gòu)搜索,研究人員使用了與Mnasnet中相同的,基于RNN的控制器和分級(jí)的搜索空間,并針對(duì)特定的硬件平臺(tái)進(jìn)行精度-延時(shí)平衡優(yōu)化,在目標(biāo)延時(shí)(~80ms)范圍內(nèi)進(jìn)行搜索。隨后利用NetAdapt方法來(lái)對(duì)每一層按照序列的方式進(jìn)行調(diào)優(yōu)。在盡量?jī)?yōu)化模型延時(shí)的同時(shí)保持精度,減小擴(kuò)充層和每一層中瓶頸的大小。
網(wǎng)絡(luò)改進(jìn)
在機(jī)器搜索得到網(wǎng)絡(luò)架構(gòu)的基礎(chǔ)上,研究人員引入了諸多新型的結(jié)構(gòu)來(lái)提升模型的最終效果。不僅重新設(shè)計(jì)了網(wǎng)絡(luò)頭和尾的計(jì)算密集層,同時(shí)還引入了新的非線性激活h-swish,提升計(jì)算和量化能力。mobileNetV2模型中反轉(zhuǎn)殘差結(jié)構(gòu)和變量利用了1*1卷積來(lái)構(gòu)建最后層,以便于拓展到高維的特征空間,雖然對(duì)于提取豐富特征進(jìn)行預(yù)測(cè)十分重要,但卻引入了二外的計(jì)算開(kāi)銷與延時(shí)。為了在保留高維特征的前提下減小延時(shí),將均值池化前的層移除并用1*1卷積來(lái)計(jì)算特征圖。特征生成層被移除后,先前用于瓶頸映射的層也不再需要了,這將為減少10ms的開(kāi)銷,在提速15%的同時(shí)減小了30m的操作數(shù)。
同時(shí)在模型的前端,32個(gè)3*3的卷積通過(guò)h-swish非線性在保持精度的情況下壓縮到了16個(gè)卷積核,又減小了10m操作和3ms的開(kāi)銷。
對(duì)于非線性激活函數(shù),swish雖然很有效但在移動(dòng)端運(yùn)行開(kāi)銷很大,研究人員從兩個(gè)方面著手解決這一問(wèn)題。一方面利用了hard(硬)版本的激活函數(shù):
這種非線性在保持精度的情況下帶了了很多優(yōu)勢(shì),首先ReLU6在眾多軟硬件框架中都可以實(shí)現(xiàn),其次量化時(shí)避免了數(shù)值精度的損失,運(yùn)行快。這一非線性改變將模型的延時(shí)增加了15%。但它帶來(lái)的網(wǎng)絡(luò)效應(yīng)對(duì)于精度和延時(shí)具有正向促進(jìn),剩下的開(kāi)銷可以通過(guò)融合非線性與先前層來(lái)消除。另一方面,研究發(fā)現(xiàn)非線性使用帶來(lái)的開(kāi)銷會(huì)隨著網(wǎng)絡(luò)深度的加深而減小,所以研究人員將在后半部分較深的層中使用以減小開(kāi)銷。研究人員提出了一大一小兩個(gè)模型,分別針對(duì)不同級(jí)別計(jì)算資源的硬件平臺(tái)。下表展示了兩種不同模型的架構(gòu)??梢钥吹较惹疤岬降膆-wish集中在后半部分。
分類、檢測(cè)、分割驗(yàn)證模型能力提升
為了驗(yàn)證新模型的精度與效率,研究人員分別在圖像分類、目標(biāo)檢測(cè)和實(shí)例分割任務(wù)上進(jìn)行了測(cè)試,指標(biāo)全面提升。首先來(lái)看ImageNet上的分類結(jié)果:
可以看到large版本的模型在精度、操作數(shù)上都得到了提升,特別是延時(shí)縮短了很多。研究人員還研究了網(wǎng)絡(luò)中的乘數(shù)因子與分辨率對(duì)精度和延時(shí)造成的影響:
此外還進(jìn)行了消融性測(cè)試,分別分析了h-swish和各個(gè)部件對(duì)于模型精度延時(shí)的影響:
隨后在COCO數(shù)據(jù)集上基于V3實(shí)現(xiàn)的SSDLite進(jìn)行了目標(biāo)檢測(cè)任務(wù)的評(píng)測(cè),可以看到map提升或者延時(shí)大幅下降了,100ms左右即可完成目標(biāo)檢測(cè):
最后還在Cityscape實(shí)例分割任務(wù)上進(jìn)行了測(cè)試。研究人員還提出了新的輕型R-ASPP (reduced design of the Atrous Spatial Pyramid Pooling)模塊用于分割頭的架構(gòu)。一個(gè)分支用了很大的池化核和大步長(zhǎng)節(jié)省計(jì)算量,另一個(gè)分支只用了1*1卷積抽取稠密特征,并加入了底層特征來(lái)捕捉更多的細(xì)節(jié)信息。下圖顯示了減半輸出濾波器數(shù)量、改變分割頭、改變輸出步長(zhǎng)情況下的實(shí)例分割結(jié)果,可以看到通過(guò)各種性能提升,可以在CPUs上實(shí)現(xiàn)400ms左右的分割。
目前github已經(jīng)能搜到兩個(gè)v3版基于PyTorch代碼實(shí)現(xiàn):
https://github.com/AnjieZheng/MobileNetV3-PyTorchhttps://github.com/leaderj1001/MobileNetV3-Pytorch
其中模型定義在model.py/mobilenet_v3.py中,感興趣的小伙伴可以嘗試下新版本的MobileNet香不香?配合論文學(xué)習(xí),理論聯(lián)系實(shí)際學(xué)得快記得牢!
-
谷歌
+關(guān)注
關(guān)注
27文章
6194瀏覽量
106014 -
強(qiáng)化學(xué)習(xí)
+關(guān)注
關(guān)注
4文章
268瀏覽量
11301 -
ai技術(shù)
+關(guān)注
關(guān)注
1文章
1290瀏覽量
24453
原文標(biāo)題:首發(fā) | 精度、速度、效率、性能全面提升!揭秘谷歌最新一代移動(dòng)端網(wǎng)絡(luò)架構(gòu)MobileNet V3
文章出處:【微信號(hào):thejiangmen,微信公眾號(hào):將門創(chuàng)投】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論