機器學習Basics-第七期-激勵函數

另,申明下,本期大部分素材都來源於 Medium社區的Avinash Sharma V

激勵函數

解釋激勵函數,必須先提到神經元。簡單來說,假設一個神經元的既定任務是判斷Yes or No。 那麼一個神經元所做的就是 計算一個 加權彙總 + 參數 , 然後決定是否它是否應該被激勵。

機器學習Basics-第七期-激勵函數

現在,上面的公式的結果 Y 的範圍是從 正無窮 ~ 負無窮。神經元並不知道Y的邊界,那麼怎麼判斷Yes or No 呢?

這個時候就需要增加激勵函數,來判斷 神經元產生的Y值 所代表的是 Yes or No。

其實,最簡單的方法就是增加一個函數。假設函數如下:

如果Y>0, Activation function: A = 1

如果Y<= 0 , Activation Function: A=0

機器學習Basics-第七期-激勵函數

以上激勵函數做到的是當Y>0時,激勵函數的輸出是 1(activated);如果Y<0時,激勵函數的輸出是0(not Activated)

當然這是激勵函數的一種。然而,此種激勵函數也有明顯的缺點。假設,你在做一個邏輯判斷(即Yes or No),那麼以上函數是非常理想的。

但是,當你在做分類任務,需要分成4個類型 class1,class2,class3,class4。這個時候,我們可能需要有4個神經元,那麼假設超過一個神經元的輸出是1 Yes時,就會出現問題。 所以當做 多種類型劃分時,以上公式就不太適合了。

Linear function線性方程

A=c*X

線性方程的輸出與輸入X 是 線性關係。

由於是線性方程,所以沒辦法和之前一樣 基於 (0,1)做邏輯判斷。當我們把多個神經元放在一起 做 多類型分類任務時,我們可以取最大值作為激勵的神經元。

但是線性方程仍有很大的問題,其中一個最顯著的問題就是由於神經元本身是線性方程,激勵函數也是線性方程。會導致,整個神經網絡都是線性的存在(線性方程的嵌套),也導致到層神經網絡失效,效果和單層神經網絡一樣。

Sigmoid Function

這個是神經網絡非常常用的激勵函數。

機器學習Basics-第七期-激勵函數

這個方程的圖片,看起來像第一個方程。但是Sigmoid方程有相比有很多有點。

首先,Sigmoid方程並不是線性方程,那麼也使得 多層神經網絡疊加後也是非線性方程。這相對於線性方程是一個很大的提升;

其次,從圖片可以看出,在-2~2的範圍,線比較陡峭。這意味著,X值在此範圍的較小變動,會使得Y值發生較大變化。這意味著,Sigmoid方程的Y值產出傾向於 兩端 1,0。

另外,Sigmoid方程的輸出值範圍現定於 0~1,不同於線性方程的 負無窮~ 正無窮。

這些優點使得 Sigmoid方程成為非常普遍的激勵函數之一。

Tanh Function

這是另一個普遍使用的激勵函數。

機器學習Basics-第七期-激勵函數

這個公式看起來非常像Sigmoid Function。其實他就是Sigmoud方程的變形。

機器學習Basics-第七期-激勵函數

既然是Sigmoid的變形,那麼Tanh Function繼承了Sigmoid Function 的優點,比如非線性,比如輸出值限定在一個範圍

Tanh Function的一個區別在於其相對於Sigmoid Function更陡峭,這也意味著其更容易達到極限值,也意味著其更容易達到極致 -1~1

總結

在本系列第三期給大家大概介紹了神經網絡的結構,Activation 激勵函數的一個最大的作用是將此函數變成非線性函數。另外一個重要的作用是限定神經元的數值範圍 以適應最終的邏輯判斷等

下期預告

還沒想好下期帶來什麼...


分享到:


相關文章: