在過去了幾年里,動態(tài)神經(jīng)網(wǎng)絡(luò)非常熱,熱到每周都能看到幾篇不錯的動態(tài)神經(jīng)網(wǎng)絡(luò)論文上傳到arxiv。那么什么是動態(tài)神經(jīng)網(wǎng)絡(luò)呢?它有有哪些類型呢?它的研究現(xiàn)狀如何呢?接下來,就由Happy帶領(lǐng)大家簡單回顧一下咯。
Abstract
Abstract 動態(tài)神經(jīng)網(wǎng)絡(luò)已成為深度學(xué)習(xí)新型研究課題。相比靜態(tài)模型(固定計算圖、固定參數(shù)),動態(tài)網(wǎng)絡(luò)可以按照不同輸入自適應(yīng)調(diào)整自身結(jié)構(gòu)或者參數(shù)量,導(dǎo)致了精度、計算效率、自適應(yīng)等方面的顯著優(yōu)勢。
本文對動態(tài)神經(jīng)網(wǎng)絡(luò)進(jìn)行了系統(tǒng)性的綜述并將其分為三大類:
instance-wise 它采用數(shù)據(jù)依賴的結(jié)構(gòu)或參數(shù)處理每個樣例;
spatial-wise 它采用與圖像空域位置相關(guān)的方式進(jìn)行自適應(yīng)計算;
temporal-wise 它驗證序列數(shù)據(jù)(比如視頻、文本)的時間維度進(jìn)行自適應(yīng)推理。
相比靜態(tài)網(wǎng)絡(luò),動態(tài)神經(jīng)網(wǎng)絡(luò)有這樣幾個優(yōu)勢:
Efficiency
Representation power
Adaptiveness
Compatibility
Generality
Interpretability
本文對動態(tài)網(wǎng)絡(luò)的幾個重要組成部分(比如結(jié)構(gòu)設(shè)計、決策機制、優(yōu)化技術(shù)以及應(yīng)用)進(jìn)行了系統(tǒng)性研究,最后我們對該領(lǐng)域的開問題以及未來研究方向進(jìn)行了討論。
Instance-wise
實例級動態(tài)神經(jīng)網(wǎng)絡(luò)旨在通過數(shù)據(jù)依賴方式處理不同樣例,它一般從以下兩個角度出發(fā)進(jìn)行設(shè)計:
基于不同樣例分配適當(dāng)計算量達(dá)到調(diào)整網(wǎng)絡(luò)架構(gòu)的目的,因此可以在easy樣例上降低冗余計算,進(jìn)而達(dá)到改善推理效率的目的;
針對不同樣例調(diào)整網(wǎng)絡(luò)參數(shù)且保持計算圖不變,通過小幅提升計算量達(dá)到提升模型表達(dá)能力的目的。
接下來,我們將從以上兩個角度出發(fā),對現(xiàn)有實例級動態(tài)神經(jīng)網(wǎng)絡(luò)進(jìn)行介紹。
Dynamic Architectures
假設(shè)不同的輸入具有不同的計算需求,一種自然的方式:根據(jù)輸入動態(tài)調(diào)整推理時的架構(gòu)。具體來說,我們可以調(diào)整網(wǎng)絡(luò)的深度、寬度或者動態(tài)路徑。具有動態(tài)架構(gòu)的網(wǎng)絡(luò)不僅可以節(jié)省對于簡單樣例冗余計算,而且保證對于困難樣例的表達(dá)能力。相比靜態(tài)模型的加速技術(shù),該方案可以帶來顯著的效率優(yōu)勢。
Dynamic Depth
為識別“困難”樣例,目前CNN的結(jié)構(gòu)變得越來越深,一種直觀的解決方案:在推理階段采用動態(tài)網(wǎng)絡(luò)深度減少冗余計算。關(guān)于動態(tài)深度有兩種實現(xiàn)方式:
Early exiting:對于“簡單”樣例提前退出。常見“早退”方案有以下三種形式:
Cascading DNNs,見下圖a。
Intermediate Classifier,見下圖b;
Multi-scale architecture with early exits,見Fig2-a。
Layer skipping:進(jìn)行自適應(yīng)的中間特征跳過。常見的“層跳過”有以下幾種形式:
The halting score 見下圖a;
Gating Function,見下圖b;
Policy Network,見下圖c。
Dynamic Width
動態(tài)寬度是動態(tài)深度之外的另一種選擇:盡管每個層都需要執(zhí)行,但它的多個成分(比如神經(jīng)元、分支或者通道)將根據(jù)輸入自適應(yīng)選擇。
給出了幾個常見動態(tài)寬度方案:
Dynamic width of FC Layers
Mixture of Experts(MoE),見上圖a和b;
Dynamic channel pruning in CNNs,
Dynamic Routing
除了動態(tài)深度、動態(tài)寬度外,還有一種動態(tài)路徑的方案(見上面圖c):SuperNet中的計算路徑根據(jù)輸入自適應(yīng)調(diào)整。關(guān)于SuperNet及其路徑?jīng)Q策主要有以下幾種方案:
Path selection in multi-branch structures
Neural trees and tree-structured networks
Others,主要見諸于NAS。
Dynamic Parameters
盡管前面提到的動態(tài)架構(gòu)可以按照不同樣例自適應(yīng)調(diào)整推理圖并取得有效計算量分配,但它們通常需要特定的架構(gòu)設(shè)計、特定的訓(xùn)練策略或者精心的超參數(shù)調(diào)整。
那么另一條線來了:保持推理架構(gòu)不變,但網(wǎng)絡(luò)參數(shù)自適應(yīng)調(diào)整。已有研究已證實其有效性:通過小幅提升計算量改進(jìn)網(wǎng)絡(luò)的表達(dá)能力。給定輸入
x,靜態(tài)參數(shù)網(wǎng)絡(luò)(模塊)的輸出可以描述為:
y=F(x,Θ);與之對立的,動態(tài)參數(shù)網(wǎng)絡(luò)的輸出描述如下:
y=F(x,^Θ|x)=F(x,W(x,Θ))其中,
W(?,Θ)用于生成動態(tài)參數(shù),
W的不同選擇已得到了充分的探索。
一般來說,參數(shù)自適應(yīng)可以通過以下三種方式(可參見上圖)得到:
基于輸入調(diào)整訓(xùn)練參數(shù);
根據(jù)輸入直接生成網(wǎng)絡(luò)參數(shù);
采用軟注意力調(diào)整特征。
Parameter Adjustment
參數(shù)自適應(yīng)的一種典型方法:在推理階段,根據(jù)輸入調(diào)整網(wǎng)絡(luò)權(quán)值。通常來講,該過程通過非常少的計算量生成這種調(diào)整,比如注意力權(quán)值、采樣偏移。
Attention on weights 可訓(xùn)練參數(shù)量時影響表達(dá)能力的重要因素。動態(tài)網(wǎng)絡(luò)(比如谷歌的CondConv、微軟DY-CNN)在多個卷積核上執(zhí)行軟注意力生成自適應(yīng)集成參數(shù),它不會導(dǎo)致明顯的計算量提升。假設(shè)有N個核
Wn,n=1,2,?,N,該動態(tài)卷積定義如下:
y=x?~W=x?(N∑n=1αnWn)
該過程可以顯著提升模型的容量(capacity)且保持高效性,因為多分枝卷積融合等價于多卷積核參數(shù)融合后的單次卷積,而后者僅需前者
1/N的計算量。
權(quán)值調(diào)整還可以通過在卷積核的空域位置上實施軟注意力。比如,PAC(pixel-adaptive convolution)在每一層根據(jù)輸入生成注意力掩碼對卷積核進(jìn)行調(diào)整。
Kernel shape adaptation 除了自適應(yīng)調(diào)整權(quán)值外,參數(shù)調(diào)整還可以用于調(diào)整卷積核的形狀達(dá)到動態(tài)感受野的作用。比如,Deformable Convolution、Deformable Kernel。下表從不同角度對比了該方向的幾個方法。
Weight prediction
相比于在線修改模型參數(shù),權(quán)值預(yù)測更為直接:在測試階段采用子網(wǎng)絡(luò)直接生成參數(shù)。
DFN(Dynamic Filter Network)與HyperNetwork是兩個經(jīng)典的實現(xiàn)運行時權(quán)值預(yù)測的CNN和RNN方案。具體來說,DFN采用濾波器生成網(wǎng)絡(luò)為卷積生成濾波器。曠視科技提出的WeightNet則將CondConv與SENet納入到同一框架中,它通過分組全連接層生成卷積核,在精度-Flops、精度-參數(shù)量方面取得了極具競爭力的結(jié)果。其他類似的方法有:CARAFE、VSR-DUF等。
Dynamic Features
在推理階段通過調(diào)整或生成參數(shù)的主要影響在于生成更動態(tài)的、信息豐富的特征,進(jìn)而增強了深度模型的表達(dá)能力。一種更直接的方式:采用輸入相關(guān)的軟注意力調(diào)整特征,見前面Figure6-c。這種類型的動態(tài)特征更易于得到,僅需要在計算圖上作微小調(diào)整。對于線性變換
F,在輸入特征執(zhí)行注意力
α等價于調(diào)整參數(shù):
F(x,Θ)?α=F(x,Θ?α)Channel-wise attention 一種常用軟注意力機制:動態(tài)縮放不同通道的特征,比如SENet:
~y=y?α=y?A(y)當(dāng)把卷積納入考慮時,上述過程空域成如下形式:
~y=(x?W)?α=x?(W?α)也就是說:特征上的注意力等價于動態(tài)權(quán)值的卷積。
不同形式的注意力得到了了探索,比如采用標(biāo)準(zhǔn)差提供更多統(tǒng)計信息,采用更高效的1D卷積替換全連接層。總而言之,通道注意力可以概括為以下三種形式:
~y=y?A(y)
~y=y?A(x)
~y=y?A(Conv(x))Spatial-wise attention 特征還可以在從空域位置角度采用注意力進(jìn)行動態(tài)調(diào)整以改進(jìn)深度模型的表達(dá)能力。更進(jìn)一步,通道與空域注意力還可以集成到一個框架中,比如BAM、CBAM。
Dynamic activation functions 前面兩種在激活函數(shù)之前通過軟注意力生成動態(tài)特征。近期一些工作開始嘗試通過動態(tài)激活函數(shù)提升模型的表達(dá)能力。比如,DY-ReLU采用N個線性變換
yc=maxn{ancxc+bnc}的最大值替換ReLU
yc=max(xc,0);此外還有曠視科技提出的FReLU、ACON。動態(tài)激活函數(shù)能能與現(xiàn)有網(wǎng)絡(luò)架構(gòu)兼容,已在不同視覺任務(wù)中證實了其有效性。
總而言之,由于簡單、有效性,軟注意力已在多個領(lǐng)域得到探索,而且,軟注意力能方便的與其他方法集成組合。
Spatial-wise Dynamic Network
在視覺學(xué)習(xí)中,并非所有位置對于最終的預(yù)測起均等貢獻(xiàn),這意味著:空域動態(tài)計算有極大潛力降低計算冗余。換句話說,僅需通過自適應(yīng)方式計算一定比例的像素或者區(qū)域即可做出一個正確的決策。已有研究表明:對于大部分輸入而言,低分辨率表達(dá)已足以得到一個不錯的性能,CNN采用相同分辨率的輸入無疑會造成冗余計算。
為此,空域動態(tài)網(wǎng)絡(luò)旨在采用圖像的不同空域位置進(jìn)行自適應(yīng)推理。按照動態(tài)計算的粒度,我們將其分為:
pixel level
region level
resolution level
Pixel-level Dynamic Networks
按照前述分類,像素級動態(tài)包含有以下兩種類型:
dynamic architectures:采用動態(tài)架構(gòu)處理每個像素;
dynamic parameters:采用動態(tài)參數(shù)處理每個像素。
Pixel-wise dynamic architectures
基于這樣的認(rèn)知:前景像素更具信息價值,其計算需求要比背景更高。一些網(wǎng)絡(luò)嘗試對每個像素調(diào)整其網(wǎng)絡(luò)架構(gòu),現(xiàn)有方案可以劃分為以下兩種:
Dynamic sparse convolution:僅在子集像素區(qū)域進(jìn)行卷積計算,見下圖。
Dynamic additional refinement:不同于采樣子集進(jìn)行計算計算,另外一條線是:現(xiàn)在整個特征層面執(zhí)行相對廉價的卷積,然后自適應(yīng)激活額外的模塊在特定像素上進(jìn)行更進(jìn)一步的提煉。
Pixel-wise dynamic parameters
不同于在像素子集上完整調(diào)整卷積計算,動態(tài)網(wǎng)絡(luò)還可以對每個像素執(zhí)行數(shù)據(jù)依賴的卷積以提升其表達(dá)能力或者感受野。現(xiàn)有方案主要有以下三種:
Dynamic weights,包含動態(tài)卷積、動態(tài)區(qū)域卷積等。
Dynamic reception fields,包含形變卷積、自適應(yīng)鏈接網(wǎng)絡(luò)等。
Pixel-wise dynamic feature,包含空域注意力。
Region-level Dynamic Networks
像素級動態(tài)網(wǎng)絡(luò)需要特定的計算庫以適配稀疏計算,在實際硬件上加速極為有限。另一種可選方案:在區(qū)域或者塊級進(jìn)行自適應(yīng)推理。主要包含兩條線路:
Dynamic transformations:常見于細(xì)粒度圖像分類;
Hard attention:比如GFNet、RA-CNN。
Resolution-level Dynamic Networks
上面的討論是將特征分成不同的區(qū)域,然后采用自適應(yīng)方式對不同區(qū)域進(jìn)行處理。然而,所涉及的稀疏采樣、裁剪奧做會導(dǎo)致實際效率的價格降低。另外,動態(tài)網(wǎng)絡(luò)可以把不同分辨率的圖像視作整體:低分辨率圖像對于“簡單”樣例足夠有效。現(xiàn)有的分辨率級動態(tài)網(wǎng)絡(luò)可以分為以下兩種:
Adaptive scaling ratios:采用自適應(yīng)縮放因子對特征進(jìn)行上/下采樣達(dá)到動態(tài)分辨率目的。
Dynamic resolution in multi-scale architectures:采用并行/級聯(lián)方式構(gòu)建多個子網(wǎng)絡(luò)以達(dá)到動態(tài)分辨率目的。
Inference and Training
從前面介紹可以看到:推理階段的數(shù)據(jù)依賴決策對于獲得高性能、高效率推理非常重要;此外,訓(xùn)練動態(tài)網(wǎng)絡(luò)通常比靜態(tài)網(wǎng)絡(luò)更具挑戰(zhàn)性。
由于參數(shù)的自適應(yīng)性可以通過SGD直接優(yōu)化訓(xùn)練得到,且無需特定技術(shù)。接下來我們主要針對離散決策、訓(xùn)練策略進(jìn)行介紹。
Decision Making of Dynamic Networks
推理階段的數(shù)據(jù)依賴決策主要有以下三種:
Confidence-based Criteria
Policy Networks
Gating Functions
Training of Dynamic Networks
從目標(biāo)與優(yōu)化兩個角度簡單匯總了訓(xùn)練動態(tài)網(wǎng)絡(luò)的策略:
Training objectives for efficient inference:在這方面有分為以下幾種:
Trainng multi-exit networks,
Encouraging sparsity,包含稀疏正則
Other techniques,包含知識蒸餾等
Optimization of non-differentiable functions:
Gradient estimation,包含STE等;
Reparameterization techniques,包含Gumbel Softmax等;
Reinforcement learning,包含RL等。
Application of Dynamic Networks
接下來,我們將匯總以下動態(tài)神經(jīng)網(wǎng)絡(luò)的典型應(yīng)用,見下表。
可以看到:
對于圖像識別來說,動態(tài)CNN大多為instance-wise和spatial-wise形式;
對于文本數(shù)據(jù)來說,其推理框架大多為itemporal-wis形式;
對于視頻相關(guān)任務(wù),三種類型的動態(tài)推理可同時使用;
動態(tài)網(wǎng)絡(luò)還可以用于解決深度學(xué)習(xí)中的基礎(chǔ)問題,比如:
緩解over-thinking降低整體計算量;
引入早退機制進(jìn)行長尾分類;
提升模型魯棒性
在多任務(wù)框架下降低訓(xùn)練耗時;
在遷移學(xué)習(xí)中尋找最優(yōu)微調(diào)策略。
編輯:jq
-
濾波器
+關(guān)注
關(guān)注
161文章
7816瀏覽量
178111 -
谷歌
+關(guān)注
關(guān)注
27文章
6168瀏覽量
105372 -
PAC
+關(guān)注
關(guān)注
0文章
72瀏覽量
27912 -
DFN
+關(guān)注
關(guān)注
0文章
11瀏覽量
8532
原文標(biāo)題:【綜述】一文概覽動態(tài)神經(jīng)網(wǎng)絡(luò)
文章出處:【微信號:cas-ciomp,微信公眾號:中科院長春光機所】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論