<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          效率新秀 | 詳細(xì)解讀:如何讓EfficientNet更加高效、速度更快

          共 5403字,需瀏覽 11分鐘

           ·

          2021-06-16 12:26


          1簡介

          近年來,許多研究致力于提高圖像分類訓(xùn)練和推理的效率。這種研究通常集中于提高理論效率,通常以每個(gè)FLOP的ImageNet驗(yàn)證精度來衡量。然而,事實(shí)證明,這些理論上的改進(jìn)在實(shí)踐中很難實(shí)現(xiàn),特別是在高性能訓(xùn)練加速器上。

          在這項(xiàng)工作中,作者關(guān)注的是在一個(gè)新的加速器類Graphcore IPU上提高最先進(jìn)的EfficientNet模型的實(shí)際效率。本文主要通過以下方式擴(kuò)展這類模型:

          • 將Depthwise CNN推廣為Group CNN;
          • 添加proxy-normalized激活,以使batch normalization性能與batch-independent statistics相匹配;
          • 通過降低訓(xùn)練分辨率和低成本的微調(diào)來減少計(jì)算量。

          作者發(fā)現(xiàn)這3種方法都提高了訓(xùn)練和推理的實(shí)際效率。

          2研究背景

          2.1 Efficient CNNs分析

          在CNN的發(fā)展過程中,實(shí)際訓(xùn)練效率的提高是創(chuàng)新的重要力量。比如說,AlexNet的成功很大一部分因素便得益于GPU加速,ResNet的成功不僅可以歸因于其良好的性能,而且其在GPU上的高吞吐量也相對比較高。

          最近,在理論效率方面也取得了重大改進(jìn)。最引人注目的創(chuàng)新是在空間操作中引入Group卷積和Depthwise卷積。ResNet-50單獨(dú)引入Group卷積可以提高理論效率。類似地,通過將Group規(guī)模減少到1,即利用Depthwise卷積,相對于原始的CNN模型也實(shí)現(xiàn)了理論效率的提高。特別是,該方法為實(shí)現(xiàn)基于“mobile”級別的落地應(yīng)用提供了可能。

          通過使用NAS直接減少FLOPs進(jìn)一步提高了這些理論上的效率增益。這帶來了整個(gè)模型尺度范圍內(nèi)的效率提高,從mobile-sized的模型如MobileNetV3和MNasNet 到大型模型如NASNet和AmoebaNet。

          值得注意的是,在ImageNet模型的最高精度前100名的所有NAS模型都使用了某種形式的Group卷積或Depthwise卷積,進(jìn)一步突出了這些操作相對于CNN操作的優(yōu)勢,在高效的MNasNet基礎(chǔ)上,EfficientNet進(jìn)一步改進(jìn)了訓(xùn)練方法并擴(kuò)展到更大的模型,以在FLOP范圍內(nèi)實(shí)現(xiàn)SOTA性能。

          雖然低功耗cpu的高效模型通常能實(shí)現(xiàn)實(shí)際改進(jìn),但這些模型通常難以將理論收益轉(zhuǎn)化為高性能硬件上更高的訓(xùn)練吞吐量。例如,雖然EfficientNets在理論訓(xùn)練效率方面遠(yuǎn)遠(yuǎn)優(yōu)于ResNets,但當(dāng)考慮到GPU上的實(shí)際訓(xùn)練效率時(shí)經(jīng)常被發(fā)現(xiàn)表現(xiàn)不佳。最近的一些工作也已經(jīng)開始使用NAS來優(yōu)化GPU的實(shí)際效率。

          2.2 硬件角度考慮與分析

          在研究模型的實(shí)際效率時(shí),了解它所運(yùn)行的硬件的特征是很重要的。關(guān)于這個(gè)問題的討論通常主要集中在峰值計(jì)算速率上,以每秒浮點(diǎn)運(yùn)算(FLOPS)衡量,這是計(jì)算操作的理論最大速率。雖然峰值率是需要考慮的一個(gè)重要因素,但了解實(shí)現(xiàn)峰值率所需的假設(shè)也同樣重要,例如,計(jì)算的結(jié)構(gòu)和數(shù)據(jù)的可用性。

          計(jì)算結(jié)構(gòu)很重要,因?yàn)楝F(xiàn)代硬件通常使用向量指令,允許用一條指令計(jì)算給定長度的點(diǎn)積。然而,如果計(jì)算的體系結(jié)構(gòu)不能使這些向量指令被填滿,那么FLOPs就可能被浪費(fèi)掉。此外,如果數(shù)據(jù)不能立即在計(jì)算引擎上獲得,那么將需要循環(huán)來移動(dòng)它。這種操作將高度依賴于內(nèi)存的帶寬或者位寬。

          對內(nèi)存帶寬的依賴依賴于模型,可以通過計(jì)算與數(shù)據(jù)傳輸?shù)谋嚷蕘肀碚?,即算術(shù)arithmetic intensity——在這種情況下,低arithmetic intensity強(qiáng)度的操作更依賴于內(nèi)存帶寬。對于一個(gè)簡單的Group卷積,arithmetic intensity強(qiáng)度隨著Group大小、Kernel大小、field大小和Batch大小單調(diào)地增加。值得注意的是,這意味著Group卷積和Depthwise卷積在Group較小時(shí)的效率更可能受到可用內(nèi)存帶寬的限制。

          在這項(xiàng)工作中,作者使用了一種新的硬件加速器Graphcore IPU。這種加速器與通常用于神經(jīng)網(wǎng)絡(luò)訓(xùn)練的GPU有很大的區(qū)別。IPU計(jì)算在芯片上分布在1472個(gè)核心中,盡管它的指令仍然是向量化的,但要充分利用計(jì)算引擎,只需要16項(xiàng)的點(diǎn)積即可。這有助于減少對計(jì)算結(jié)構(gòu)的依賴。此外,IPU擁有超過900MB的高帶寬片上內(nèi)存,遠(yuǎn)遠(yuǎn)超過其他硬件。這大大降低了低arithmetic intensity強(qiáng)度操作的代價(jià)。

          為了最大化IPU上的性能,保持盡可能多的工作內(nèi)存(例如芯片上的激活狀態(tài))變得非常重要。這自然促進(jìn)了更小批次的使用、內(nèi)存節(jié)約優(yōu)化和分布式處理的創(chuàng)新形式。同時(shí),它確實(shí)需要重新考慮使用BN,因?yàn)樵谝曈X模型中,最常見的歸一化方法它很依賴于大的Batchsize。

          3本文方法

          3.1 改用Group卷積

          NAS方法傾向于將它們的spatial卷積分組,通常分組大小為G=1(Depthwise卷積)。而Depthwise卷積具有很低的FLOP和參數(shù),使用G>1作為一個(gè)更大的Group將更有效地利用現(xiàn)代硬件加速器:

          • (i) 增加arithmetic intensity強(qiáng)度;
          • (ii) 增加點(diǎn)積的長度(用于卷積),允許使用更大的向量指令。

          作者的目的是研究在EfficientNet模型中增加spatial卷積的Group大小所涉及的權(quán)衡問題。單單增加G就會(huì)增加參數(shù)量和FLOPs。因此,為了保持相似的模型復(fù)雜度,作者相應(yīng)地降低了擴(kuò)展比(擴(kuò)展比定義為輸入到first pointwise CNN和spatial CNN之間的通道比)。這類似于ResNeXt的Flop等效擴(kuò)展。

          因此,對于相同的FLOP具有更大G的網(wǎng)絡(luò)將更窄,更窄的網(wǎng)絡(luò)模型將通過減少存儲(chǔ)激活狀態(tài)的大小和使用更大的BatchSize而獲得計(jì)算優(yōu)勢。請注意,雖然這種補(bǔ)償?shù)哪康氖潜3挚侳LOPs和參數(shù)量,但為簡單起見,作者只在全局級別更改擴(kuò)展比率。因此,并不需要保持與深度完全相同的參數(shù)和FLOPs分布。

          與EfficientNet一樣,其他NAS派生的架構(gòu)通常只使用depthwise卷積,這表明depthwise卷積在驗(yàn)證準(zhǔn)確性方面是最優(yōu)的。在ResNeXts中,在保持總FLOPs的同時(shí)增加G會(huì)導(dǎo)致驗(yàn)證準(zhǔn)確性下降。這也表明與類似G>1的網(wǎng)絡(luò)對比G=1的vanilla EfficientNet將實(shí)現(xiàn)更高的準(zhǔn)確度。然而,作者希望改進(jìn)的網(wǎng)絡(luò)提供更好的性能和訓(xùn)練時(shí)間之間的權(quán)衡。因此對EfficientNet B0和B2的Group規(guī)模在G=1和G=64之間進(jìn)行了測試。

          3.2 Batch-Independent Normalization

          BN的問題在哪?

          我們都知道BN通常應(yīng)用于沒有歸一化的pre-activations X進(jìn)而產(chǎn)生歸一化pre-activations Y,然后再進(jìn)行仿射變換和非線性,最終產(chǎn)生post-activations Z。形式上,每個(gè)通道c:

          式中BN的歸一化確保了Y被規(guī)范化,這意味著每個(gè)通道c的均值和單位方差都為零,因此BN對于將模型擴(kuò)展到大型和深度模型是成為了可能:

          • 通過確保非線性在每個(gè)通道中“sees”接近歸一化的數(shù)據(jù)分布,可以有效地形成非線性的分布。因此,額外的層可以增加表達(dá)能力,網(wǎng)絡(luò)可以有效地利用其整個(gè)深度。這與會(huì)“see”一個(gè)“collapsed”的數(shù)據(jù)分布的情況相反,這樣它會(huì)在一階上很好地近似于一個(gè)關(guān)于這個(gè)分布的線性函數(shù);

          • 通過保證不同通道的方差接近相等,網(wǎng)絡(luò)可以有效地利用其整個(gè)帶寬。這與一種情況相反,在這種情況下,一個(gè)單一的通道會(huì)任意支配其他渠通道,從而成為唯一的通道被后續(xù)層“seen”。

          盡管這一基本原則取得了實(shí)際的成功應(yīng)用,但BN對小batchsize數(shù)據(jù)的依賴有時(shí)會(huì)產(chǎn)生問題。最值得注意的是,當(dāng)batchsize較小或數(shù)據(jù)集較大時(shí),來自小batchsize統(tǒng)計(jì)數(shù)據(jù)中噪聲的正則化可能會(huì)過大或不必要,從而導(dǎo)致性能下降。

          突破點(diǎn)在哪?

          為了解決這些問題,研究者們也提出了各種Batch-Independent相關(guān)的歸一化技術(shù):層歸一化(LN)、組歸一化(GN)、實(shí)例歸一化(IN)、權(quán)重歸一化(WN)、權(quán)重標(biāo)準(zhǔn)化(WS)、在線歸一化(ON)、濾波器響應(yīng)歸一化(FRN)、EvoNorm等。雖然這些技術(shù)在其他環(huán)境中很有用,但在本工作中,沒有一種技術(shù)能夠縮小與大 Batch BN的性能差距,重點(diǎn)關(guān)注在ImageNet上使用RMSProp訓(xùn)練的EfficientNets。

          這也促使作者重新思考如何執(zhí)行獨(dú)立于batch的Norm,并在工作中提出Proxy Normalized Activations。在本研究中,作者提出了一個(gè)假設(shè),即除了提高對小batch的依賴外,與batch無關(guān)的歸一化還應(yīng)保持每個(gè)通道中歸一化預(yù)激活Y的BN原則。

          這一假設(shè)的第1個(gè)理由是BN的歸納偏差。第2個(gè)理由是,在更實(shí)際的層面上,BN被用于架構(gòu)搜索,比如產(chǎn)生了EfficientNet模型系列的搜索。因此,堅(jiān)持相同的標(biāo)準(zhǔn)化原則可以避免重新執(zhí)行這些搜索。

          為了保留BN原則,同時(shí)消除對Batchsize的依賴,作者擴(kuò)展的工作如下:

          • (i)將Eq.(1)的BN步驟替換為基于LN或GN的Batch無關(guān)的標(biāo)準(zhǔn)化步驟;

          • (ii)將式(2)的激活步驟替換為proxy-normalized activation步驟。

          這一步通過將同化,使歸一化,其中是一個(gè)高斯proxy變量,具有均值和方差,如果選擇LN作為Batch無關(guān)的歸一化,對于每個(gè)batch元素b和通道c,這表示為:

          其中,,是X的batch元素b在空間和通道維度上的均值和標(biāo)準(zhǔn)差。

          當(dāng)與LN結(jié)合時(shí),這種激活的proxy標(biāo)準(zhǔn)化(PN)迭代確保預(yù)激活Y保持接近于標(biāo)準(zhǔn)化(論文中有推導(dǎo))。

          3.3 Image分辨率

          引入全局平均池化允許CNN對任意分辨率的輸入進(jìn)行操作。雖然這已經(jīng)在圖像分割等任務(wù)中得到了探索,但在圖像分類中,其影響仍有待更加深入的挖掘。EfficientNet模型將圖像分辨率作為一個(gè)可調(diào)的超參數(shù),使用更大的圖像來訓(xùn)練更大的網(wǎng)絡(luò)。Hoffer等人同時(shí)對多個(gè)圖像尺寸的網(wǎng)絡(luò)進(jìn)行訓(xùn)練發(fā)現(xiàn):

          • i) 大分辨率可以加速訓(xùn)練以達(dá)到目標(biāo)精度
          • ii) 大分辨率可以提高相同訓(xùn)練的最終性能。

          或許與目標(biāo)最接近的是,Howard建議從低分辨率圖像開始訓(xùn)練,在訓(xùn)練過程中逐步增加圖像的大小,以減少總的訓(xùn)練時(shí)間

          Touvron等人研究表明,少量的微調(diào)可以使網(wǎng)絡(luò)收斂的更好。微調(diào)步驟只需要對網(wǎng)絡(luò)的最后部分起作用,而且只需要幾個(gè)epoch就可以提高總體精度。因此,與其他訓(xùn)練相比,微調(diào)的計(jì)算成本幾乎可以忽略不計(jì)。

          從這一研究中獲得了靈感,研究了在低分辨率圖像上訓(xùn)練的網(wǎng)絡(luò)的微調(diào),并從效率的角度將其推廣到更大的分辨率。在訓(xùn)練過程中使用較小的圖像可以使用更少的內(nèi)存更快地訓(xùn)練出一個(gè)給定的模型,或者在相同的時(shí)間內(nèi)訓(xùn)練一個(gè)較大的模型。為了測試這一想法,作者在固有的EfficientNet圖像大小以大約為原來像素?cái)?shù)的一半進(jìn)行訓(xùn)練,這里表示為半分辨率。結(jié)果與EfficientNet模型的FLOPs大致相當(dāng)。

          然后,微調(diào)和測試的圖像尺寸范圍高達(dá)700x700。在選擇用于驗(yàn)證的精確分辨率時(shí),注意到性能可能會(huì)受到混疊效應(yīng)的影響。這種人工干擾是由于非對稱下采樣層的位置造成的,其中輸入的維度是奇數(shù),這取決于輸入分辨率在不同的深度上決定的。作者還發(fā)現(xiàn)在訓(xùn)練和測試之間保持這些降采樣層的位置一致是很重要的。這可以通過選擇測試分辨率來實(shí)現(xiàn),使,其中n是模型中的下采樣層數(shù)(對于EfficientNet, n=5)。

          4實(shí)驗(yàn)

          4.1 Group卷積的影響

          通過上表可以看出雖然組大小為G=4的情況下在這些測試中獲得了最好的準(zhǔn)確性,但發(fā)現(xiàn)組大小為G=16的增加的計(jì)算效益在實(shí)踐中產(chǎn)生了比較好的權(quán)衡。

          4.2 Proxy-Normalized Activations的影響

          從表中可以看出,對于B0和B2,在G=16上直接比較2種方法時(shí),LN+PN得到的準(zhǔn)確率與BN得到的準(zhǔn)確率最匹配。

          4.3 分辨率的影響

          4.4 推理效率

          5參考

          [1].Making EfficientNet More Efficient

          6推薦閱讀

          最強(qiáng)Transformer | 太頂流!Scaling ViT將ImageNet Top-1 Acc刷到90.45%啦?。?!


          讓檢測告別遮擋 | 詳細(xì)解讀NMS-Loss是如何解決目標(biāo)檢測中的遮擋問題?


          即插即用 | 卷積與Self-Attention完美融合X-volution插入CV模型將帶來全任務(wù)的漲點(diǎn)(文末附論文)


          本文論文原文獲取方式,掃描下方二維碼

          回復(fù)【MEF】即可獲取論文

          長按掃描下方二維碼添加小助手并加入交流群,群里博士大佬云集,每日討論話題有目標(biāo)檢測、語義分割、超分辨率、模型部署、數(shù)學(xué)基礎(chǔ)知識、算法面試題分享的等等內(nèi)容,當(dāng)然也少不了搬磚人的扯犢子

          長按掃描下方二維碼添加小助手。

          可以一起討論遇到的問題

          聲明:轉(zhuǎn)載請說明出處

          掃描下方二維碼關(guān)注【集智書童】公眾號,獲取更多實(shí)踐項(xiàng)目源碼和論文解讀,非常期待你我的相遇,讓我們以夢為馬,砥礪前行!

          瀏覽 143
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  一个人看的区二区不卡视频 | 欧美色图15 P | 日本久久精品一区 | 欧美黑人推油视频在线看 | 精品三级久久久 |