《Andrew Ng深度學習》筆記4
淺層神經網絡
1.激活函數
在神經網絡中,激活函數有很多種,常用的有sigmoid()函數,tanh()函數,ReLu函數(修正單元函數),泄露ReLu(泄露修正單元函數)。它們的圖形如下:
sigmoid()激活函數,範圍是y屬於{0, 1},所以0<= y <=1。但是sigmoid函數平均收斂是1,最後的效果可能不太好。
在這個基礎上有了tanh激活函數。圖形如下:
主要是把sigmoid函數平移得到的。但是這樣會有了優化,最終的平均收斂值為0,訓練效果更好。所以在實際中,一般是選用tanh代替sigmoid激活函數。
常用的還有ReLu激活函數圖形如下。
ReLu激活函數的升級版是泄露ReLu激活函數,圖形如下:
通過常用激活函數的對比,在實際中調參數的時候,還要結合交叉驗證來選擇最優的參數。
2.非線性激活函數
線性激活函數就是輸入線性關系輸出。一半輸出層是線性激活函數。但是在隱藏層單元中如果要實現復雜的神經網絡要用到非線性激活函數,所以不是簡單的相加,相減等關系。
3.激活函數的導數
sigmoid函數的導數如下。通過圖形和計算得知,sigmoid函數用在神經網絡中,學習速度有最大值和收斂值,而且平均收斂值是1。
tanh函數的導數如下。通過圖形和計算得知,tanh函數通過sigmoid函數平移得到,雖然學習速度基本一樣,但是最終的平均收斂值不一致,tanh是0,因此,最終的模型學習效果更好。
ReLu函數的導數如下。通過圖形和計算得知,ReLu函數的學習速度沒有收斂值,不會隨著輸入特征的維度增大而減低,因此,在實際中,ReLu激活函數使用很廣泛。
4.隨機初始化
隨機初始化在神經網絡中很重要,有時候如果初始化參數取不對,會造成沒有學習效果,因此在初始化神經網絡的參數時,需要通過計算來確定大概的初始化參數。有一個方法是隨機初始化。
《Andrew Ng深度學習》筆記4