“激活函數(shù)”,又稱“非線性映射函數(shù)”厌衙,是深度卷積神經(jīng)網(wǎng)絡(luò)中不可或缺的關(guān)鍵模塊距淫。可以說婶希,深度網(wǎng)絡(luò)模型其強(qiáng)大的表示能力大部分便是由激活函數(shù)的非線性帶來的榕暇。
1.Sigmoid型函數(shù)
Sigmoid型函數(shù)也稱Logistic函數(shù):
其函數(shù)形狀如下圖(a)所示。很明顯可以看出喻杈,經(jīng)過Sigmoid型函數(shù)作用后彤枢,輸出響應(yīng)的值域被壓縮到[0, 1] 之間,而0對應(yīng)了生物神經(jīng)元的“抑制狀態(tài)”筒饰,1則恰好對應(yīng)了“興奮狀態(tài)”缴啡。但對于Sigmoid函數(shù)兩端大于5(或小于?5)的區(qū)域,這部分輸出會被壓縮到1(或0)瓷们。這樣的處理會帶來梯度的“飽和效應(yīng)”(saturation effect)业栅。不妨對照Sigmoid型函數(shù)的梯度圖(圖(b)),大于5(或小于?5)部分的梯度接近0换棚,這會導(dǎo)致在誤差反向傳播過程中導(dǎo)數(shù)處于該區(qū)域的誤差很難甚至無法傳遞至前層式镐,進(jìn)而導(dǎo)致整個網(wǎng)絡(luò)無法正常訓(xùn)練。
從上圖(a)中可觀察到Sigmoid型激活函數(shù)值域的均值并非為0固蚤,而是全為正娘汞,這樣的結(jié)果實(shí)際上并不符合我們對神經(jīng)網(wǎng)絡(luò)內(nèi)數(shù)值的期望(均值)應(yīng)為0的設(shè)想。
2.tanh(x) 型函數(shù)
tanh(x) 型函數(shù)是在Sigmoid型函數(shù)基礎(chǔ)上為解決均值問題提出的激活函數(shù):
tang(x) = 2S(2x)-1夕玩。tanh(x) 型函數(shù)又稱作雙曲正切函數(shù)(hyperbolic?tangent function)你弦,其函數(shù)范圍是(?1,+1),輸出響應(yīng)的均值為0燎孟。但由于tanh(x) 型函數(shù)仍基于Sigmoid型函數(shù)禽作,使用tanh(x) 型函數(shù)依然會發(fā)生“梯度飽和”現(xiàn)象。
3.修正線性單元(ReLU)
為了避免梯度飽和現(xiàn)象的發(fā)生揩页,將修正線性單元(Rectified Linear Unit旷偿,簡稱ReLU)引入神經(jīng)網(wǎng)。ReLU函數(shù)是目前深度卷積神經(jīng)網(wǎng)絡(luò)中最為常用的激活函數(shù)之一。ReLU函數(shù)實(shí)際上是一個分段函數(shù)萍程,其定義為:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?ReLU(x) = MAX{0, x}.
與前兩個激活函數(shù)相比:ReLU函數(shù)的梯度在x ≥ 0 時為1浦妄,反之為0(如上圖所示)伤塌;對x ≥ 0 部分完全消除了Sigmoid型函數(shù)的梯度飽和效應(yīng)瑰妄。計算復(fù)雜度上翅楼,ReLU函數(shù)也相對前兩者的指數(shù)函數(shù)計算更為簡單。同時忍法,實(shí)驗(yàn)中還發(fā)現(xiàn)ReLU函數(shù)有助于隨機(jī)梯度下降方法收斂潮尝,收斂速度約快6倍左右。不過饿序,ReLU函數(shù)也有自身缺陷勉失,即在x < 0 時,梯度便為0嗤堰。換句話說戴质,對于小于0的這部分卷積結(jié)果響應(yīng),它們一旦變?yōu)樨?fù)值將再無法影響網(wǎng)絡(luò)訓(xùn)練——這種現(xiàn)象被稱作“死區(qū)”踢匣。
4.Leaky ReLU
為了緩解“死區(qū)”現(xiàn)象,研究者將ReLU函數(shù)中x < 0 的部分調(diào)整為f(x) = α·x戈抄,其中α 為0.01或0.001數(shù)量級的較小正數(shù)离唬。這種新型的激活函數(shù)被稱作“Leaky ReLU”:
可以發(fā)現(xiàn),原始ReLU函數(shù)實(shí)際上是Leaky ReLU函數(shù)的一個特例划鸽,即α = 0输莺。不過由Leaky ReLU中α 為超參數(shù),合適的值較難設(shè)定且較為敏感裸诽,因此Leaky ReLU函數(shù)在實(shí)際使用中的性能并不十分穩(wěn)定嫂用。
5.參數(shù)化ReLU
參數(shù)化ReLU的提出很好的解決了Leaky ReLU中超參數(shù)α 不易設(shè)定的問題:參數(shù)化ReLU直接將α 也作為一個網(wǎng)絡(luò)中可學(xué)習(xí)的變量融入模型的整體訓(xùn)練過程。在求解參數(shù)化ReLU時丈冬,文獻(xiàn)中仍使用傳統(tǒng)的誤差反向傳播和隨機(jī)梯度下降嘱函,對于參數(shù)α 的更新遵循鏈?zhǔn)椒▌t,具體推導(dǎo)細(xì)節(jié)在此不過多贅述埂蕊,感興趣的讀者可參考文獻(xiàn)Surpassing human-level performance on ImageNet classification往弓。實(shí)驗(yàn)結(jié)果驗(yàn)證方面,曾在一個14層卷積網(wǎng)絡(luò)上對比了ReLU和參數(shù)化ReLU在ImageNet 2012數(shù)據(jù)集上的分類誤差(top-1和top-5)蓄氧。
網(wǎng)絡(luò)結(jié)構(gòu)如表1函似,每層卷積操作后均有參數(shù)化ReLU操作。表中第二列和第三列數(shù)值分別表示各層不同通道(channel)共享參數(shù)α 和獨(dú)享參數(shù)α1時網(wǎng)絡(luò)自動學(xué)習(xí)的α 取值喉童。
實(shí)驗(yàn)結(jié)果如表2中所示撇寞。可以發(fā)現(xiàn),在分類精度上蔑担,使用參數(shù)化ReLU作為激活函數(shù)的網(wǎng)絡(luò)要優(yōu)于使用原始ReLU的網(wǎng)絡(luò)牌废,同時自由度較大的各通道獨(dú)享參數(shù)的參數(shù)化ReLU性能更優(yōu)。另外钟沛,需指出表1中幾個有趣的觀察:
????????1)與第一層卷積層搭配的參數(shù)化ReLU的α 取值(表1中第一行0.681和0.596)遠(yuǎn)大于ReLU中的0畔规。這表明網(wǎng)絡(luò)較淺層所需非線性較弱。同時恨统,我們知道淺層網(wǎng)絡(luò)特征一般多為表示“邊緣”叁扫、“紋理”等特性的泛化特征。這一觀察說明對于此類特征正負(fù)響應(yīng)(activation)均很重要畜埋;這也解釋了固定α 取值的ReLU(α = 0)和Leaky ReLU相比參數(shù)化ReLU性能較差的原因莫绣。
????????2)請注意獨(dú)享參數(shù)設(shè)定下學(xué)到的α 取值(表1中的最后一列)呈現(xiàn)由淺層到深層依次遞減的趨勢,說明實(shí)際上網(wǎng)絡(luò)所需的非線性能力隨網(wǎng)絡(luò)深度增加而遞增悠鞍。
不過萬事皆具兩面性对室,參數(shù)化ReLU在帶來更大自由度的同時,也增加了網(wǎng)絡(luò)模型過擬合的風(fēng)險咖祭,在實(shí)際使用中需格外注意掩宜。
6.隨機(jī)化ReLU
另一種解決α 超參設(shè)定的方式是將其隨機(jī)化,這便是隨機(jī)化ReLU么翰。對于隨機(jī)化ReLu中α 的設(shè)定牺汤,其取值在訓(xùn)練階段服從均勻分布,在測試階段則將其指定為該均勻分布對應(yīng)的分布期望(l+u)/2:
7.指數(shù)化線性單元(ELU)
顯然檐迟,ELU具備ReLU函數(shù)的優(yōu)點(diǎn),同時ELU也解決了ReLU函數(shù)自身的“死區(qū)”問題码耐。不過追迟,ELU函數(shù)中的指數(shù)操作稍稍增大了計算量。實(shí)際使用中骚腥,ELU中的超參數(shù)λ 一般設(shè)置為1敦间。