CNN卷積層:ReLU函數


卷積層的非線性部分

一、ReLU定義

ReLU:全稱 Rectified Linear Units)激活函數

定義

def relu(x):

  return x if x >0 else 0


#Softplus為ReLU的平滑版

 

二、傳統sigmoid系激活函數

Sigmoid與人的神經反應很相似,在很多淺層模型上發揮巨大作用

傳統神經網絡中最常用的兩個激活函數,Sigmoid系(Logistic-Sigmoid、Tanh-Sigmoid)被視為神經網絡的核心所在。

從數學上來看,非線性的Sigmoid函數對中央區的信號增益較大,對兩側區的信號增益小,在信號的特征空間映射上,有很好的效果。

從神經科學上來看,中央區酷似神經元的興奮態,兩側區酷似神經元的抑制態,因而在神經網絡學習方面,可以將重點特征推向中央區,將非重點特征推向兩側區。

無論是哪種解釋,看起來都比早期的線性激活函數(y=x),階躍激活函數(-1/1,0/1)高明了不少。

 

梯度消失問題

 sigmoid導數值的范圍(0,  0.25)

tanh的導數值范圍(0, 1)

可以看出sigmoid的弱點:對於深度網絡,sigmoid在最好的情況下也會把傳遞的導數數值縮小至0.25倍,下層網絡得到的梯度值明顯小很多。這會導致模型訓練效果很差

對於淺層網絡這種影響不明顯,但對於深度網絡,反向傳導逐漸變成了一個“漫長累積”的過程。

 

從訓練效果看,以不同激活函數的LeNet模型,訓練迭代數與Loss的關系——

sigmoid明顯弱一些,tanh與ReLU相近

 

ReLU的優點:沒有出現梯度消失問題

 

三、ReLU的線性性質

作為一個非線性函數,它還具備線性性質

     1 0 0

   [ 0 1 0 ]  x 向量 = 結果

     0 0 0

 對線性部分的輸出,結果等效於左乘一個非0即1的對角陣(向量負數位置對應對角陣位置上為0),仍可以被看作是一個線性操作

這一性質會使模型的理論分析變得簡單

 

四、ReLU的不足

1:過於寬廣的接受域,在接受較大數據時出現不穩定

可以對輸入數據上界進行限制,比如ReLU6

2:負數方向

輸入數據的負數部分,ReLU會把它置為0,那么梯度也為0,訓練過程中負數部分不會更新

解決:一系列的改進函數,比如 Leaky ReLU


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM