天天看點

mobilenet cpu 加速_性能超越谷歌MobileNet!依圖團隊提出新一代移動端網絡架構MobileNeXt ,入選ECCV2020...

《三體》中羅輯沉睡了兩個世紀後,在位于地下一千多米的城市中醒來;《流浪地球》中,行星推進器下500米的地下城。

在那裡是一樣的人間煙火,隻不過人們生活的場景從地上轉移到了地下。

未來,随着人類栖息空間的不斷延展和拓寬,現存的城市管理體系注定會失效,必将需要一個高度複雜的智能系統來維護,而打造智慧城市,要完成交通、供水、供電、供氣、通訊、環保等等基礎設施的數字化建設,但是很少有城市關注到。

而上海的「一網統管」系統做到了,小到每一個路燈、井蓋、消防栓,大到26000多公裡的地下管網,都被連接配接了起來,讓城市的精細化管理成為可能。

這個「一網統管」得益于依圖自主研發的人工智能晶片,人工智能算力在城市管理中規模化落地的可能性被大大釋放,為此還得到了央視《新聞聯播》“十三五”成就巡禮專題的點贊。

mobilenet cpu 加速_性能超越谷歌MobileNet!依圖團隊提出新一代移動端網絡架構MobileNeXt ,入選ECCV2020...
mobilenet cpu 加速_性能超越谷歌MobileNet!依圖團隊提出新一代移動端網絡架構MobileNeXt ,入選ECCV2020...

一直以來,依圖都在智能基礎設施的建設方面狠下功夫,在基礎的算法和晶片方面不斷突破新的邊界。

移動端神經網絡新架構MobileNeXt,超越谷歌MobileNet和何恺明團隊ResNet

基礎網絡結構是各種算法的基礎,直接影響模型最終的性能,這方面高品質的研究很稀缺。

依圖研發團隊近期在 ECCV 2020 發表了新論文,通過分析目前主流移動端網絡的倒殘差子產品的優勢與劣勢,提出了一種改良版本MobileNeXt,大大提升了移動端神經網絡的性能。

mobilenet cpu 加速_性能超越谷歌MobileNet!依圖團隊提出新一代移動端網絡架構MobileNeXt ,入選ECCV2020...
mobilenet cpu 加速_性能超越谷歌MobileNet!依圖團隊提出新一代移動端網絡架構MobileNeXt ,入選ECCV2020...

論文:

代碼: 

在不使用SE等性能提升子產品的條件下,相比于主流的MobileNetV2,MobileNeXt在相同計算量下可達到的分類精度提升。

此外,新提出的沙漏子產品可用于改良神經網絡自動化搜尋的搜尋空間,在使用相同搜尋算法的情況下,加入沙漏子產品的搜尋空間可以在CIFAR10的資料集上取得更高效的模型架構,大大優于谷歌的MobileNet、何恺明團隊提出的ResNet等使用倒殘差結構的模型。

mobilenet cpu 加速_性能超越谷歌MobileNet!依圖團隊提出新一代移動端網絡架構MobileNeXt ,入選ECCV2020...
mobilenet cpu 加速_性能超越谷歌MobileNet!依圖團隊提出新一代移動端網絡架構MobileNeXt ,入選ECCV2020...

圖一:ImageNet測試結果

倒殘差和線性瓶頸,讓移動端神經網絡徹底「通車」

谷歌在2017年提出了專門為移動端優化的輕量級CNN網絡,該研究最大的亮點是提出了深度可分離卷積(depthwise separable convolution)。

傳統卷積

傳統卷積分兩步,每個卷積核與每個特征圖按位相乘,然後再相加,此時,計算量為𝐷𝐹∗𝐷𝐹∗𝐷𝐾∗𝐷𝐾∗𝑀∗𝑁,其中𝐷𝐹為特征圖尺寸,𝐷𝐾為卷積核尺寸,M為輸入通道數,N為輸出通道數。

mobilenet cpu 加速_性能超越谷歌MobileNet!依圖團隊提出新一代移動端網絡架構MobileNeXt ,入選ECCV2020...
mobilenet cpu 加速_性能超越谷歌MobileNet!依圖團隊提出新一代移動端網絡架構MobileNeXt ,入選ECCV2020...

深度可分離卷積

而谷歌提出的深度可分離卷積,将普通卷積拆分成了一個深度卷積depthwise和一個逐點卷積pointwise。

首先按通道進行按位相乘,通道數沒有改變;然後将第一步的結果,使用1*1的卷積核進行傳統的卷積,此時通道數可以進行改變。使用了深度可分離卷積,其計算量變為𝐷𝐾∗𝐷𝐾∗𝑀∗𝐷𝐹∗𝐷𝐹+1∗1∗𝑀∗𝑁∗𝐷𝐹∗𝐷𝐹。

mobilenet cpu 加速_性能超越谷歌MobileNet!依圖團隊提出新一代移動端網絡架構MobileNeXt ,入選ECCV2020...
mobilenet cpu 加速_性能超越谷歌MobileNet!依圖團隊提出新一代移動端網絡架構MobileNeXt ,入選ECCV2020...

深度可分離卷積的計算量下降了,也是MobileNet V1能夠實作加速的主要原因。

MobileNet V1的速度雖然提高了,但是低維資訊映射到高維的次元較低,經過ReLU後再映射回低維時損失比較大,是以谷歌在V1的基礎上,又引入了倒殘差(Inverted Residuals)和線性瓶頸(Linear Bottlenecks)兩個子產品,使得MobileNetV2降低延遲時間的同時精度也有所提升。

MobileNetV2 提出的倒殘差子產品現在已經成為移動端網絡的基礎構模組化塊。

mobilenet cpu 加速_性能超越谷歌MobileNet!依圖團隊提出新一代移動端網絡架構MobileNeXt ,入選ECCV2020...
mobilenet cpu 加速_性能超越谷歌MobileNet!依圖團隊提出新一代移動端網絡架構MobileNeXt ,入選ECCV2020...

倒殘差子產品中間粗兩頭細,擴張-卷積-壓縮,提取更高維資訊

mobilenet cpu 加速_性能超越谷歌MobileNet!依圖團隊提出新一代移動端網絡架構MobileNeXt ,入選ECCV2020...
mobilenet cpu 加速_性能超越谷歌MobileNet!依圖團隊提出新一代移動端網絡架構MobileNeXt ,入選ECCV2020...

線性瓶頸子產品,将最後的ReLU替換成線性激活函數,進一步降低資訊損失

通過在高次元使用深度可分離卷積,倒殘差網絡可以有效降低計算開銷,保證模型性能。

同時,瓶頸結構的連接配接方式可以有效降低點操作的數量、減少所需要的記憶體通路,進而進一步減小硬體上的讀取延時,提升硬體執行效率。

mobilenet cpu 加速_性能超越谷歌MobileNet!依圖團隊提出新一代移動端網絡架構MobileNeXt ,入選ECCV2020...
mobilenet cpu 加速_性能超越谷歌MobileNet!依圖團隊提出新一代移動端網絡架構MobileNeXt ,入選ECCV2020...

倒殘差梯度回傳易「走丢」,沙漏型瓶頸結構讓梯度不「抖動」

倒殘差結構的不足

然而,MobileNetV2集中于瓶頸結構的網絡連接配接方式可能會造成優化過程中的梯度回傳抖動,進而影響模型收斂趨勢,導緻模型性能降低。

現有研究表明:(1) 更寬的網絡可以緩解梯度混淆問題并有助于提升模型性能;(2)逆殘差子產品中的短連接配接可能會影響梯度回傳。

為了解決MobileNetV2中瓶頸結構導緻的優化問題,依圖團隊重新思考了由ResNet提出的傳統瓶頸結構的連結方式,這種連接配接方式把梯度主要集中在較高次元的網絡層,可以減少梯度抖動、加速網絡收斂。

于是便有了一種新的網絡設計子產品--沙漏型瓶頸結構,既能保留高次元網絡加速收斂和訓練的優勢,又能利用深度卷積帶來的計算開銷收益,減少高維特征圖的記憶體通路需求,提高硬體執行效率。 

mobilenet cpu 加速_性能超越谷歌MobileNet!依圖團隊提出新一代移動端網絡架構MobileNeXt ,入選ECCV2020...
mobilenet cpu 加速_性能超越谷歌MobileNet!依圖團隊提出新一代移動端網絡架構MobileNeXt ,入選ECCV2020...

圖二:a.瓶頸結構,b.倒殘差結構,c.新的沙漏型瓶頸結構

依圖團隊把跳躍連結放置在高次元神經網絡層,并使用深度卷積來降低計算開銷,然後使用兩連續層1x1卷積來進一步降低計算開銷的效果。

mobilenet cpu 加速_性能超越谷歌MobileNet!依圖團隊提出新一代移動端網絡架構MobileNeXt ,入選ECCV2020...
mobilenet cpu 加速_性能超越谷歌MobileNet!依圖團隊提出新一代移動端網絡架構MobileNeXt ,入選ECCV2020...

圖三:SandglassBlock的具體原理設計

可以看到,Sandglass Block可以保證更多的資訊從bottom層傳遞給top層,進而有助于梯度回傳;執行了兩次深度卷積以編碼更多的空間資訊。

基于上面的分析,我們來看依圖研發團隊都做了哪些設計優化。

降維和升維的位置

在原始的倒殘差子產品中先進行升維再進行降維。

基于前述分析,為確定高次元特征的短連接配接,依圖團隊對兩個1x1卷積的順序進行了調整。假設 

mobilenet cpu 加速_性能超越谷歌MobileNet!依圖團隊提出新一代移動端網絡架構MobileNeXt ,入選ECCV2020...
mobilenet cpu 加速_性能超越谷歌MobileNet!依圖團隊提出新一代移動端網絡架構MobileNeXt ,入選ECCV2020...

表示輸入張量, 

mobilenet cpu 加速_性能超越谷歌MobileNet!依圖團隊提出新一代移動端網絡架構MobileNeXt ,入選ECCV2020...
mobilenet cpu 加速_性能超越谷歌MobileNet!依圖團隊提出新一代移動端網絡架構MobileNeXt ,入選ECCV2020...

 表示輸出張量(注:此時尚未考慮深度卷積),那麼該子產品的計算可以寫成如下形式,

mobilenet cpu 加速_性能超越谷歌MobileNet!依圖團隊提出新一代移動端網絡架構MobileNeXt ,入選ECCV2020...
mobilenet cpu 加速_性能超越谷歌MobileNet!依圖團隊提出新一代移動端網絡架構MobileNeXt ,入選ECCV2020...

見圖三b中的中間兩個1x1卷積。

高次元短連接配接

依圖團隊并未在瓶頸層間建構短連接配接,而是在更高維特征之間建構短連接配接(見圖三b)。更寬的短連接配接有助于更多資訊從輸入F傳遞給輸出G,進而有更多的梯度回傳。

與此同時,由于高次元的跳躍連結會導緻更多的點加操作、需求更多的記憶體讀取通路,直接連接配接高次元跳躍連結會降低硬體執行效率。

一種新穎的殘差跳躍連接配接可以解決這一問題:即隻使用一部分資訊通道進行跳躍連結。這一操作可直接減少點加操作和特征圖大小,進而直接提升硬體執行效率。

實驗結果顯示,僅使用一半的資訊通道進行跳躍連結不會造成精度損失。

引入更豐富的空間資訊

我們知道,1x1卷積有助于編碼通道間的資訊,但難以擷取空間資訊,而深度卷積可以。是以依圖團隊沿着倒殘差子產品的思路引入了深度卷積來編碼空間資訊。

但跟倒殘差子產品不同的是深度卷積的位置。

倒殘差子產品的深度卷積在兩個1x1卷積之間,而1x1卷積會降低空域資訊編碼,是以依圖團隊将深度卷積置于兩個1x1卷積之外(見圖三b中的兩個3x3深度卷積),這樣就能確定深度卷積在高維空間得到處理并獲得更豐富的特征表達。

mobilenet cpu 加速_性能超越谷歌MobileNet!依圖團隊提出新一代移動端網絡架構MobileNeXt ,入選ECCV2020...
mobilenet cpu 加速_性能超越谷歌MobileNet!依圖團隊提出新一代移動端網絡架構MobileNeXt ,入選ECCV2020...

(該子產品可以采用如上公式進行描述)

激活函數的位置

線性瓶頸層有助于避免特征出現零化現象導緻的資訊損失,是以在降維的1x1卷積後不再添加激活函數。同時最後一個深度卷積後也不添加激活函數,激活函數隻添加在第一個深度卷積與最後一個1x1卷積之後。

基于上述考慮,得到了該文所設計的新穎的倒殘差瓶頸子產品,結構如下表所示。

mobilenet cpu 加速_性能超越谷歌MobileNet!依圖團隊提出新一代移動端網絡架構MobileNeXt ,入選ECCV2020...
mobilenet cpu 加速_性能超越谷歌MobileNet!依圖團隊提出新一代移動端網絡架構MobileNeXt ,入選ECCV2020...

圖四:新的殘差瓶頸子產品的具體連接配接方式

基于上述所示沙漏瓶頸子產品,依圖團隊提出了一種新的移動端網絡架構MobileNeXt。

mobilenet cpu 加速_性能超越谷歌MobileNet!依圖團隊提出新一代移動端網絡架構MobileNeXt ,入選ECCV2020...
mobilenet cpu 加速_性能超越谷歌MobileNet!依圖團隊提出新一代移動端網絡架構MobileNeXt ,入選ECCV2020...

圖五:依圖團隊提出的新的移動端網絡架構

依圖一直是穩紮穩打型的選手,做研究也很務實、不追求多和雜,梯度抖動就解決抖動的問題,損失大就想辦法降低損失,追求的是實用和落地,而不是去刷各種比賽的榜單。

對标MobileNetV2,MobileNeXt參數更少精度更高

既然是基于移動端的網絡,依圖團隊在Google Pixel手機上進行了測試,看MobileNeXt跟MobileNet V2相比,性能有多少提升。

在PyTorch環境下,可以看到MobileNeXt在不同大小的模型下,精度均優于MobileNetV2,而且模型越小,這種優勢越明顯。

mobilenet cpu 加速_性能超越谷歌MobileNet!依圖團隊提出新一代移動端網絡架構MobileNeXt ,入選ECCV2020...
mobilenet cpu 加速_性能超越谷歌MobileNet!依圖團隊提出新一代移動端網絡架構MobileNeXt ,入選ECCV2020...

圖六:與MobileNetV2 對比的實驗結果

當與後訓練量化方法結合時,MobileNeXt也有很大優勢。(後訓練量化可以簡單看做模型壓縮)

mobilenet cpu 加速_性能超越谷歌MobileNet!依圖團隊提出新一代移動端網絡架構MobileNeXt ,入選ECCV2020...
mobilenet cpu 加速_性能超越谷歌MobileNet!依圖團隊提出新一代移動端網絡架構MobileNeXt ,入選ECCV2020...

圖七:當與量化方法結合的時候,MobileNeXt的優勢會更加明顯

硬體執行效率方面,僅使用部分新系統進行跳躍連結可有效提高硬體執行效率。值得注意的是,在進行殘差資訊通道實驗的時候,沒有使用任何額外的監督資訊(比如知識蒸餾)。

mobilenet cpu 加速_性能超越谷歌MobileNet!依圖團隊提出新一代移動端網絡架構MobileNeXt ,入選ECCV2020...
mobilenet cpu 加速_性能超越谷歌MobileNet!依圖團隊提出新一代移動端網絡架構MobileNeXt ,入選ECCV2020...

圖八:使用不同資訊通道數目對模型精度的影響

目标檢測方面,相比MobileNetV2, 使用MobileNeXt的基礎架構,可帶來的收益。

mobilenet cpu 加速_性能超越谷歌MobileNet!依圖團隊提出新一代移動端網絡架構MobileNeXt ,入選ECCV2020...
mobilenet cpu 加速_性能超越谷歌MobileNet!依圖團隊提出新一代移動端網絡架構MobileNeXt ,入選ECCV2020...

圖九:在PascalVOC2017 資料集上的實驗驗證

神經網絡搜尋方面,為驗證資訊處沙漏模型的高效性,依圖團隊使用新提出的沙漏模型對神經網絡搜尋的搜尋空間進行了擴充。在使用相同搜尋算法的情況下,基于擴充空間的搜尋結果可以得到 的精度提升,同時減少25% 的參數量。

mobilenet cpu 加速_性能超越谷歌MobileNet!依圖團隊提出新一代移動端網絡架構MobileNeXt ,入選ECCV2020...
mobilenet cpu 加速_性能超越谷歌MobileNet!依圖團隊提出新一代移動端網絡架構MobileNeXt ,入選ECCV2020...

圖十:使用相同搜尋算法時基于擴充空間的搜尋結果

透過現象看本質,是研發團隊成功設計沙漏型瓶頸子產品及MobileNeXt的根本所在,可以看到,基礎領域的進展最終靠的還是自身紮實的基本功。

從這個層面講,依圖早已不再是傳統意義上的CV公司,而是憑借基礎算法的優勢和晶片的加持,逐漸成長為新一代的AI算力廠商。

未來,不光移動端,雲端和邊緣端的廠商也将從依圖的軟硬體協同算法創新中獲益,節約自主開發的算力成本,更好地驅動整體業務。

從看、聽再到本質的了解,機器的智能在不斷進化中逐漸邁向更高的次元,我們看到,依圖正在努力将智能化的理論不斷付諸實踐,成為AI落地的引路人。

參考連結:

https://www.cnblogs.com/dengshunge/p/11334640.html

https://bbs.cvmart.net/articles/2861