0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

華為諾亞提出VanillaNet:一種新視覺Backbone,極簡(jiǎn)且強(qiáng)大!

CVer ? 來(lái)源:極市平臺(tái) ? 2023-05-26 16:13 ? 次閱讀

導(dǎo)讀

簡(jiǎn)到極致、淺到極致!深度為6的網(wǎng)絡(luò)即可取得76.36%@ImageNet的精度,深度為13的VanillaNet甚至取得了83.1%的驚人性能。

f98e52a0-fb8f-11ed-90ce-dac502259ad0.png

VanillaNet: the Power of Minimalism in Deep Learning

論文地址:https://arxiv.org/abs/2305.12972

代碼地址:https://github.com/huawei-noah/VanillaNet

簡(jiǎn)而淺的直桶狀網(wǎng)絡(luò)具有非常優(yōu)秀的推理效率,但其訓(xùn)練難度較高,難以取得優(yōu)異性能。自AlexNet與VGG之后,鮮少有這種"直桶"狀且性能優(yōu)異的網(wǎng)絡(luò)出現(xiàn),其中的代表當(dāng)屬RepVGG與ParNet。

  • 通過引入結(jié)構(gòu)重參數(shù)機(jī)制,RepVGG將"直桶狀"網(wǎng)絡(luò)重新煥發(fā)生機(jī)。但RepVGG的深度仍然有20+的深度,感興趣的同學(xué)可以查看讓你的ConvNet一卷到底,清華&曠視提出CNN設(shè)計(jì)新思路RepVGG
  • 后來(lái),Princeton大學(xué)的鄧嘉團(tuán)隊(duì)提出了深度為12的網(wǎng)絡(luò)并在ImageNet數(shù)據(jù)集上達(dá)到了80.7%,但引入的注意力導(dǎo)致了額外的跳過連接,仍為達(dá)到極限推理效率。對(duì)ParNet一文感興趣的同學(xué)可查閱12層也能媲美ResNet?鄧嘉團(tuán)隊(duì)提出最新力作ParNet,ImageNet top1精度直沖80.7%

就在這樣的環(huán)境下,簡(jiǎn)到極致、淺到極致的網(wǎng)絡(luò)VanillaNet誕生了?。?!深度為6的網(wǎng)絡(luò)即可取得76.36%@ImageNet的精度,深度為13的VanillaNet甚至取得了83.1%的驚人性能。

網(wǎng)絡(luò)架構(gòu)

f9ae0bf4-fb8f-11ed-90ce-dac502259ad0.png

上圖給出了本文所提VanillaNet架構(gòu)示意圖,有沒有覺得簡(jiǎn)到極致了。

  • 對(duì)于Stem部分,采用卷積進(jìn)行特征變換;
  • 對(duì)于body部分的每個(gè)stage,首先采用MaxPool進(jìn)行特征下采樣,然后采用一個(gè)進(jìn)行特征處理;
  • 對(duì)于head部分,采用兩個(gè)非線性層進(jìn)行分類處理。

值得注意的是,(1) 每個(gè)stage只有一個(gè)卷積;(2)VanillaNet沒有跳過連接。

盡管VanillaNet非常簡(jiǎn)單且足夠淺,但其弱非線性能力會(huì)限制其性能。為此,作者從訓(xùn)練策略與激活函數(shù)兩個(gè)維度來(lái)解決該問題。

訓(xùn)練策略

在訓(xùn)練階段,通過引入更強(qiáng)的容量來(lái)提升模型性能是很常見的。由于更深的網(wǎng)絡(luò)具有比淺層網(wǎng)絡(luò)更強(qiáng)的非線性表達(dá)能力,作者提出在訓(xùn)練階段采用深度訓(xùn)練技術(shù)為VanillaNet帶來(lái)更強(qiáng)的性能。

深度訓(xùn)練策略

對(duì)于激活函數(shù),我們將其與Identity進(jìn)行組合,公式如下:

其中,是用于平衡非線性能力的超參數(shù)。假設(shè)當(dāng)前epoch與總訓(xùn)練Epoch分別表示為,那么定義。因此,在訓(xùn)練初始階段,該修正版激活函數(shù)等價(jià)于原始激活函數(shù),即,此時(shí)網(wǎng)絡(luò)具有較強(qiáng)的非線性表達(dá)能力;伴隨訓(xùn)練收斂,修正版激活函數(shù)退化為Identity,即,這就意味著兩個(gè)卷積之間就不再有激活函數(shù)。

接下來(lái),我們?cè)谡f明一下如何合并兩個(gè)卷積層(在DBB一文中已有了非常詳細(xì)的公式介紹,而且對(duì)各種可折疊操作進(jìn)行了非常詳細(xì)的介紹)。

我們先來(lái)介紹BN與前接卷積之間的合并方式。假設(shè)表示卷積的參數(shù),BN層的參數(shù)分別表示為,合并后的參數(shù)表示如下:

在完成卷積與BN合并后,我們介紹如何合并兩個(gè)卷積。令分別表示輸入與輸出特征,卷積可表示如下:

基于上述卷積表示,我們可以將兩個(gè)連續(xù)卷積表示如下:

因此,兩個(gè)連續(xù)卷積可以進(jìn)行合并且不會(huì)造成推理速度提升。

SIAF(Series Informed Activation Function)

盡管已有諸多非線性激活函數(shù),如ReLU、PReLU、GeLU、Swish等,但這些它們主要聚焦于為深而復(fù)雜的網(wǎng)絡(luò)帶來(lái)性能提升。已有研究表明:簡(jiǎn)而淺網(wǎng)絡(luò)的有限能力主要源于其弱非線性表達(dá)能力。

事實(shí)上,有兩種方式可用于改善神經(jīng)網(wǎng)絡(luò)的非線性表達(dá)能力:堆疊非線性激活層、提升激活函數(shù)的非線性表達(dá)能力?,F(xiàn)有方案往往采用了前者,前者往往會(huì)導(dǎo)致更高的推理延遲;而本文則聚焦于后者,即改善激活函數(shù)的非線性表達(dá)能力。

改善激活函數(shù)非線性能力能力的最直接的一種方式為stacking,序列堆疊也是深層網(wǎng)絡(luò)的核心。不同與此,作者提出了共生(concurrently)堆疊方式,可表示如下:

其中,n表示堆疊激活函數(shù)的數(shù)量,表示每個(gè)激活的scale與bias參數(shù)以避免簡(jiǎn)單的累加。通過該處理,激活函數(shù)的非線性表達(dá)能力得到了大幅提升。

為進(jìn)一步豐富表達(dá)能力,參考BNET,作者為其引入了全局信息學(xué)習(xí)能力,此時(shí)激活函數(shù)表示如下:

可以看到,當(dāng)時(shí),。也就是說,所提激活函數(shù)是現(xiàn)有激活函數(shù)的一種廣義擴(kuò)展。因其推理高效性,作者采用ReLU作為基激活函數(shù)。

以卷積作為參考,作者進(jìn)一步分析了所提激活函數(shù)的計(jì)算復(fù)雜度。卷積的計(jì)算復(fù)雜度可表示如下:

所提激活函數(shù)的計(jì)算復(fù)雜度表示為:

進(jìn)而可以得出兩者之間的計(jì)算復(fù)雜度比例關(guān)系如下:

以VanillaNet-B第4階段為例,,該比例約為84,也就是說,所提激活函數(shù)的計(jì)算復(fù)雜度遠(yuǎn)小于卷積。

classactivation(nn.ReLU):
def__init__(self,dim,act_num=3,deploy=False):
super(activation,self).__init__()
self.deploy=deploy
self.weight=torch.nn.Parameter(torch.randn(dim,1,act_num*2+1,act_num*2+1))
self.bias=None
self.bn=nn.BatchNorm2d(dim,eps=1e-6)
self.dim=dim
self.act_num=act_num
weight_init.trunc_normal_(self.weight,std=.02)

defforward(self,x):
ifself.deploy:
returntorch.nn.functional.conv2d(
super(activation,self).forward(x),
self.weight,self.bias,padding=(self.act_num*2+1)//2,groups=self.dim)
else:
returnself.bn(torch.nn.functional.conv2d(
super(activation,self).forward(x),
self.weight,padding=(self.act_num*2+1)//2,groups=self.dim))

def_fuse_bn_tensor(self,weight,bn):
kernel=weight
running_mean=bn.running_mean
running_var=bn.running_var
gamma=bn.weight
beta=bn.bias
eps=bn.eps
std=(running_var+eps).sqrt()
t=(gamma/std).reshape(-1,1,1,1)
returnkernel*t,beta+(0-running_mean)*gamma/std

defswitch_to_deploy(self):
kernel,bias=self._fuse_bn_tensor(self.weight,self.bn)
self.weight.data=kernel
self.bias=torch.nn.Parameter(torch.zeros(self.dim))
self.bias.data=bias
self.__delattr__('bn')
self.deploy=True

本文實(shí)驗(yàn)

f9ce4536-fb8f-11ed-90ce-dac502259ad0.png

在過去幾年里,研究人員往往假設(shè)計(jì)算資源非常有限,依托ARM/CPU平臺(tái),聚焦于減少網(wǎng)絡(luò)的FLOPs與推理延遲。但是,伴隨著AI芯片的研發(fā)進(jìn)展,像自動(dòng)駕駛等設(shè)備往往攜帶多個(gè)GPU以期獲取實(shí)時(shí)反饋。因此,本文的延遲基于bs=1進(jìn)行測(cè)試,而非常規(guī)的吞吐量?;诖伺渲茫髡甙l(fā)現(xiàn):模型的推理速度與FLOPs、Params的相關(guān)性極低。

  • 以MobileNetV3-Large為例,盡管其具有非常低的FLOPs,但其GPU延遲為7.83,遠(yuǎn)高于VanillaNet13。這種配置的推理速度與復(fù)雜度和層數(shù)強(qiáng)相關(guān);
  • 對(duì)比ShuffleNetV2x1.5與ShuffleNetV2x2,盡管其參數(shù)量與FLOPs差別很大,但推理速度基本相同(7.23 vs 7.84);
  • 對(duì)比ResNet,VGGNet與VanillaNet可以看到:無(wú)額外分支與復(fù)雜模塊的的VGGNet、VanillaNet具有更高的推理速度。

基于上述分析,作者提出了VanillaNet這樣簡(jiǎn)到極致,無(wú)任何額外分支,層數(shù)更少的架構(gòu)。如上表所示,

  • VanillaNet9取得了79.87%的精度,推理速度進(jìn)而2.91ms,比ResNet50、ConvNeXtV2-P快50%;
  • 當(dāng)擴(kuò)展至VanillaNet13-1.5x后,甚至取得了83.11%的指標(biāo)。

這是不是意味著在ImageNet分類任務(wù)上,我們并不需要深而復(fù)雜的網(wǎng)絡(luò)呢???

f9f75020-fb8f-11ed-90ce-dac502259ad0.png

上圖給出了不同架構(gòu)深度與推理速度之間的關(guān)系圖,可以看到:

  • 當(dāng)bs=1時(shí),推理速度與網(wǎng)絡(luò)的深度強(qiáng)相關(guān),而非參數(shù)量。這意味著:簡(jiǎn)而淺的網(wǎng)絡(luò)具有巨大的實(shí)時(shí)處理潛力。
  • 在所有網(wǎng)絡(luò)中,VanillaNet取得了最佳的速度-精度均衡。這進(jìn)一步驗(yàn)證了:在計(jì)算資源充分時(shí)所提VanillaNet的優(yōu)異性。
fa1cb464-fb8f-11ed-90ce-dac502259ad0.png

按照國(guó)際慣例,最后附上COCO檢測(cè)任務(wù)上的對(duì)比,見上表??梢钥吹剑核酼anillaNet取得了與ConvNeXt、Swin相當(dāng)?shù)男阅?。盡管VanillaNet的FLOPs與參數(shù)量更多,但其推理速度明顯更快,進(jìn)一步驗(yàn)證了VanillaNet在下游任務(wù)的有效性。

最后附上不同大小模型的配置信息,參考如下。

fa39d54e-fb8f-11ed-90ce-dac502259ad0.png

全文到此結(jié)束,更多消融實(shí)驗(yàn)建議查看原文。

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)集
    +關(guān)注

    關(guān)注

    4

    文章

    1208

    瀏覽量

    24727
  • cnn
    cnn
    +關(guān)注

    關(guān)注

    3

    文章

    352

    瀏覽量

    22239

原文標(biāo)題:華為諾亞提出VanillaNet:一種新視覺Backbone,極簡(jiǎn)且強(qiáng)大!

文章出處:【微信號(hào):CVer,微信公眾號(hào):CVer】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    還在為非標(biāo)項(xiàng)目單獨(dú)開發(fā)視覺軟件?你out了!labview通用視覺框架,真香!

    labview視覺非標(biāo)軟件開發(fā)直以來(lái)面臨的問題是:算法復(fù)用性差,界面臃腫,軟件開發(fā)周期長(zhǎng)。針對(duì)這個(gè)問題,構(gòu)思了一種簡(jiǎn)易的通用視覺框架,課
    發(fā)表于 07-25 23:55

    為什么要提出一種數(shù)據(jù)隱藏新算法?

    為什么要提出一種數(shù)據(jù)隱藏新算法?DDE雙重差值擴(kuò)展算法包括哪些?
    發(fā)表于 04-20 07:05

    為什么要提出一種并行通信方法?并行通信方法有什么特點(diǎn)?

    為什么要提出一種并行通信方法?并行通信方法有什么特點(diǎn)?
    發(fā)表于 05-27 06:16

    求大佬分享一種基于毫米波雷達(dá)和機(jī)器視覺的前方車輛檢測(cè)方法

    為研究夜間追尾事故中本車智能防撞預(yù)警方法,本文提出一種基于毫米波雷達(dá)和機(jī)器視覺的前方車輛檢測(cè)方法。利用多傳感器融合數(shù)據(jù),檢測(cè)前方車輛的距離、速度等。建立傳感器之間轉(zhuǎn)換關(guān)系,轉(zhuǎn)換雷達(dá)目標(biāo)的世界坐標(biāo)到圖像坐標(biāo)。
    發(fā)表于 06-10 10:23

    一種結(jié)構(gòu)化道路環(huán)境中的視覺導(dǎo)航系統(tǒng)詳解

    根據(jù)結(jié)構(gòu)化道路環(huán)境的特點(diǎn)提出一種將邊沿檢測(cè)和道路環(huán)境知識(shí)相結(jié)合的機(jī)器視覺算法 , 并結(jié)合基于行為響應(yīng)的路徑規(guī)劃方法和智能預(yù)瞄控制方法 , 實(shí)現(xiàn)了套基本的機(jī)器人
    發(fā)表于 09-25 07:23

    諾亞音樂球與諾亞光感器的發(fā)布,智能音樂時(shí)代就在不遠(yuǎn)的將來(lái)

    諾亞音樂球和諾亞光感器分別適配電子鋼琴和傳統(tǒng)鋼琴,它們與音樂智能管家-開心練APP搭配使用,是款科技感十足、功能強(qiáng)大的智能鋼琴陪練系統(tǒng)。
    發(fā)表于 09-23 11:34 ?1079次閱讀

    一種改進(jìn)的視覺詞袋方法

    視覺詞袋模型廣泛地應(yīng)用于圖像分類與圖像檢索等領(lǐng)域.在傳統(tǒng)詞袋模型中,視覺單詞統(tǒng)計(jì)方法忽略了視覺詞之間的空間信息以及分類對(duì)象形狀信息。導(dǎo)致圖像特征表示區(qū)分能力不足.提出
    發(fā)表于 12-28 17:36 ?3次下載

    華為發(fā)布“簡(jiǎn)5G”建設(shè)策略_助力5G發(fā)展進(jìn)入快車道

    華為在倫敦舉辦2019世界移動(dòng)大會(huì)預(yù)溝通會(huì),會(huì)上華為發(fā)布“簡(jiǎn)5G”建設(shè)策略,從網(wǎng)絡(luò)簡(jiǎn)、自動(dòng)化
    的頭像 發(fā)表于 02-22 09:59 ?3638次閱讀

    華為提出簡(jiǎn)、智能、開放”站點(diǎn)策略,助力加速5G商用部署

    2019年上海世界移動(dòng)大會(huì)期間,華為提出簡(jiǎn)、智能、開放”站點(diǎn)建設(shè)策略,給出未來(lái)站點(diǎn)發(fā)展方向,讓5G時(shí)代運(yùn)營(yíng)商建站更簡(jiǎn)單,助力加速5G商用部署。
    的頭像 發(fā)表于 06-28 14:51 ?2788次閱讀

    天津聯(lián)通正在打造簡(jiǎn)架構(gòu)的5G共享網(wǎng)絡(luò)

    回首過去年,天津聯(lián)通在新舊交替的關(guān)鍵時(shí)刻邁出關(guān)鍵步,攜手華為基于5G共建共享大戰(zhàn)略,提出并開展“面向5G,化繁為簡(jiǎn)”的網(wǎng)絡(luò)建設(shè)方案,打造
    發(fā)表于 11-25 10:58 ?1034次閱讀

    創(chuàng)維A4演繹簡(jiǎn)智能生活新潮流,免遙控的新智能時(shí)代

    現(xiàn)如今,大多數(shù)年輕人都在追求簡(jiǎn)主義,簡(jiǎn)主義也逐漸形成了一種潮流風(fēng)格,然而當(dāng)AI科技遇到
    的頭像 發(fā)表于 03-05 14:43 ?2390次閱讀

    CurcveLane-NAS:華為&中大提出一種結(jié)合NAS的曲線車道檢測(cè)算法

    作者:SFXiang首發(fā):AI算法修煉營(yíng) 這篇文章是華為諾亞方舟實(shí)驗(yàn)室和中山大學(xué)開源的彎道車道線檢測(cè)的工作,主要利用了NAS技術(shù)實(shí)現(xiàn),使得車...
    發(fā)表于 01-26 18:16 ?1次下載
    CurcveLane-NAS:<b class='flag-5'>華為</b>&中大<b class='flag-5'>提出</b><b class='flag-5'>一種</b>結(jié)合NAS的曲線車道檢測(cè)算法

    谷歌提出PaLI:一種多模態(tài)大模型,刷新多個(gè)任務(wù)SOTA!

    PaLI 使用單獨(dú) “Image-and-text to text” 接口執(zhí)行很多圖像、語(yǔ)言以及 "圖像 + 語(yǔ)言" 任務(wù)。PaLI 的關(guān)鍵結(jié)構(gòu)之是重復(fù)使用大型單模態(tài) backbone 進(jìn)行語(yǔ)言和視覺建模,以遷移現(xiàn)有能力并降低
    的頭像 發(fā)表于 01-29 11:25 ?1506次閱讀

    介紹一種新的全景視覺里程計(jì)框架PVO

    論文提出了PVO,這是一種新的全景視覺里程計(jì)框架,用于實(shí)現(xiàn)場(chǎng)景運(yùn)動(dòng)、幾何和全景分割信息的更全面建模。
    的頭像 發(fā)表于 05-09 16:51 ?1868次閱讀
    介紹<b class='flag-5'>一種</b>新的全景<b class='flag-5'>視覺</b>里程計(jì)框架PVO

    基于M55H的定制化backbone模型AxeraSpine

    Backbone模型是各種視覺任務(wù)訓(xùn)練的基石,視覺任務(wù)模型的性能和模型的速度都受backbone模型的影響
    的頭像 發(fā)表于 10-10 16:09 ?976次閱讀
    基于M55H的定制化<b class='flag-5'>backbone</b>模型AxeraSpine