激活函數的主要作用是提供網絡的非線性建模能力。如果沒有激活函數,那麼該網絡僅能夠表達線性映射,此時即便有再多的隐藏層,其整個網絡跟單層神經網絡也是等價的。因此也可以認為,隻有加入了激活函數之後,深度神經網絡才具備了分層的非線性映射學習能力。
回到頂部
二、激活函數所具有的幾個性質非線性: 當激活函數是線性的時候,一個兩層的神經網絡就可以逼近基本上所有的函數了。但是,如果激活函數是恒等激活函數的時候(即f(x)=x),就不滿足這個性質了,而且如果MLP(Multi-Layer Perceptron,即多層感知器)使用的是恒等激活函數,那麼其實整個網絡跟單層神經網絡是等價的。
可微性: 當優化方法是基于梯度的時候,這個性質是必須的。
單調性: 當激活函數是單調的時候,單層網絡能夠保證是凸函數。
f(x)≈x: 當激活函數滿足這個性質的時候,如果參數的初始化是random的很小的值,那麼神經網絡的訓練将會很高效;如果不滿足這個性質,那麼就需要很用心地去設置初始值。
輸出值的範圍: 當激活函數輸出值是 有限 的時候,基于梯度的優化方法會更加穩定,因為特征的表示受有限權值的影響更顯著;當激活函數的輸出是 無限 的時候,模型的訓練會更加高效,不過在這種情況下,一般需要更小的learning rate。
回到頂部
三、四種激活函數3.1:SigmoidSigmoid 因其在 logistic 回歸中的重要地位而被人熟知,值域在 0 到 1 之間。Logistic Sigmoid(或者按通常的叫法,Sigmoid)激活函數給神經網絡引進了概率的概念。它的導數是非零的,并且很容易計算(是其初始輸出的函數)。然而,在分類任務中,sigmoid 正逐漸被 Tanh 函數取代作為标準的激活函數,因為後者為奇函數(關于原點對稱)。
優點:
缺點:
在分類任務中,雙曲正切函數(Tanh)逐漸取代 Sigmoid 函數作為标準的激活函數,其具有很多神經網絡所鐘愛的特征。它是完全可微分的,反對稱,對稱中心在原點。為了解決學習緩慢和/或梯度消失問題,可以使用這個函數的更加平緩的變體(log-log、softsign、symmetrical sigmoid 等等)。
優點:
缺點:
還是沒有改變Sigmoid函數的最大問題——由于飽和性産生的梯度消失。
3.3:修正線性單元(Rectified linear unit,ReLU)是神經網絡中最常用的激活函數。它保留了 step 函數的生物學啟發(隻有輸入超出阈值時神經元才激活),不過當輸入為正的時候,導數不為零,從而允許基于梯度的學習(盡管在 x=0 的時候,導數是未定義的)。使用這個函數能使計算變得很快,因為無論是函數還是其導數都不包含複雜的數學運算。然而,當輸入為負值的時候,ReLU 的學習速度可能會變得很慢,甚至使神經元直接無效,因為此時輸入小于零而梯度為零,從而其權重無法得到更新,在剩下的訓練過程中會一直保持靜默。
優點:
1.相比起Sigmoid和tanh,ReLU在SGD中能夠快速收斂,這是因為它線性(linear)、非飽和(non-saturating)的形式。
2.Sigmoid和tanh涉及了很多很expensive的操作(比如指數),ReLU可以更加簡單地實現。
3.有效緩解了梯度消失的問題。
4.在沒有無監督預訓練的時候也能有較好的表現。
缺點:
• 解決方案: 較小的學習率
3.4:Leaky ReLU經典(以及廣泛使用的)ReLU 激活函數的變體,帶洩露修正線性單元(Leaky ReLU)的輸出對負值輸入有很小的坡度。由于導數總是不為零,這能減少靜默神經元的出現,允許基于梯度的學習(雖然會很慢)。
優缺點:人工神經網絡中為什麼ReLu要好過于tanh和sigmoid function?
1.采用sigmoid等函數,算激活函數時(指數運算),計算量大,反向傳播求誤差梯度時,求導涉及除法和指數運算,計算量相對大,而采用Relu激活函數,整個過程的計算量節省很多。
2.對于深層網絡,sigmoid函數反向傳播時,很容易就會出現梯度消失的情況(在sigmoid接近飽和區時,變換太緩慢,導數趨于0,這種情況會造成信息丢失),這種現象稱為飽和,從而無法完成深層網絡的訓練。而ReLU就不會有飽和傾向,不會有特别小的梯度出現。
3.Relu會使一部分神經元的輸出為0,這樣就造成了網絡的稀疏性,并且減少了參數的相互依存關系,緩解了過拟合問題的發生(以及一些人的生物解釋balabala)。當然現在也有一些對relu的改進,比如prelu,random relu等,在不同的數據集上會有一些訓練速度上或者準确率上的改進。
一般來說,隐藏層最好使用 ReLU 神經元。對于分類任務,Softmax 通常是更好的選擇;對于回歸問題,最好使用 Sigmoid 函數或雙曲正切函數。
如果使用 ReLU,要小心設置 learning rate,注意不要讓網絡出現很多 "dead" 神經元,如果不好解決,可以試試 Leaky ReLU、PReLU 或者 Maxout.
比如GAN就是使用這個函數。
回到頂部
四、其它激活函數:ELU激活函數:
指數線性激活函數,同樣屬于對ReLU激活函數的x≤0部分的轉換進行指數修正,而不是和Leaky ReLU中的線性修正
五、激勵層建議:
Softmax:
做過多分類任務的同學一定都知道softmax函數。softmax函數,又稱歸一化指數函數。它是二分類函數sigmoid在多分類上的推廣,目的是将多分類的結果以概率的形式展現出來。下圖展示了softmax的計算方法:
下面為大家解釋一下為什麼softmax是這種形式。我們知道指數函數的值域取值範圍是零到正無窮。與概率取值相似的地方是它們都是非負實數。那麼我們可以
1)利用指數函數将多分類結果映射到零到正無窮;
2)然後進行歸一化處理,便得到了近似的概率。
總結一下softmax如何将多分類輸出轉換為概率,可以分為兩步:
1)分子:通過指數函數,将實數輸出映射到零到正無窮。
2)分母:将所有結果相加,進行歸一化。
下圖為斯坦福大學CS224n課程中對softmax的解釋:
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!