天天看點

機器學習-7:MachineLN之激活函數

你要的答案或許都在這裡:小鵬的部落格目錄

很長一段時間都在想,有些問題不去弄明白為什麼,遇到瓶頸就傻逼了,一個bug整你一個月,原來隻是一個細節問題,就好如:你不知道從哪裡來? 又怎麼知道往哪裡去? 現在遺留的小問題,将來都會是大問題!

真的,有時候需要回過頭來重新開始,整理總結再去前行,也許會走的更遠。

那麼我的問題是:

(1)什麼是激活函數?

(2)激活函數的作用是什麼?

(3)激活函數有哪些?

(4)各自的優缺點是什麼?(解答完1、2、3,就有了答案了)

看到這裡,你的答案是什麼? 下面是我的答案:

(1)什麼是激活函數?

激活函數就是加在在神經元後的函數,下圖所示(例如我們前邊提到的在cnn卷積候連接配接的函數relu,還有Sigmoid、tanh、prelu等等),那麼它有什麼用呢?不加會怎麼樣?(2)中回答;

機器學習-7:MachineLN之激活函數

當然你也最好了解下面概念,到提起梯度消失就容易了解了,正是因為這麼飽和把梯度會傳的時候越來越小,使得更新參數失敗,整個網絡癱瘓:

機器學習-7:MachineLN之激活函數

(2)激活函數的作用是什麼?

簡單說:為了解決非線性問題,不加激活函數隻能處理線性問題。

下面圖來自公衆号憶臻筆記,一個用心在做的公衆号。

先來看一個圖:左側的網絡對應其下方的數學表達式,是一個線性方程(如果這裡你還問為什麼,那麼see you),令其為0,可以畫出一條直線,就是右側的圖了,右上方就是y>0的區域,左下方就是y<0的區域,對吧? 那麼它是線性的。

機器學習-7:MachineLN之激活函數

那麼你再看下面這個圖:網絡結構用右側的表達式表示。

機器學習-7:MachineLN之激活函數

你可以将右側的表達式整理一下,其實它是這樣的,你會發現原來是它也是線性的。

機器學習-7:MachineLN之激活函數

對,你想的沒錯,沒有激活函數的網絡隻能處理線性問題(佩服大牛!),在看下面的圖,在神經元後加上激活函數,至少可以保證輸出是非線性的,那麼能解決非線性問題嗎?再往下走。

機器學習-7:MachineLN之激活函數
機器學習-7:MachineLN之激活函數

然後看下圖,多個神經元的情況:

機器學習-7:MachineLN之激活函數
機器學習-7:MachineLN之激活函數

在看一下大神的圖:

機器學習-7:MachineLN之激活函數
機器學習-7:MachineLN之激活函數

是的通過加上激活函數就可以解決這種非線性問題;

機器學習-7:MachineLN之激活函數

(3)激活函數有哪些?

詳細介紹一個sigmod的激活函數:

機器學習-7:MachineLN之激活函數
機器學習-7:MachineLN之激活函數

左側是sigmoid函數圖,右側是sigmoid導數的函數圖,由DeepLN之CNN權重更新中的公式5,可知在梯度回傳過程中激活函數的影響梯度的問題,當資料落在sigmoid導數的紅色區域時就會造成梯度很小,甚至梯度消失;這個問題可以通過改善激活函數來改善,當然也可以通過改變激活函數的輸入x來改善,怎麼改善?把x重新拉回到0附近不就ok了嗎!那麼你想到了什麼?BN啊!!!那麼你還有什麼方法?修改激活函數啊,說過了,還有什麼?resdual啊!!!對嗎?哦,那麼還可以有什麼?當然真實使用的時候都是一起使用的,例如resdual+bn+relu等(當然bn還有其他作用,這隻是其一)。

機器學習-7:MachineLN之激活函數
機器學習-7:MachineLN之激活函數

激活函數還有tanh函數、ReLU函數、ELU函數、PReLU函數等,為什麼提取出來? 解決什麼問題? 上面提到的左飽和、右飽和或者稱為單側抑制,對你了解這麼激活函數有什麼幫助?

展望,接下來更新:

DeepLN之BN;

MachineLN之過拟合;

MachineLN之資料歸一化;

DeepLN之優化(sgd等):

...

感覺這些是在一起的,之後補習傳統機器學習的理論知識 到 實踐;

還有之前提到的;

推薦閱讀:

1. 機器學習-1:MachineLN之三要素

2. 機器學習-2:MachineLN之模型評估

3. 機器學習-3:MachineLN之dl

4. 機器學習-4:DeepLN之CNN解析

5. 機器學習-5:DeepLN之CNN權重更新(筆記)

6. 機器學習-6:DeepLN之CNN源碼

7. 機器學習-7:MachineLN之激活函數

8. 機器學習-8:DeepLN之BN

9. 機器學習-9:MachineLN之資料歸一化

10. 機器學習-10:MachineLN之樣本不均衡

11. 機器學習-11:MachineLN之過拟合

12. 機器學習-12:MachineLN之優化算法

13. 機器學習-13:MachineLN之kNN

14. 機器學習-14:MachineLN之kNN源碼

15. 機器學習-15:MachineLN之感覺機

16. 機器學習-16:MachineLN之感覺機源碼

17. 機器學習-17:MachineLN之邏輯回歸

18. 機器學習-18:MachineLN之邏輯回歸源碼

機器學習-7:MachineLN之激活函數

繼續閱讀