Dynamic ReLU——微軟提出的動態relu激活函數

論文地址:https://arxiv.org/pdf/2003.10027.pdf

摘要

ReLU是深度神經網絡中常用的激活函數。到目前爲止,ReLU及其推廣(非參數或參數)都是靜態的,對所有的輸入樣本執行相同的操作。在本文中,我們提出了Dynamic ReLU激活函數(DY-ReLU),它的參數依賴於所有輸入。其關鍵在於DY-ReLU將全局上下文編碼爲超函數,並相應地調整分段線性激活函數。與靜態模型相比,DY-ReLU的額外計算開銷可以忽略不計,但其表現能力顯著提高,特別是對於輕量神經網絡。僅僅通過簡單地在MobileNetV2上使用DY-ReLU ,ImageNet分類的最高精度就可以從72.0%提高到76.2%,而計算量只增加了5%。

3 Dynamic ReLU

我們將在本節中描述dynamic ReLU (DY-ReLU)。它是一個參數依賴於輸入的動態分段線性函數。DY-ReLU既不增加網絡的深度,也不增加網絡的寬度,但可以有效地增加模型能力,而額外的計算成本可以忽略不計。
本節組織如下。首先介紹了通用的動態激活方法。然後,給出了DY-ReLU的數學定義和實現方法。最後,我們將其與之前的工作進行了比較。

3.1 Dynamic Activation

對於一個給定的輸入向量x,動態激活的定義是fθ(x) (x),θ(x) 是一個可學習的參數。如圖1所示,它包含兩個函數:

1.超函數 θ(x):爲激活函數計算參數

2.激活函數fθ(x)(x):計算激活值,參數由θ(x) 生成

注意,超函數對所有輸入元素(xc∈x)的全局上下文進行編碼,以確定合適的激活函數。這使得它比它的靜態對手(例如sigmoid,tanh, h-swish [13], ReLU [28,18], LeakyReLU [26], PRelu[11])具有更大的表示能力,特別是對於輕量級模型(例如MobileNet)。接下來,我們將討論動態ReLU。

3.2 Definition and Implementation of Dynamic ReLU  

定義:讓我們將傳統的或靜態的ReLU函數表示爲 y= max{x,0},其中x是輸入向量。通道的激活計算yc= max{xc,0},其中xc爲第c通道上的輸入。DY-ReLU定義爲多個(K)線性函數的最大值:

其中線性係數a、b是θ(x)的輸出: 

C是通道數,注意每個通道的激活參數是需要考慮所有的輸入通道,ac和bc不僅依賴於第c通道的輸入還依賴其他通道的輸入。 

 Dynamic ReLU 的三種形式

DY-ReLU-A(空間和通道都共享):所有空間位置和通道共享相同的分段線性激活函數。其超函數的網絡結構(如圖2-(a))與DY-ReLU B相似,只是輸出的數目減少到2K。與DY-ReLU-B相比,DY-ReLU-a的計算量較小,但表示能力較弱。

DY-ReLU-B(空間共享通道不共享):第3.2節介紹了實現細節,其網絡結構如圖2-(B)所示。激活函數需要由超函數計算2KC參數(每個通道2K)。

DY-ReLU-C (空間通道都不共享):如圖2-(c)所示,每個輸入元素xchw都有一個獨立的激活函數,下標chw表示第c通道上特徵圖(維度爲C*H*W)的第h行w列。這會導致輸出維度過大(2KCHW)而無法使用全連接層來生成。我們通過將空間位置與通道分離來解決這個問題。特別的,我們引入了一個額外的分支來計算空間注意力,最後的輸出是按通道參數和空間注意力來計算得到的。空間注意力分支很簡單,只包括一個1*1卷積、一個單輸出通道和一個歸一化函數,該歸一化函數是一個有上界的softmax函數,如下所示:

其中,z是1*1卷積的輸出,τ是temperature,γ是標量。softmax被γ放大以防止梯度消失。我們經驗地設置γ=HW/3,使平均注意πh,w爲1/3。一個大的temperature(τ=10)用於防止訓練早期出現稀疏現象。上界1將注意力限制在0和1之間。

實驗結果

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章