衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

華為諾亞提出VanillaNet:一種新視覺Backbone,極簡且強大!

CVer ? 來源:極市平臺 ? 2023-05-26 16:13 ? 次閱讀

導讀

簡到極致、淺到極致!深度為6的網絡即可取得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

簡而淺的直桶狀網絡具有非常優秀的推理效率,但其訓練難度較高,難以取得優異性能。自AlexNet與VGG之后,鮮少有這種"直桶"狀且性能優異的網絡出現,其中的代表當屬RepVGG與ParNet。

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

就在這樣的環境下,簡到極致、淺到極致的網絡VanillaNet誕生了!!!深度為6的網絡即可取得76.36%@ImageNet的精度,深度為13的VanillaNet甚至取得了83.1%的驚人性能。

網絡架構

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

上圖給出了本文所提VanillaNet架構示意圖,有沒有覺得簡到極致了。

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

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

盡管VanillaNet非常簡單且足夠淺,但其弱非線性能力會限制其性能。為此,作者從訓練策略與激活函數兩個維度來解決該問題。

訓練策略

在訓練階段,通過引入更強的容量來提升模型性能是很常見的。由于更深的網絡具有比淺層網絡更強的非線性表達能力,作者提出在訓練階段采用深度訓練技術為VanillaNet帶來更強的性能

深度訓練策略

對于激活函數,我們將其與Identity進行組合,公式如下:

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

接下來,我們在說明一下如何合并兩個卷積層(在DBB一文中已有了非常詳細的公式介紹,而且對各種可折疊操作進行了非常詳細的介紹)。

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

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

基于上述卷積表示,我們可以將兩個連續卷積表示如下:

因此,兩個連續卷積可以進行合并且不會造成推理速度提升。

SIAF(Series Informed Activation Function)

盡管已有諸多非線性激活函數,如ReLU、PReLU、GeLU、Swish等,但這些它們主要聚焦于為深而復雜的網絡帶來性能提升。已有研究表明:簡而淺網絡的有限能力主要源于其弱非線性表達能力

事實上,有兩種方式可用于改善神經網絡的非線性表達能力:堆疊非線性激活層、提升激活函數的非線性表達能力。現有方案往往采用了前者,前者往往會導致更高的推理延遲;而本文則聚焦于后者,即改善激活函數的非線性表達能力。

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

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

為進一步豐富表達能力,參考BNET,作者為其引入了全局信息學習能力,此時激活函數表示如下:

可以看到,當時,。也就是說,所提激活函數是現有激活函數的一種廣義擴展。因其推理高效性,作者采用ReLU作為基激活函數。

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

所提激活函數的計算復雜度表示為:

進而可以得出兩者之間的計算復雜度比例關系如下:

以VanillaNet-B第4階段為例,,該比例約為84,也就是說,所提激活函數的計算復雜度遠小于卷積。

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

本文實驗

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

在過去幾年里,研究人員往往假設計算資源非常有限,依托ARM/CPU平臺,聚焦于減少網絡的FLOPs與推理延遲。但是,伴隨著AI芯片的研發進展,像自動駕駛等設備往往攜帶多個GPU以期獲取實時反饋。因此,本文的延遲基于bs=1進行測試,而非常規的吞吐量。基于此配置,作者發現:模型的推理速度與FLOPs、Params的相關性極低。

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

基于上述分析,作者提出了VanillaNet這樣簡到極致,無任何額外分支,層數更少的架構。如上表所示,

  • VanillaNet9取得了79.87%的精度,推理速度進而2.91ms,比ResNet50、ConvNeXtV2-P快50%;
  • 當擴展至VanillaNet13-1.5x后,甚至取得了83.11%的指標。

這是不是意味著在ImageNet分類任務上,我們并不需要深而復雜的網絡呢???

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

上圖給出了不同架構深度與推理速度之間的關系圖,可以看到:

  • 當bs=1時,推理速度與網絡的深度強相關,而非參數量。這意味著:簡而淺的網絡具有巨大的實時處理潛力。
  • 在所有網絡中,VanillaNet取得了最佳的速度-精度均衡。這進一步驗證了:在計算資源充分時所提VanillaNet的優異性。
fa1cb464-fb8f-11ed-90ce-dac502259ad0.png

按照國際慣例,最后附上COCO檢測任務上的對比,見上表。可以看到:所提VanillaNet取得了與ConvNeXt、Swin相當的性能。盡管VanillaNet的FLOPs與參數量更多,但其推理速度明顯更快,進一步驗證了VanillaNet在下游任務的有效性。

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

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

全文到此結束,更多消融實驗建議查看原文。

審核編輯 :李倩


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據集
    +關注

    關注

    4

    文章

    1209

    瀏覽量

    24835
  • cnn
    cnn
    +關注

    關注

    3

    文章

    353

    瀏覽量

    22336

原文標題:華為諾亞提出VanillaNet:一種新視覺Backbone,極簡且強大!

文章出處:【微信號:CVer,微信公眾號:CVer】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    還在為非標項目單獨開發視覺軟件?你out了!labview通用視覺框架,真香!

    labview視覺非標軟件開發直以來面臨的問題是:算法復用性差,界面臃腫,軟件開發周期長。針對這個問題,構思了一種簡易的通用視覺框架,課
    發表于 07-25 23:55

    為什么要提出一種數據隱藏新算法?

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

    為什么要提出一種并行通信方法?并行通信方法有什么特點?

    為什么要提出一種并行通信方法?并行通信方法有什么特點?
    發表于 05-27 06:16

    求大佬分享一種基于毫米波雷達和機器視覺的前方車輛檢測方法

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

    一種結構化道路環境中的視覺導航系統詳解

    根據結構化道路環境的特點提出一種將邊沿檢測和道路環境知識相結合的機器視覺算法 , 并結合基于行為響應的路徑規劃方法和智能預瞄控制方法 , 實現了套基本的機器人
    發表于 09-25 07:23

    諾亞音樂球與諾亞光感器的發布,智能音樂時代就在不遠的將來

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

    一種改進的視覺詞袋方法

    視覺詞袋模型廣泛地應用于圖像分類與圖像檢索等領域.在傳統詞袋模型中,視覺單詞統計方法忽略了視覺詞之間的空間信息以及分類對象形狀信息。導致圖像特征表示區分能力不足.提出
    發表于 12-28 17:36 ?3次下載

    華為發布“5G”建設策略_助力5G發展進入快車道

    華為在倫敦舉辦2019世界移動大會預溝通會,會上華為發布“5G”建設策略,從網絡、自動化
    的頭像 發表于 02-22 09:59 ?3666次閱讀

    華為提出、智能、開放”站點策略,助力加速5G商用部署

    2019年上海世界移動大會期間,華為提出、智能、開放”站點建設策略,給出未來站點發展方向,讓5G時代運營商建站更簡單,助力加速5G商用部署。
    的頭像 發表于 06-28 14:51 ?2820次閱讀

    天津聯通正在打造架構的5G共享網絡

    回首過去年,天津聯通在新舊交替的關鍵時刻邁出關鍵步,攜手華為基于5G共建共享大戰略,提出并開展“面向5G,化繁為簡”的網絡建設方案,打造
    發表于 11-25 10:58 ?1048次閱讀

    創維A4演繹智能生活新潮流,免遙控的新智能時代

    現如今,大多數年輕人都在追求主義,主義也逐漸形成了一種潮流風格,然而當AI科技遇到
    的頭像 發表于 03-05 14:43 ?2414次閱讀

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

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

    谷歌提出PaLI:一種多模態大模型,刷新多個任務SOTA!

    PaLI 使用單獨 “Image-and-text to text” 接口執行很多圖像、語言以及 "圖像 + 語言" 任務。PaLI 的關鍵結構之是重復使用大型單模態 backbone 進行語言和視覺建模,以遷移現有能力并降低
    的頭像 發表于 01-29 11:25 ?1557次閱讀

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

    論文提出了PVO,這是一種新的全景視覺里程計框架,用于實現場景運動、幾何和全景分割信息的更全面建模。
    的頭像 發表于 05-09 16:51 ?1915次閱讀
    介紹<b class='flag-5'>一種</b>新的全景<b class='flag-5'>視覺</b>里程計框架PVO

    基于M55H的定制化backbone模型AxeraSpine

    Backbone模型是各種視覺任務訓練的基石,視覺任務模型的性能和模型的速度都受backbone模型的影響
    的頭像 發表于 10-10 16:09 ?1019次閱讀
    基于M55H的定制化<b class='flag-5'>backbone</b>模型AxeraSpine
    百家乐手机投注| 百家乐官网博娱乐平台| 大发888官方6222| 菲律百家乐太阳城| 百家乐官网赌场破解| 真人博彩| 玩网上百家乐的技巧| 神话百家乐官网的玩法技巧和规则 | 大发888赌场是干什么的| 御金百家乐娱乐城| 闲和庄百家乐官网赌场娱乐网规则| 上栗县| 大发888 dafa888游戏| 百家乐赌场怎么玩| 太阳百家乐官网代理| 百家乐官网太阳城娱乐城| E世博投注| 威尼斯人娱乐网注册送38元彩金 | 百家乐群lookcc| 太阳城百家乐祖玛| 百家乐官网赌博筹| 百家乐官网注册彩金| 商都县| 大发娱乐城开户| 赌场百家乐官网赌场| 澳门百家乐| 大发8881| 百家乐官网开户过的路纸| 百家乐官网庄闲桌子| 百家乐官网代理网址| 总统娱乐城返水| 大发888娱乐场lm0| 圣淘沙百家乐的玩法技巧和规则| 百家乐注册平台排名| 百家乐官网赌场视频| 優博百家乐官网客服| 百家乐官网游戏发展| 优博在线娱乐| 德州扑克和梭哈| 大发888娱乐官方网站| 乐天百家乐的玩法技巧和规则|