ResNeXt(2017)


文章目錄

  • Abstract
  • 1. Introduction
    • former work
    • our work
  • 2. Related Work
    • 多分支卷積網絡
    • 分組卷積
    • 壓縮卷積網絡
    • Ensembling
  • 3. Method
    • 3.1. Template
    • 3.2. Revisiting Simple Neurons
    • 3.3. Aggregated Transformations
    • 3.4. Model Capacity
  • 4. Experiment

原文地址
源代碼

Abstract

我們提出了一個簡單的、高度模塊化的圖像分類網絡體系結構。我們的網絡是通過重復構建塊來構建的,該構建塊聚合了具有相同拓撲結構的一組變換。我們的簡單設計產生了一個同質的、多分支的體系結構,只有幾個超參數需要設置。這個策略暴露了一個新的維度,我們稱之為“基數”(轉換集合的大小),作為深度和寬度維度之外的一個重要因素。在ImageNet-1K數據集上,我們的經驗表明,即使在維持復雜性的限制條件下,增加基數也能夠提高分類精度。此外**,當我們增加容量時,增加基數比加深或擴大寬度更有效**。我們的模型ResNeXt是我們進入ILSVRC 2016分類任務的基礎,我們在該任務中獲得了第二名。我們在ImageNet-5K集和COCO檢測集上進一步研究了ResNeXt,也顯示出比ResNet更好的結果

1. Introduction

視覺識別研究正經歷著從“特征工程”到“網絡工程”的過渡[25,24,44,34,36,38,14]。與傳統的手工設計特征(例如SIFT[29]和HOG[5])相比,神經網絡從大規模數據中學習的特征[33]在訓練過程中需要最少的人工參與,并且可以轉移到各種識別任務中[7,10,28]。然而,人類的努力已經轉移到設計更好的網絡架構來學習表征
簡要介紹了下以前的backbone,并diss了下他們的不足

former work

VGG-nets展示了一種簡單而有效的構建深度網絡的策略:把相同形狀的塊堆疊起來
該策略被ResNets[14]繼承,ResNets堆疊相同拓撲的模塊。這個簡單的規則減少了超參數的自由選擇,并且深度暴露為神經網絡的一個基本維度。此外,我們認為該規則的簡單性可以降低對特定數據集過度適應超參數的風險。VGG-nets和ResNets的魯棒性已被各種視覺識別任務[7,10,9,28,31,14]以及涉及語音[42,30]和語言[4,41,20]的非視覺任務證明
與VGG-nets不同,Inception模型家族[38,17,39,37]已經證明,精心設計的拓撲結構能夠以較低的理論復雜性實現令人信服的準確性
Inception模型隨著時間的推移而發展[38,39],但是一個重要的共同屬性是分裂-轉換-合并策略。在Inception模塊中,輸入被分成幾個低維嵌入(通過1×1卷積),由一組專門的過濾器(3×3, 5×5等)進行轉換,并通過連接進行合并。可以證明,該體系結構的解空間是運行在高維嵌入上的單個大層(例如5×5)的解空間的嚴格子空間。Inception模塊的拆分-轉換-合并行為被期望接近大型和密集層的表示能力,但是在相當低的計算復雜性下

our work

在本文中,我們提出了一個簡單的架構,它采用了VGG/ResNets的重復層策略,同時以一種簡單、可擴展的方式利用了分裂-轉換-合并策略。我們的網絡中的一個模塊執行一組轉換,每個轉換都在一個低維嵌入上,其輸出通過求和來聚合。我們追求這個想法的一個簡單實現——要聚合的轉換都是相同的拓撲(例如,圖1(右))。這種設計允許我們擴展到任何大量的轉換,而無需專門的設計
有趣的是,在這種簡化的情況下,我們發現我們的模型還有另外兩種等效形式(圖3)。圖3(b)中的重新表述看起來類似于Inception- ResNet模塊[37],因為它連接了多條路徑;但是我們的模塊與所有現有的Inception模塊的不同之處在于,我們所有的路徑都共享相同的拓撲結構,因此路徑的數量可以很容易地作為一個要研究的因素被隔離出來。在更簡潔的重新表述中,我們的模塊可以通過Krizhevsky等人的分組卷積(groups convolutions)24進行重塑,然而,這已經被開發為一種工程折衷方案

(a):聚合殘差變換,與圖1右圖相同。(b):相當于(A)的塊,作為早期連接實現。?:相當于(A,b)的塊,實現為分組卷積[24]。加粗文字的注釋突出了重新表述的變化。層表示為(#輸入通道,過濾器大小,#輸出通道)

我們通過經驗證明,即使在保持計算復雜性和模型大小的限制條件下,我們的聚合變換也優于原始ResNet模塊——例如,圖1(右)的設計是為了保持圖1(左)的FLOPs復雜性和參數數量。我們強調,雖然通過增加容量(更深入或更廣泛)來提高準確性相對容易,但在保持(或降低)復雜性的同時提高準確性的方法在文獻中很少

我們的方法表明,除了寬度和深度的維度外,基數(變換集的大小)是一個具體的、可測量的維度,這是至關重要的。實驗表明,增加基數是一種比深度或寬度更有效的獲得精度的方法,特別是當深度和寬度開始使現有模型的收益遞減時

我們的神經網絡,命名為ResNeXt(建議下一個維度),在ImageNet分類數據集上優于ResNet-101/152 [14], ResNet- 200 [15], Inception-v3[39]和Inception-ResNet-v2[37]。特別是,101層的ResNeXt能夠達到比ResNet-200更好的精度[15],但只有50%的復雜性。此外,ResNeXt展示了比所有Inception模型更簡單的設計。ResNeXt是我們參加ILSVRC 2016分類任務的基礎,我們獲得了第二名。本文在更大的ImageNet-5K集和COCO對象檢測數據集上進一步評估了ResNeXt[27],顯示出比ResNet同類產品更好的準確性。我們希望ResNeXt也能很好地推廣到其他視覺(和非視覺)識別任務

2. Related Work

多分支卷積網絡

Inception模型[38,17,39,37]是成功的多分支架構,其中每個分支都是精心定制的。ResNets[14]可以被認為是一個雙分支網絡,其中一個分支是身份映射。深度神經決策森林[22]是具有學習分裂函數的樹形多分支網絡

分組卷積

分組卷積的使用可以追溯到AlexNet論文[24],如果不是更早的話。Krizhevsky等人[24]給出的動機是將模型分布在兩個gpu上。分組卷積由Caffe [19], Torch[3]等庫支持,主要是為了AlexNet的兼容性。據我們所知,很少有證據表明利用分組卷積來提高準確率。**分組卷積的一種特殊情況是通道型卷積,其中組的數量等于通道的數量。**通道型卷積是[35]中可分離卷積的一部分

壓縮卷積網絡

分解(在空間[6,18]和/或通道[6,21,16]級別)是一種廣泛采用的技術,用于減少深度卷積網絡的冗余并加速/壓縮它們。Ioannou等人[16]提出了一種“根”模式的網絡進行約簡計算,根中的分支通過分組卷積實現。這些方法[6,18,21,16]在較低的復雜性和較小的模型尺寸下顯示了精度的優雅妥協。而不是壓縮,我們的方法是一個架構,經驗顯示出更強的表征能力

Ensembling

對一組獨立訓練的網絡進行平均是提高準確率的有效解決方案[24],在識別競賽中被廣泛采用[33]。Veit等人[40]將單個ResNet解釋為較淺網絡的集合,這是由ResNet的加性行為造成的[15]。我們的方法利用加法來聚合一組轉換。但我們認為,將我們的方法視為集成是不精確的,因為要聚合的成員是聯合訓練的,而不是獨立訓練的。

3. Method

3.1. Template

我們采用高度模塊化的VGG/ResNets設計,我們的網絡由一堆殘差塊組成
這些塊具有相同的拓撲結構,并且受VGG/ResNets Inception的兩個簡單規則的約束:(i)如果產生相同大小的空間映射,則塊共享相同的超參數(寬度和過濾器大小),并且(ii)每次當空間映射被下采樣2倍時,塊的寬度(通道數)乘以2倍。第二條規則確保所有塊的計算復雜度(以flop(浮點運算,以乘法加的次數計算)為單位)大致相同
有了這兩條規則,我們只需要設計一個模板模塊,一個網絡中的所有模塊都可以據此確定。所以這兩條規則大大縮小了設計空間,使我們能夠專注于幾個關鍵因素。這些規則構建的網絡如表1所示,C指的是基數4d指的是通道數為4

3.2. Revisiting Simple Neurons

人工神經網絡中最簡單的神經元執行內積(加權和),這是由全連接層和卷積層完成的初等變換。內積可以看作是集合變換的一種形式:

式中x = [x 1,x 2,…],x D是神經元的D通道輸入向量,w i是第i個通道的濾波器權值。這種操作(通常包括一些非線性輸出)被稱為“神經元”。見圖2

上述操作可以重新轉換為拆分、轉換和聚合的組合。
(i)分割:將向量x分割為一個低維嵌入,在上面,它是一個一維子空間xi
(ii)變換:對低維表示進行變換,在上面,它被簡單地縮放為:wi x i
(iii)聚合:所有嵌入中的轉換通過ΣD i=1

3.3. Aggregated Transformations

給定上述對一個簡單神經元的分析,我們考慮用一個更一般的函數代替初等變換(wi x i),它本身也可以是一個網絡。與“Network-in-Network”[26]相反,我們表明我們的“Network-in-Neuron”沿著一個新的維度擴展。
形式上,我們將聚合轉換表示為:

其中Ti (x)可以是任意函數。類似于一個簡單的神經元,T i應該將x投射到一個(可選的低維)嵌入中,然后對其進行變換
在公式(2)中,C是要聚合的轉換集合的大小。我們將C稱為基數[2]。在Eqn.(2)中,C的位置與Eqn.(1)中D的位置相似,但C不必等于D,可以是任意數。雖然寬度的維度與簡單變換(內積)的數量有關,但我們認為基數的維度控制著更復雜變換的數量。我們通過實驗證明,基數是一個重要的維度,可以比寬度和深度的維度更有效

在本文中,我們考慮了一種設計變換函數的簡單方法:所有的T具有相同的拓撲。這擴展了vgg風格的重復相同形狀的層的策略,這有助于隔離一些因素并擴展到任何大量的轉換。我們將單個轉換t1設置為瓶頸形架構[14],如圖1(右)所示。在這種情況下,每個t1中的第一個1×1層產生低維嵌入。

Eqn.(2)中的聚合變換作為殘差函數14:
與Inception-ResNet的關系:一些張量操作表明,圖1(右)中的模塊(也顯示在圖3(a)中)等價于圖3(b)。圖3(b)與Inception-ResNet[37]塊相似,在殘差函數中涉及分支和連接。但與所有Inception或Inception- resnet模塊不同,我們在多個路徑中共享相同的拓撲結構。我們的模塊只需要最少的額外工作來設計每條路徑
與分組卷積的關系:使用分組卷積的表示法,上述模塊變得更加簡潔[24]。圖3?說明了這種重新配方。所有的低維嵌入(第一個1×1層)都可以被單個更寬的層(例如,圖3?中的1×1, 128-d)所取代分裂本質上是由分組卷積層在將其輸入通道分成組時完成的。圖3?中的分組卷積層每形成32組卷積,其輸入輸出通道為4維。分組卷積層將它們連接起來作為層的輸出。圖3?中的塊看起來與圖1(左)中的原始瓶頸剩余塊相似,只是圖3?是一個更寬但稀疏連接的模塊

我們注意到,只有當塊的深度≥3時,重新表述才會產生非平凡拓撲。如果該塊的深度為2(例如,[14]中的基本塊),則重新表述通常會導致一個寬而密集的模塊。如圖4所示
討論:我們注意到,盡管我們提出了顯示串聯(圖3(b))或分組卷積(圖3?)的重新表述,但這種重新表述并不總是適用于Eqn(3)的一般形式,例如,如果變換ti采用任意形式并且是異質的。我們在本文中選擇使用同質表單,因為它們更簡單和可擴展。在這種簡化情況下,圖3?形式的分組卷積有助于簡化實現

3.4. Model Capacity

我們的模型在保持模型復雜性和參數數量的情況下提高了準確性。這不僅在實踐中很有趣,更重要的是,參數的復雜性和數量代表了模型的固有能力,因此經常作為深度網絡的基本屬性進行研究[8]

瓶頸寬度通常指的是ResNeXt中的瓶頸結構中最中間那一層的通道數或特征圖的維度。ResNeXt的基本結構由一系列的瓶頸塊組成,其中的瓶頸塊包含了三個卷積層,中間那一層通常是瓶頸寬度所指的地方。這個瓶頸寬度的選擇可以影響模型的復雜度和性能

當我們評估不同的基數C時,同時保持復雜性,我們希望最小化對其他超參數的修改。我們選擇調整瓶頸的寬度(例如圖1(右)中的4-d),因為它可以與塊的輸入和輸出隔離。這種策略不會改變其他超參數(深度或塊的輸入/輸出寬度),因此有助于我們關注基數的影響
在圖1(左)中,原始ResNet瓶頸塊[14]具有256·64+3·3·64·64+64·256≈70k參數和比例FLOPs(在相同的特征圖大小下)。當瓶頸寬度為d時,我們在圖1(右)中的模板具有:
參數和比例FLOPs。當C = 32, d = 4時,Eqn.(4)≈70k。表2顯示了基數C和瓶頸寬度d之間的關系

基數和寬度之間的關系(對于conv2的模板),在殘差塊上大致保留復雜度。對于conv2的模板,參數的數量為~ 70k。FLOPs的數量為~ 2.2億(conv2的# params×56×56)

因為我們在3.1節中采用了這兩個規則,所以上面的近似相等在ResNet瓶頸塊和ResNeXt之間的所有階段都是有效的(除了特征映射大小變化的子采樣層)。表1比較了原始的ResNet-50和具有類似容量的ResNeXt-50。我們注意到,復雜性只能近似地保留,但復雜性的差異很小,不會影響我們的結果

4. Experiment





本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/207472.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/207472.shtml
英文地址,請注明出處:http://en.pswp.cn/news/207472.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【python】vscode中選擇虛擬環境venv

vscode 怎么指定 python venv? 在VSCode中選擇Python解釋器: 打開命令面板:按下 CtrlShiftP(Windows/Linux)或 CmdShiftP(Mac)。在命令面板中,鍵入 “Python: Select Interpreter”…

14.Java程序設計-基于Springboot的高校社團管理系統設計與實現

摘要 隨著高校社團活動的不斷豐富和社團數量的逐漸增加,高校社團管理面臨著日益復雜的挑戰。為了提高社團管理的效率和透明度,本研究基于Spring Boot框架設計并實現了一套高校社團管理系統。該系統旨在整合社團創建、成員管理、活動發布等多個功能&…

水位線和窗口

水位線特點 插入到數據流中的一個標記,可以認為是一個特殊的數據主要內容是一個時間戳水位線是基于數據的時間戳生成的,即事件時間水位線必須單調遞增水位線可以通過設置延遲,來保證正確處理亂序數據一個水位線,表示事件時間已經…

[FPGA 學習記錄] 數碼管動態顯示

數碼管動態顯示 文章目錄 1 理論學習1.1 數碼管動態掃描顯示原理 2 實戰演練2.1 實驗目標2.2 程序設計2.2.1 框圖繪制2.2.2 數據生成模塊 data_gen2.2.2.1 波形繪制2.2.2.2 代碼編寫2.2.2.3 代碼編譯2.2.2.4 邏輯仿真2.2.2.4.1 仿真代碼編寫2.2.2.4.2 仿真代碼編譯2.2.2.4.3 波…

如何解決el-table中動態添加固定列時出現的行錯位

問題描述 在使用el-table組件時,我們有時需要根據用戶的操作動態地添加或刪除一些固定列,例如操作列或選擇列。但是,當我們使用v-if指令來控制固定列的顯示或隱藏時,可能會出現表格的行錯位的問題,即固定列和非固定列…

el-tree數據量過大,造成瀏覽器卡死、崩潰

el-tree數據量過大,造成瀏覽器卡死、崩潰 場景:樹形結構展示,數據超級多,超過萬條,每次打開都會崩潰 我這里采用的是引入新的插件虛擬樹,它是參照element-plus 中TreeV2改造vue2.x版本虛擬化樹形控件&…

2024年強烈推薦mac 讀寫NTFS工具Tuxera NTFS for Mac2023中文破解版

大家好啊~今天要給大家推薦的是 Tuxera NTFS for Mac2023中文破解版! 小可愛們肯定知道,Mac系統一直以來都有一個小小的痛點,就是無法直接讀寫NTFS格式的移動硬盤和U盤。但是,有了Tuxera NTFS for Mac2023,…

正則表達式:字符串處理的瑞士軍刀

🤍 前端開發工程師(主業)、技術博主(副業)、已過CET6 🍨 阿珊和她的貓_CSDN個人主頁 🕠 牛客高級專題作者、在牛客打造高質量專欄《前端面試必備》 🍚 藍橋云課簽約作者、已在藍橋云…

記一次xss通殺挖掘歷程

前言 前端時間,要開放一個端口,讓我進行一次安全檢測,發現的一個漏洞。 經過 訪問之后發現是類似一個目錄索引的端口。(這里上厚碼了哈) 錯誤案例測試 亂輸內容asdasffda之后看了一眼Burp的抓包,抓到的內容是可以發現這是一個…

MuJoCo機器人動力學仿真平臺安裝與教程

MuJoCo是一個機器人動力學仿真平臺,它包括一系列的物理引擎、可視化工具和機器人模擬器等工具,用于研究和模擬機器人的運動和動力學特性。以下是MuJoCo的安裝教程: 下載和安裝MuJoCo Pro。可以從MuJoCo的官方網站上下載最新版本的安裝包。根…

【Python機器學習系列】一文徹底搞懂機器學習中表格數據的輸入形式(理論+源碼)

一、問題 機器學習或者深度學習在處理表格數據(Tabular data)、圖像數據(Image data)、文本數據(Text data)、時間序列數據(Time series data)上得到了廣泛的應用。 其中&#xff0c…

微信小程序 - 創建 ZIP 壓縮包

微信小程序 - 創建 ZIP 壓縮包 場景分享代碼片段導入 JSZip創建ZIP文件追加寫入文件測試方法參考資料 場景 微信小程序只提供了解壓ZIP的API,并沒有提供創建ZIP的方法。 當我們想把自己處理好的保存,打包ZIP保存下來時就需要自己實現了。 分享代碼片段…

無重復字符的最長子串(LeetCode 3)

文章目錄 1.問題描述2.難度等級3.熱門指數4.解題思路方法一:暴力法方法二:滑動窗口 參考文獻 1.問題描述 給定一個字符串 s ,請你找出其中不含有重復字符的最長子串的長度。 s 由英文字母、數字、符號和空格組成。 示例 1: 輸…

基于Java商品銷售管理系統

基于Java商品銷售管理系統 功能需求 1、商品管理:系統需要提供商品信息的管理功能,包括商品的錄入、編輯、查詢和刪除。每個商品應包含基本信息如名稱、編碼、類別、價格、庫存量等。 2、客戶管理:系統需要能夠記錄客戶的基本信息&#xf…

算法:常見的哈希表算法

文章目錄 兩數之和判斷是否互為字符重排存在重復元素存在重復元素字母異位詞分組 本文總結的是關于哈希表常見的算法 哈希表其實就是一個存儲數據的容器,所以其實它本身的算法難度并不高,只是利用哈希表可以對于一些場景進行優化 兩數之和 class Solut…

Michael.W基于Foundry精讀Openzeppelin第41期——ERC20Capped.sol

Michael.W基于Foundry精讀Openzeppelin第41期——ERC20Capped.sol 0. 版本0.1 ERC20Capped.sol 1. 目標合約2. 代碼精讀2.1 constructor() && cap()2.2 _mint(address account, uint256 amount) 0. 版本 [openzeppelin]:v4.8.3,[forge-std]&…

AI智能降重軟件大全,免費最新AI智能降重軟件

在當今信息爆炸的時代,內容創作者們面臨著巨大的寫作壓力,如何在保持高質量的前提下提高效率成為擺在許多人面前的難題。AI智能降重軟件因其獨特的算法和功能逐漸成為提升文案質量的得力助手。本文將專心分享一些優秀的AI智能降重軟件。 147SEO改寫軟件 …

云貝教育 |【技術文章】PostgreSQL中誤刪除數據怎么辦(一)

原文鏈接:【PostgreSQL】PostgreSQL中誤刪除數據怎么辦(一) - 課程體系 - 云貝教育 (yunbee.net) 在我們學習完PG的MVCC機制之后,對于DML操作,被操作的行其實并未被刪除,只能手工vacuum或自動vacuum觸發才會…

【分享】我想上手機器學習

目錄 前言 一、理解機器學習 1.1 機器學習的目的 1.2 機器學習的模型 1.3 機器學習的數據 二、學習機器學習要學什么 2.1 學習機器學習的核心內容 2.2 怎么選擇模型 2.3 怎么獲取訓練數據 2.4 怎么訓練模型 三、機器學習的門檻 3.1 機器學習的第一道門檻 3.2 機器…

最新版IDEA專業版大學生申請免費許可證教學(無需學校教育郵箱+官方途徑+非破解手段)

文章目錄 前言1. 申請學籍在線驗證報告2. 進入IDEA官網進行認證3. 申請 JB (IDEA) 賬號4. 打開 IDEA 專業版總結 前言 當你進入本篇文章時, 你應該是已經遇到了 IDEA 社區版無法解決的問題, 或是想進一步體驗 IDEA 專業版的強大. 本文是一篇學生申請IDEA免費許可證的教學, 在學…