EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks(2020)


文章目錄

  • -
  • Abstract
  • 1. Introduction
    • diss former method
    • our method
  • 2. Related Work
  • 3. Compound Model Scaling
    • 3.1. 問題公式化
    • 3.2. Scaling Dimensions
    • 3.3. Compound Scaling
  • 4. EfficientNet Architecture
  • 5. Experiments
  • 6. Discussion
  • 7. Conclusion

原文鏈接
源代碼

-

本文中的寬度可以理解為通道數,一般認為高的FLOPS更好,因為計算效率快
但本文中作者認為低的浮點運算數(FLOPS)更好是因為較低的FLOPS意味著模型在執行推理或訓練時需要更少的計算資源,這對于在計算能力有限的設備上部署模型或在大規模應用中效率更高都是很重要的。通過降低FLOPS,可以在保持性能的同時減少模型的復雜度,這有助于提高模型的速度和效率

Abstract

卷積神經網絡(ConvNets)通常是在固定的資源預算下開發的,如果有更多的資源可用,則可以擴展以獲得更好的準確性。在本文中,我們系統地研究了模型縮放,并確定仔細平衡網絡深度,寬度和分辨率可以帶來更好的性能。基于這一觀察結果,我們提出了一種新的縮放方法,該方法使用簡單而高效的復合系數對深度/寬度/分辨率的所有維度進行均勻縮放。我們證明了該方法在擴展MobileNets和ResNet方面的有效性
為了更進一步,我們使用神經架構搜索來設計一個新的基線網絡,并將其擴展以獲得一系列模型,稱為EffentNets,它比以前的ConvNets具有更好的準確性和效率。特別是,我們的EfficientNet-B7在ImageNet上達到了最先進的84.3%的top-1精度,同時比現有最好的ConvNet小8.4倍,推理速度快6.1倍。我們的EfficientNets在CIFAR-100(91.7%)、Flowers(98.8%)和其他3個遷移學習數據集上的遷移效果也很好,達到了最先進的準確率,參數減少了一個數量級

1. Introduction

擴大卷積神經網絡被廣泛用于獲得更好的準確率。例如,ResNet (He et al., 2016)可以通過使用更多的層從ResNet-18擴展到ResNet-200;最近,GPipe (Huang et al., 2018)通過將基線模型放大四倍,實現了84.3%的ImageNet top-1精度

diss former method

然而,擴大卷積神經網絡的過程從未被很好地理解,目前有很多方法可以做到這一點。最常見的方法是通過深度(He et al., 2016)或寬度(Zagoruyko & Komodakis, 2016)來擴展卷積神經網絡。另一種不太常見但越來越流行的方法是按圖像分辨率縮放模型(Huang et al., 2018)。在以前的工作中,通常只縮放三個維度中的一個——深度、寬度和圖像大小。雖然可以任意縮放兩個或三個維度,但任意縮放需要繁瑣的手動調優,并且仍然經常產生次優的精度和效率

our method

在本文中,我們想要研究和重新思考放大卷積神經網絡的過程。特別是,我們研究了一個核心問題:是否有一種原則性的方法來擴大卷積神經網絡,從而達到更好的準確性和效率?我們的實證研究表明,平衡網絡寬度/深度/分辨率的所有維度是至關重要的,令人驚訝的是,這種平衡可以通過簡單地以恒定的比例縮放每個維度來實現。在此基礎上,我們提出了一種簡單有效的復合標度方法。與傳統的任意縮放這些因素的做法不同,我們的方法用一組固定的縮放系數統一地縮放網絡寬度、深度和分辨率。例如,如果我們想使用2^N倍的計算資源,那么我們可以簡單地將網絡深度增加α N,寬度增加β N,圖像大小增加γ N,其中α,β,γ是由原始小模型上的小網格搜索確定的常系數。圖2說明了我們的縮放方法與傳統方法之間的區別

(a)是一個基線網絡示例;(b)-(d)為常規縮放,僅增加網絡寬度、深度或分辨率的一個維度。(e)是我們提出的以固定比例均勻縮放所有三個維度的復合縮放方法

直觀地說,復合縮放方法是有意義的,因為如果輸入圖像更大,那么網絡需要更多的層來增加接受域,需要更多的通道來捕獲更大圖像上的更細粒度的模式。事實上,之前的理論(Raghu et al., 2017;Lu et al., 2018)和實證結果(Zagoruyko & Komodakis, 2016)都表明網絡寬度和深度之間存在一定的關系,但據我們所知,我們是第一個對網絡寬度、深度和分辨率這三個維度之間的關系進行實證量化的人

我們證明了我們的縮放方法在現有的mobilenet上工作得很好(Howard等人,2017;Sandler等人,2018)和ResNet (He等人,2016)。值得注意的是,模型縮放的有效性嚴重依賴于基線網絡;更進一步,我們使用神經架構搜索(Zoph & Le, 2017;Tan et al., 2019)開發一個新的基線網絡,并將其擴展以獲得一系列模型,稱為EfficientNets。圖1總結了ImageNet的性能,其中我們的EfficientNets明顯優于其他ConvNets。特別是,我們的EfficientNet-B7超過了現有的最佳GPipe精度(Huang et al., 2018),但使用的參數減少了8.4倍,在參考上運行速度提高了6.1倍。與廣泛使用的ResNet-50 (He et al., 2016)相比,我們的EfficientNet-B4在FLOPS相似的情況下,將top-1的準確率從76.3%提高到83.0%(+6.7%)。除了ImageNet, EfficientNets在8個廣泛使用的數據集中的5個上也能很好地傳輸并達到最先進的精度,同時比現有的ConvNets減少了高達21倍的參數

2. Related Work

簡單夸贊了下前人的work,從精度、效率和模型縮放方面
在本文中,我們的目標是研究超大規模卷積神經網絡的模型效率,以超越目前的精度。為了實現這一目標,我們采用模型縮放
網絡深度和寬度對卷積神經網絡的表達能力都很重要,但如何有效地擴展卷積神經網絡以獲得更好的效率和準確性仍然是一個懸而未決的問題我們的工作系統地和經驗地研究了網絡寬度、深度和分辨率這三個維度的卷積神經網絡縮放

3. Compound Model Scaling

我們將制定縮放問題,研究不同的方法,并提出我們的新縮放方法

3.1. 問題公式化

卷積層i可以定義為一個函數:Y i = F i (X i),其中F i是算子,Y i是輸出張量,X i是輸入張量,張量的形狀是<H i,W i,C i >1,其中,hi和wi為空間維度,ci為通道維度。卷積神經網絡N可以用一個組合層的列表表示:N = F k ⊙…⊙f2 ⊙f1 (x1) = ⊙j = 1…k F j (x1)在實踐中,ConvNet層通常被劃分為多個階段,每個階段的所有層都共享相同的架構:例如,ResNet (He et al., 2016)有五個階段,每個階段的所有層都具有相同的卷積類型,除了第一層執行下采樣。因此,我們可以將ConvNet定義為:

其中fl i i表示層F i在階段i重復L i次,表示第i層輸入張量X的形狀。圖2(a)展示了一個具有代表性的ConvNet,其中空間維度逐漸縮小,但通道維度逐層擴展,例如,從初始輸入形狀<224,224,3>到最后輸出形狀<7,7,512>

與常規的ConvNet設計不同,模型縮放試圖擴展網絡長度(L i)、寬度(C i)和/或分辨率(H i,W i),而不改變基線網絡中預定義的F i。通過固定F i,模型縮放簡化了針對新資源約束的設計問題,但對于每一層探索不同的L i,C i,H i,W i仍然有很大的設計空間。為了進一步縮小設計空間,我們限制所有層必須以恒定比例均勻縮放。我們的目標是在任何給定的資源約束下使模型精度最大化,這可以表述為一個優化問題:

式中,w、d、r為縮放網絡寬度、深度和分辨率的系數;F i、L i、H i、W i、C i是基線網絡中預定義的參數(示例見表1)。

3.2. Scaling Dimensions

問題2的主要難點在于最優的d、w、r相互依賴,且在不同的資源約束條件下其值是變化的。由于這個困難,傳統的方法主要是在以下一個維度上縮放卷積神經網絡:

**深度(d)😗*縮放網絡深度是許多卷積網絡最常用的方法(He et al., 2016;黃等人,2017;Szegedy等,2015;2016)。直覺是,更深層次的卷積神經網絡可以捕獲更豐富、更復雜的特征,并且可以很好地泛化新任務。然而,由于梯度消失問題,更深層的網絡也更難以訓練(Zagoruyko & Komodakis, 2016)。盡管跳躍連接(He et al., 2016)和批處理歸一化(ioffe&szegedy, 2015)等幾種技術緩解了訓練問題,但非常深的網絡的精度增益減少了:例如,ResNet-1000具有與ResNet-101相似的精度,盡管它具有更多的層。圖3(中)顯示了我們對不同深度系數d的基線模型進行縮放的實證研究,進一步表明了非常深的卷積神經網絡的精度回報遞減

更大的網絡,具有更大的寬度、深度或分辨率,往往可以獲得更高的精度,但精度增益在達到80%后很快飽和,這表明了單維度縮放的局限性

寬度(w):通常用于縮放網絡寬度小尺寸模型(Howard et al., 2017;Sandler et al., 2018;Tan et al., 2019)正如(Zagoruyko & Ko-modakis, 2016)中所討論的,更廣泛的網絡往往能夠捕獲更細粒度的特征,并且更容易訓練然而,極寬但較淺的網絡往往難以捕獲更高級的特征。我們在圖3(左)中的經驗結果表明,當網絡變得更寬,w更大時,準確性很快飽和

分辨率?:使用更高分辨率的輸入圖像,ConvNets可以捕獲更細粒度的模式。從早期ConvNets的224x224開始,現代ConvNets傾向于使用299x299 (Szegedy等人,2016)或331x331 (Zoph等人,2018)以獲得更好的精度。最近,GPipe (Huang et al., 2018)在480 × 480分辨率下實現了最先進的ImageNet精度。更高的分辨率,如600x600,也廣泛用于目標檢測卷積神經網絡(He et al., 2017;Lin等人,2017)。圖3(右)顯示了縮放網絡分辨率的結果,其中更高的分辨率確實提高了精度,但對于非常高的分辨率,精度增益會降低(r = 1.0表示分辨率224x224, r = 2.5表示分辨率560x560)

通過以上分析,我們得出了第一個結論:
放大網絡寬度、深度或分辨率的任何維度都可以提高精度,但對于更大的模型,精度增益會降低

3.3. Compound Scaling

我們通過經驗觀察到,不同的標度維度并不是相互獨立的。直觀地說,對于更高分辨率的圖像,我們應該增加網絡深度,這樣更大的接受域可以幫助捕獲在更大的圖像中包含更多像素的相似特征。相應的,我們也應該在分辨率較高時增加網絡寬度,以便在高分辨率圖像中以更多的像素捕獲更細粒度的圖案。這些直覺表明,我們需要協調和平衡不同的縮放維度,而不是傳統的單一維度縮放

為了驗證我們的直覺,我們比較了不同網絡深度和分辨率下的寬度縮放,如圖4所示。如果我們只縮放網絡寬度w而不改變深度(d =1.0)和分辨率(r =1.0),則精度很快飽和。在相同的FLOPS成本下,在更深(d =2.0)和更高的分辨率(r =2.0)下,寬度縮放可以獲得更好的精度。這些結果將我們引向第二個觀察結果:
為了追求更好的精度和效率,在卷積神經網絡縮放過程中,平衡網絡寬度、深度和分辨率的各個維度是至關重要的

事實上,之前的一些工作(Zoph et al., 2018;Real et al., 2019)已經嘗試任意平衡網絡寬度和深度,但它們都需要繁瑣的手動調優
本文提出了一種新的復合縮放方法,該方法利用復合系數φ對網絡寬度、深度和分辨率進行有原則的均勻縮放:

其中α,β,γ是可以通過小網格搜索確定的常數。直觀地說,φ是一個用戶指定的系數,它控制有多少資源可用于模型縮放,而α,β,γ分別指定如何將這些額外的資源分配給網絡寬度,深度和分辨率

值得注意的是,規則卷積op的FLOPS與d, w, r成正比,即網絡深度加倍將使FLOPS加倍,但網絡寬度或分辨率加倍將使FLOPS增加四倍。由于卷積運算通常在卷積網絡的計算成本中占主導地位,因此用公式3縮放卷積網絡將使總FLOPS大約增加(α·β 2·γ 2 )φ。在本文中,我們約束α·β 2·γ 2≈2,使得對于任何新的φ,總FLOPS將大約增加2 ^φ

4. EfficientNet Architecture

由于模型縮放不會改變基線網絡中的層算子F i,因此擁有一個良好的基線網絡也至關重要。我們將使用現有的卷積神經網絡來評估我們的縮放方法,但為了更好地展示我們的縮放方法的有效性,我們還開發了一個新的移動尺寸基線,稱為EffientNet

受(Tan et al., 2019)的啟發,我們通過利用多目標神經架構搜索來開發基線網絡,該搜索可優化準確性和FLOPS。里我們優化FLOPS而不是延遲,因為我們不針對任何特定的硬件設備。我們的搜索產生了一個高效網絡,我們將其命名為EfficientNet-B0

表1顯示了EfficientNet-B0的體系結構。它的主要構建塊是移動反向瓶頸MBConv (San- dler et al., 2018;Tan等人,2019),我們還添加了擠壓和激勵優化(Hu等人,2018)
從基線EfficientNet-B0開始,我們采用復合擴展方法,分兩個步驟進行擴展:
? 第一步:我們首先固定φ = 1,假設兩倍以上的資源可用,并根據公式2和3進行α,β,γ的小網格搜索。特別地,我們發現在α·β 2·γ 2≈2的約束下,EfficientNet-B0的最佳值為α = 1.2,β = 1.1,γ = 1.15

?步驟2:然后我們將α,β,γ固定為常數,并使用公式3縮放具有不同φ的基線網絡,以獲得EfficientNet-B1到B7(詳細信息見表2)

即先固定φ ,計算α、β、γ,然后固定α、β、γ,計算φ
值得注意的是,通過在大型模型周圍直接搜索α,β,γ可以獲得更好的性能,但是在大型模型上搜索成本會變得非常昂貴。我們的方法解決了這個問題,只在小的基線網絡上做一次搜索(步驟1),然后對所有其他模型使用相同的縮放系數(步驟2)

5. Experiments



6. Discussion

為了區分我們提出的縮放方法對效率網架構的貢獻,圖8比較了相同效率網- b0基線網絡中不同縮放方法的ImageNet性能。一般來說,所有的縮放方法都以更高的FLOPS為代價來提高精度,但我們的復合縮放方法比其他單維縮放方法可以進一步提高精度,最高可達2.5%,這表明了我們提出的復合縮放方法的重要性
為了進一步理解為什么我們的復合縮放方法比其他方法更好,圖7比較了幾種不同縮放方法的代表性模型的類激活圖(Zhou et al., 2016)。所有這些模型都是從相同的基線進行縮放的,其統計數據如表7所示。圖像是從ImageNet驗證集中隨機選取的。如圖所示,復合縮放模型傾向于關注更相關的區域和更多的物體細節,而其他模型要么缺乏物體細節,要么無法捕獲圖像中的所有物體

7. Conclusion

在本文中,我們系統地研究了卷積神經網絡的縮放,并確定仔細平衡網絡寬度,深度和分辨率是一個重要但缺失的部分,阻礙了我們更好的準確性和效率為了解決這個問題,我們提出了一種簡單而高效的復合縮放方法,該方法使我們能夠以更有原則的方式輕松地將基線ConvNet擴展到任何目標資源約束,同時保持模型效率在這種復合縮放方法的支持下,我們證明了移動尺寸的EfficientNet模型可以非常有效地縮放,在ImageNet和五種常用的遷移學習數據集上,以更少的參數和FLOPS超過了最先進的精度

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

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

相關文章

LeNet

概念 代碼 model import torch.nn as nn import torch.nn.functional as Fclass LeNet(nn.Module):def __init__(self):super(LeNet, self).__init__() # super()繼承父類的構造函數self.conv1 nn.Conv2d(3, 16, 5)self.pool1 nn.MaxPool2d(2, 2)self.conv2 nn.Conv2d(16…

Bash腳本處理ogg、flac格式到mp3格式的批量轉換

現在下載的許多音樂文件是flac和ogg格式的&#xff0c;QQ音樂上下載的就是這樣的&#xff0c;這些文件尺寸比較大&#xff0c;在某些場合使用不便&#xff0c;比如在車機上播放還是mp3格式合適&#xff0c;音質這些在車機上播放足夠了&#xff0c;要求不高。比如本人就喜歡下載…

軟件接口安全設計規范

《軟件項目接口安全設計規范》 1.token授權機制 2.https傳輸加密 3.接口調用防濫用 4.日志審計里監控 5.開發測試環境隔離&#xff0c;脫敏處理 6.數據庫運維監控審計

卷王開啟驗證碼后無法登陸問題解決

問題描述 使用 docker 部署&#xff0c;后臺設置開啟驗證&#xff0c;重啟服務器之后&#xff0c;docker重啟&#xff0c;再次訪問系統&#xff0c;驗證碼獲取失敗&#xff0c;導致無法進行驗證&#xff0c;也就無法登陸系統。 如果不了解卷王的&#xff0c;可以去官網看下。…

飛天使-linux操作的一些技巧與知識點3

http工作原理 http1.0 協議 使用的是短連接&#xff0c;建立一次tcp連接&#xff0c;發起一次http的請求&#xff0c;結束&#xff0c;tcp斷開 http1.1 協議使用的是長連接&#xff0c;建立一次tcp的連接&#xff0c;發起多次http的請求&#xff0c;結束&#xff0c;tcp斷開ngi…

ky10 server x86 設置網卡開機自啟

輸入命令查看網卡名稱 ip a 輸入命令編輯網卡信息 vi /etc/sysconfig/network-scripts/*33改成yes 按ESC鍵&#xff0c;輸入:wq&#xff0c;保存

Aloha 機械臂的學習記錄2——AWE:AWE + ACT

繼續下一個階段&#xff1a; Train policy python act/imitate_episodes.py \ --task_name [TASK] \ --ckpt_dir data/outputs/act_ckpt/[TASK]_waypoint \ --policy_class ACT --kl_weight 10 --chunk_size 50 --hidden_dim 512 --batch_size 8 --dim_feedforward 3200 \ --n…

F : A DS二分查找_尋找比目標字母大的最小字母

Description 給你一個字符串str&#xff0c;字符串中的字母都已按照升序排序&#xff0c;且只包含小寫字母。另外給出一個目標字母target&#xff0c;請你尋找在這一有序字符串里比目標字母大的最小字母。 在比較時&#xff0c;字母是依序循環出現的。例如&#xff0c;str“ab…

Python中鎖的常見用法

在 Python 中&#xff0c;可以使用線程鎖來控制多個線程對共享資源的訪問。以下是一些常見的 Python 中鎖的用法&#xff1a; 創建線程鎖 在 Python 中&#xff0c;可以使用 threading 模塊中的 Lock 類來創建線程鎖。例如&#xff1a; import threading# 創建線程鎖 lock …

Python網絡爬蟲環境的安裝指南

網絡爬蟲是一種自動化的網頁數據抓取技術&#xff0c;廣泛用于數據挖掘、信息搜集和互聯網研究等領域。Python作為一種強大的編程語言&#xff0c;擁有豐富的庫支持網絡爬蟲的開發。本文將為你詳細介紹如何在你的計算機上安裝Python網絡爬蟲環境。 一、安裝python開發環境 進…

什么是電壓紋波,造成不良,如何測量、如何抑制設計

1 引言 電源給電子產品提供能量同時也附帶了一些不好的影響成分,如紋波、噪聲等,這些對本振、、濾波、放大器、混頻器、檢波、A/D 轉換等電路都會產生影響,會直接影響電子產品正常工作,所以項目設計要合理、要有實測數據、要盡量減小系統電壓的紋波。 1.1 電壓紋波(volta…

bc-linux-歐拉重制root密碼

最近需要重新安裝虛擬機的系統 安裝之后發現對方提供的root密碼不對&#xff0c;無法進入系統。 上網搜了下發現可以進入單用戶模式進行密碼修改從而重置root用戶密碼。 在這個界面下按e鍵 找到圖中部分&#xff0c;把標紅的部分刪除掉&#xff0c;然后寫上rw init/bin/…

strftime(“%-m/%-d/%Y“) 報錯 ValueError: Invalid format string

問題 運行測試用例時&#xff0c;出現ValueError: Invalid format string的錯誤&#xff0c;代碼大致如下&#xff1a; from datetime import date .... current date.today() return current.strftime("%-m/%-d/%Y")原因 開發此代碼的時候是在mac上開發的&#…

24、文件上傳漏洞——Apache文件解析漏洞

文章目錄 一、環境簡介一、Apache與php三種結合方法二、Apache解析文件的方法三、Apache解析php的方法四、漏洞原理五、修復方法 一、環境簡介 Apache文件解析漏洞與用戶配置有密切關系。嚴格來說&#xff0c;屬于用戶配置問題&#xff0c;這里使用ubantu的docker來復現漏洞&am…

IOday7作業

1> 使用無名管道完成父子進程間的通信 #include<myhead.h>int main(int argc, const char *argv[]) {//創建存放兩個文件描述符的數組int fd[2];int pid -1;//打開無名管道if(pipe(fd) -1){perror("pipe");return -1;}//創建子進程pid fork();if(pid &g…

wordpress小記

1.插件市場搜索redis&#xff0c;并按照 Redis Object cache插件 2.開啟php的redis擴展 執行php -m|grep redis&#xff0c;沒有顯示就執行 yum -y install php-redis3.再次修改wp配置文件&#xff0c;增加redis的配置 define( WP_REDIS_HOST, 114.80.36.124 );define( WP_…

非標設計之電磁閥

電磁閥&#xff1a; 分類&#xff1a; 動畫演示兩位三通電磁閥&#xff1a; 兩位三通電磁閥動畫演示&#xff1a; 111&#xff1a; 氣缸回路的介紹&#xff1a; 失電狀態&#xff1a; 電磁閥得電狀態&#xff1a; 兩位五通電磁閥的回路&#xff1a;&#xff08;常用&#xf…

算數運算符和算數表達式

基本算數運算符 算數運算符&#xff1a; &#xff08;加法運算符或正值運算符&#xff09;、-&#xff08;減法運算符或負值運算符&#xff09;、*&#xff08;乘&#xff09;、/&#xff08;除&#xff09;、%&#xff08;求余數&#xff09; 雙目運算符&#xff1a; 雙目…

四則運算 .

輸入一個表達式&#xff08;用字符串表示&#xff09;&#xff0c;求這個表達式的值。 保證字符串中的有效字符包括[‘0’-‘9’],‘’,‘-’, ‘*’,‘/’ ,‘(’&#xff0c; ‘)’,‘[’, ‘]’,‘{’ ,‘}’。且表達式一定合法。字符串長度滿足1≤n≤1000 輸入描述&#x…

CGAL的2D符合規定的三角剖分和網格

1、符合規定的三角剖分 1.1、定義 如果三角形的任何面的外接圓在其內部不包含頂點&#xff0c;則該三角形是 Delaunay 三角形。 約束 Delaunay 三角形是一種盡可能接近 Delaunay 的約束三角形。 約束 Delaunay 三角形的任何面的外接圓在其內部不包含從該面可見的數據點。 如果…