我是小玉,一個平平無奇的資料小天才!
最近在回顧神經網絡這裡知識,發現自己還是有很多知識點掌握不夠清楚明了,既然開始搞就要搞得明明白白,會了神經網絡等于掌握了大半個機器學習。
跟大家分享一下我在看這裡時候遇到的一些常見問題,神經網絡不同于傳統的機器學習方法,它由于更多的性質在機器學習領域得到了大量應用。但是想要真的弄清楚神經網絡還需要下下功夫。
激活函數:
我們在學習神經網絡的時候必不可免的會聽到一個詞叫做激活函數,這個東西就是對于神經網絡來說,起了很大的作用,為神經網絡添加了更多的非線性因素,舉個例子:
上圖是這是一個簡單的線性分類問題,正常情況下我們隻需要一條直線就可以很好地分類。
但是當我們碰到下圖問題時,無法通過一條直線将樣本分類出來,需要我們加入非線性因素才可以将樣本分類好,而我們的激活函數就是我們要加入的非線性因素:
我們在深入了解激活函數的時候需要先知道什麼是硬飽和什麼是軟飽和!
假設h(x)是一個激活函數。
1.當我們的n趨近于正無窮,激活函數的導數趨近于0,那麼我們稱之為右飽和。
2.當我們的n趨近于負無窮,激活函數的導數趨近于0,那麼我們稱之為左飽和。
3.當一個函數既滿足左飽和又滿足右飽和的時候我們就稱之為飽和,典型的函數有Sigmoid,Tanh函數。
,則稱其為右硬飽和。如果對于任意的x,如果存在常數c,當x<c時,恒有
,則稱其為左硬飽和。既滿足左硬飽和又滿足右硬飽和的我們稱這種函數為硬飽和。
4.對于任意的x,如果存在常數c,當x>c時,恒有
趨近于0,則稱其為右軟飽和。如果對于任意的x,如果存在常數c,當x<c時,恒有
趨近于0,則稱其為左軟飽和。既滿足左軟飽和又滿足右軟飽和的我們稱這種函數為軟飽和。
常用的激活函數:
1、Sigmoid函數:
Sigmoid函數的優點:1.求導容易。 2.Sigmoid函數的輸出映射在(0,1)之間,單調連續輸出範圍有限,優化穩定可以用作輸出層。
缺點:1.由于其軟飽和性,容易造成梯度消失問題。2.其輸出沒有以0為中心。
2、Tanh函數:
Tanh函數的優點:1.收斂速度比Sigmoid函數快。 2. 其輸出以0為中心。
缺點:還是出現軟飽和現象,梯度消失問題并沒有解決。
3、Relu函數:
Relu函數的優點:1.在SGD(随機梯度下降算法)中收斂速度夠快。2.不會出現像Sigmoid那樣梯度消失問題。3.提供了網絡稀疏表達能力。4.在 無監督訓練中也有良好的表現。
缺點:1.不以0為中心。
2.前向傳導(forward pass)過程中,如果 x < 0,則神經元保持非激活狀态,且在後向傳導(backward pass)中「殺死」梯度。這樣權重無法得到更新,網絡無法學習。神經元死亡是不可逆的。
4、LReLU、PReLU與RReLU函數:
LRelu函數:
公式:
LRelu的優點:緩解了Relu神經元死亡的問題。
PRelu函數:
公式:
其中
是超參數。這裡引入了一個随機的超參數
,它可以被學習,因為你可以對它進行反向傳播。這使神經元能夠選擇負區域最好的梯度,有了這種能力,它們可以變成 ReLU 或 Leaky ReLU。負值部分的斜率是根據資料來定的,而非預先定義的。
RRelu函數:
RReLU也是Leaky ReLU的一個變體。在RReLU中,負值的斜率在訓練中是随機的,在之後的測試中就變成了固定的了。RReLU的亮點在于,在訓練環節中,aji是從一個均勻的分布U(I,u)中随機抽取的數值。
RReLU中的aji是一個在一個給定的範圍内随機抽取的值,這個值在測試環節就會固定下來。
5、ELU函數:
優點:右側的線性部分能夠緩解梯度消失,左側的軟飽和能夠對于輸入變化魯棒,而且收斂速度更快。
關于神經網絡的激活函數,彙總有26 種,但是常用的也就這幾種,大家掌握好這幾種激活函數也就可以将神經網絡進行靈活應用啦!
有幫助就點個贊呗!