做者 | 陳大鑫
算法
激活函數,想必你們再熟悉不過了,作深度學習很難不用到激活函數。網絡
現代神經網絡的激活層都要使用到非線性函數來激活神經元,而現代神經網絡每每層數都動不動上百層,那某一層的激活函數對這一層的全部神經元都要激活嗎?架構
若是某些神經元不激活,效果會不會更好呢?框架
若是是,那到底何時應該激活何時不激活呢?
函數
最近,馬寧寧、張祥雨、孫劍等人合做的一篇題爲《Activate or Not: Learning Customized Activation》的論文提出了一種新的激活函數:ACON,它能夠自適應地學習是否激活神經元。性能
論文連接:https//arxiv.org/abs/2009.04759.pdf學習
論文第一做者:馬寧寧, 香港科技大學與曠視聯合培養博士,導師quan long,主要研究方向爲計算機視覺和高性能卷積神經網絡。測試
馬寧寧博士這兩年來已經發過三篇ECCV 一做:ShuffleNet V二、WeightNet,FReLU:優化
其中的ShuffleNet V2在業界頗有名氣:
架構設計
孫劍博士不是別人,正是你們所熟知的曠視首席科學家、曠視研究院院長。
張祥雨博士是孫劍首個深度學習博士,曾經3年看完1800篇論文,目前是曠視研究院基礎模塊組負責人。
他也是CV圈大名鼎鼎的研究員,是曾經和何凱明大神合做ResNet的第二做者,
如下是AI科技評論對本論文的詳細介紹。
1
簡介
Relu激活函數已成爲神經網絡中的一個有效組成部分,是當前計算機視覺算法的基礎。隨着一系列後續研究,NAS(神經架構搜索)技術驗證了Swish激活在具備挑戰性的ImageNet數據集上能得到顯著提高。許多後續的神經網絡結構經過使用Swish得到了更好的性能。
咱們的目標是解釋這個搜索結果背後的機制,並提出更有效的激活函數。儘管NAS在現代激活上取得了新進展,但一個天然的問題是:NAS搜索的Swish事實上是如何工做的?
咱們發現Swish能夠表示爲ReLU的簡單而通用的平滑近似:
咱們把該方法稱爲ACON,它遵循從ReLU到Swish轉換的原則,經過一樣的平滑近似公式將ReLU族轉換爲ACON族。
轉換後的函數(ACON-A,ACON-B,ACON-C)是平滑可微的,Swish是其中的一個特例(ACON-A)。
ACON概念簡單,不增長計算開銷,可是它顯著提升了準確率。爲了獲得這個結果,咱們認爲梯度中固定的上下界是阻礙精度提升的主要緣由,並給出了具備可學習上下界的ACON。
直觀上來講, ACON是ReLU到Swish轉換的擴展 ,經過優化轉換因子來學習在激活或不激活之間切換。
然而,實驗代表,直接優化參數不能很好地在線性和非線性之間進行切換。
所以,爲了快速學習,咱們顯式地優化了轉換因子,並提出了 Meta-ACON 來學習是否激活(見圖1)。
圖1:咱們展現了一個ACON,它能夠學習是否自適應地激活神經元。左:ReLU網絡;右:學習激活(橙色)或不激活(白色)的ACON網絡。
儘管它看起來只是一個微小的改變,但meta-ACON帶來很大的影響:它提升了各類結構(甚至是高度優化和極深的SENet-154)的準確性,並經過元學習提供了一個新的架構設計空間,能夠是層級、通道級或像素級的設計空間。在所提供的設計空間中的具體研究不是本文的重點,可是將來的研究的一個重要方向。
咱們的工做總結以下:
一、咱們發現NAS搜索的Swish能夠被解釋爲ReLU的平滑近似;
二、一樣地,咱們對ReLU族作一樣的平滑近似,並獲得簡單而有效的新型激活函數ACON族;
三、咱們提出了Meta-ACON,它能夠顯式地學習激活或不激活神經元,顯著地提升了性能,爲新的架構設計空間提供了可能。
爲了驗證ACON的有效性,咱們經過在具備挑戰性的ImageNet任務上的實驗代表ACON有顯著的提高:它在MobileNet-0.25和ResNet-152上分別提升了6.7%和1.8%。每層激活度的不肯定性也能夠做爲一個正則化器,有助於泛化,並在目標檢測和語義分割任務上證實了該泛化方法的有效性。
2
ACON
在本文中,咱們首先說明如何使用平滑近似公式:平滑最大值來執行ReLU到Swish的轉換。接下來,咱們轉換ReLU族中的其餘激活函數,這是一個天然和直觀的想法,並使Swish成爲ACON的一個特例。
最後,經過一個簡單的轉換因子,ACON能夠學習激活(非線性)或非(線性)激活,咱們引入了Meta-ACON,它學習顯式地優化因子,並顯示出顯著的提高。
平滑最大值
咱們簡單回顧平滑最大值開始,考慮n個值的標準最大函數max(x1,…,xn),咱們有其平滑可微的近似值:
式中,β爲轉換因子:當β→∞時,Sβ→max;當β→0時,Sβ→算術平均值。
在神經網絡中,許多常見的激活函數都是 的函數形式(例如 及其變體),其中 和 表示線性函數。咱們的目標是用這個公式來近似這些激活函數。所以,咱們考慮當n=2時,咱們將σ表示爲Sigmoid函數,近似值爲:
ACON-A
當 ,則 ,咱們稱之爲ACON-A,它剛好是Swish的公式。
Swish是近年來出現的一種新的激活函數,並經過NAS驗證了其有效性,雖然近年來獲得了普遍的應用,但它提升性能的緣由卻缺少合理的解釋。
從上面的角度來看,Swish實際上是ReLU的一個平滑近似。
ACON-B
直觀上,基於上面的平滑近似方程,咱們能夠將ReLU族中其餘基於最大值的激活函數(例如Leaky ReLU、PReLU等)轉換爲ACON族。
接下來,咱們給出PReLU的平滑近似。它的原始形式是f(x)=max(x,0)+p·min(x,0),其中p是可學習的參數,初始化爲0.25。然而,在大多數狀況下p<1,在這種假設下,咱們將其改寫爲: 。
所以咱們考慮在等式2中 時的狀況。
獲得如下咱們稱之爲ACON-B的新激活:
ACON-C
咱們提出了一個簡單且更通常的狀況,稱之爲ACON-C。咱們採用相同的雙參數函數,並附加了一個超參數。ACON-C遵循ACON-B的原則,簡單的經過超參數對特徵圖縮放。形式上,設 , :
咱們對ACON-C的定義是一個很是簡單和通常的狀況(見圖二、圖3)。
圖2
圖3
此外,在ReLU族中可能有許多更復雜的狀況(例如ηa(x)和ηb(x)的更復雜的公式),這超出了本文的範圍。咱們重點討論這個簡單形式的轉換性質。
一階導數的上下界
Swish有固定的上/下界(圖2b),可是ACON-C容許梯度有可學習的上/下界(圖2c)。形式上計算ACON-C的一階導數及其極限以下:
爲了計算上限/下限,即最大/最小值,須要計算二階導數:
令 ,簡化獲得 ,其中 , 解方程獲得 , 這樣就能夠獲得等式5的最大值和最小值:
這與一階導數中具備固定上/下限(1.0998,-0.0998)的Swish不一樣。
在Swish中,超參數β只決定一階導數漸近於上界和下界的速度,但界是可學習的,並由ACON-C中的p1和p2決定(見圖2c)。可學習邊界對於簡化優化是必不可少的,咱們經過實驗代表,這些可學習的上下界是提升結果的關鍵。
表1:ReLU族和ACON族總結,表示Sigmoid。
元ACON(Meta-ACON)
當轉換因子β控制激活爲非線性或線性時,ACON將激活轉換爲激活或不激活。具體來講,當β→∞時, ;當β→0時, 。
所以,與傳統的激活如ReLU族不一樣,ACON容許每一個神經元自適應學習激活或不激活(見圖1)。這種自適應的激活行爲有助於提升泛化和傳輸性能。
這在咱們的自適應激活中起着關鍵做用,並促使咱們提出如下meta ACON。
咱們提出的概念很簡單:依賴輸入樣本 來顯式地學習轉換因子β。
咱們的目的不是提出一個具體的結構,而是在生成函數 中提供一個新的設計空間。
設計空間
這個概念比特定的體系結構更重要,它能夠是逐層級、逐通道級、逐像素級的結構。咱們的目標是給出一些簡單的設計實例,這些實例可以顯著提升精度,並說明這種新的設計空間的重要性。
咱們簡要地使用路由函數來計算基於輸入特徵的β,並給出一些簡單的結構。
一、 結構能夠是逐層級的 ,這意味着每一層共享相同的轉換因子。
在形式上,咱們有:
二、 逐通道級的結構 ,即每一通道中的元素共享相同的轉換因子。
形式上用 來表示,用 來表明參數(默認r=16)。
三、 像素級結構 ,全部元素都使用獨特的因子。
雖然有不少結構設計方法,但咱們只是簡單地給出了一個很是簡單的結構,目的是給出一個像素級的例子。
在形式上,咱們有: 。
咱們注意到咱們的meta-ACON有一個簡單的結構,對於下面的meta-ACON實驗,除非另有說明,咱們使用通道結構和ACON-C。
雖然更復雜的設計有可能提升性能,但不是本文的重點。
表2:ACON在MobileNets,、ShuffleNetV2和ResNets上的複雜對比:ImageNet數據集的top-1偏差率(在224x224輸入大小上訓練和測試)。
表3:meta-ACON在MobileNets,、ShuffleNetV2和ResNets上的複雜對比:ImageNet數據集的top-1偏差率(在224x224輸入大小上訓練和測試)。
3
實驗
圖像分類
咱們對具備挑戰性的ImageNet 2012分類數據集以及全面消融進行了完全的實驗比較。 對於訓練,咱們遵循常規作法,使用相同輸入的224x224大小對全部模型進行訓練,並報告標準的top-1錯誤率。
咱們首先在輕量cnn(MobileNets和ShuffleNetV2)和深度cnn(ResNets)上評估咱們的ACON方法。
對於輕量級cnn,咱們遵循中的訓練配置;對於較大號的ResNet,咱們使用0.1的線性衰減學習率調度,權重衰減爲1e-4,批量大小爲256,迭代次數爲600k。
咱們進行了大量的實驗來分析ACON激活函數的行爲,只需簡單地改變不一樣網絡結構和不一樣模型大小的全部激活。基線網絡是ReLU網絡,ACON網絡中的額外參數能夠忽略不計。
咱們從表2和圖2中有三個主要的觀察結果:
一、 與基於max的函數相比,ACON-A、ACON-B和ACON-C都顯著提升了計算精度,這顯示了可微和平滑轉換的好處。
二、ACON-C的性能優於ACON-A(Swish)和ACON-B,這得益於ACON-C一階導數的自適應上下界。
三、儘管隨着模型的深刻和擴大(ResNet-101上的0.1%),ACON-A(Swish)顯示出了微小的改進,但咱們仍然從ACON-C得到了連續的精度提升(ResNet-101上爲0.7%)。
下一步,咱們計算Meta-ACON函數。對於輕量CNN,咱們將全部ReLU激活改成meta-ACON,對於deep-CNN(ResNet-50,ResNet-101),咱們將每一個構建塊中的一個ReLU(通過3×3卷積後)改成meta-ACON,以免過擬合問題。
表3中的結果代表,咱們可以在全部網絡結構中得到顯著的精度增益。對於輕量化的cnn,meta-ACON在MobileNetV1 0.25上提升了6.7%,在300M級別的模型上仍然有大約3%的精確度提升。對於更深層次的ResNet,meta-ACON仍然顯示出顯著的改進,在ResNet-50和ResNet-101上分別是2.0%和1.7%。
爲了揭示其背後緣由,在下圖中比較了ResNet-50中學習到的β分佈。
ACON在數據集中的全部不一樣樣本具備相同的β分佈,可是在meta-ACON中,不一樣的樣本具備不一樣的非線性程度,而不是在ACON中共享相同的非線性程度。具體地說,一些樣本每每有更多接近於零的值,這意味着對於此類樣本,網絡的非線性程度較低。
而有些樣本每每有更多遠離零的值,這意味着網絡會自適應地爲這些樣本學習更高的非線性。 這是一個直觀合理的結果,由於不一樣的樣本一般具備大相徑庭的特性和性質。
消融研究
與其餘激活的比較
meta-ACON中的設計空間
咱們在meta-ACON中提供了一個新的架構設計空間。
咱們的目標是提供一個廣闊的設計空間,爲將來的神經網絡設計提供更多的可能性。
下表顯示了ShuffleNetV2 0.5××的比較。結果代表,這三個層次都能顯著提升精度,只要設計更細緻,就能夠有更高效的模塊。
meta-ACON中的轉換因子分佈
咱們採用元學習模塊來明確學習轉換因子β。圖4顯示了學習因子在ResNet-50的最後一個激活層的分佈,咱們比較meta-ACON和ACON,並隨機選擇7個樣原本顯示結果。
分佈代表三個結論:
一、meta-ACON學習比ACON具備更普遍的分佈;
二、每一個樣本都有本身的轉換因子,而不是共用一個;
三、有些樣本有更多接近於零的值,這意味着有些神經元在這一層中每每不被激活。
咱們對輕量cnn和深度cnn進行了全面的比較,下表顯示,meta-ACON在全部網絡結構上都顯著優於SENet。
此外,咱們在高度優化的超大網絡SENet-154上進行了實驗,這對進一步提升精度具備挑戰性。爲了公平性比較,咱們從新實現了SENet-154,並在相同的實驗環境下將激活改成ACON。
下表顯示告終果:
泛化性能
爲了評估不一樣激活的結果,咱們使用ImageNet預訓練的ResNet-50做爲主幹網絡。
表8 :在COCO目標檢測任務上比較不一樣的激活函數,在以ResNet-50做爲 backbone的RetinaNet給出結果。
語義分割
咱們在CityScape數據集上進一步給出了語義分割的結果。咱們使用PSPNet做爲分割框架,ResNet-50做爲主幹網絡。
表9 在CityScape語義分割任務上比較不一樣的激活函數,在以ResNet-50做爲 backbone的PSPNet上給出結果。
4
結論
在這項工做中,咱們提出了一個通用的和有效的激活函數來自適應地學習激活或不激活。 咱們呈現了一個對ReLU族作平滑近似的ACON族激活函數,對更多的ReLU族函數作平滑近似是一個頗有前途的將來方向,但超出了本文的重點。
此外,爲了顯式的學習在線性和非線性之間切換的轉換因子,咱們提出了meta-ACON,它也提供了一個很普遍的設計空間 。咱們的方法簡單而高效,咱們證實了它在輕量化模型上的有效性,甚至在高度優化的SENet-154上顯著提升了精度。咱們指望這種強大而有效的激活範式獲得普遍的應用。