激活函數

激活函數

這次看看激活函數及其相關。
先來看看一個簡單神經元的結構吧!在這裏插入圖片描述
在胞體之前是有一個WX的計算,再加上一個bias,從而求算出新的數值,這時候激活函數出場了,它的目的就是對剛剛的數值進行一個轉換,使得轉換後的數值更加易於後期的處理。激活函數家族中大家比較熟悉的就是我們在反向傳播的時候引例中的Sigmoid函數。那麼我們就看看Sigmoid函數的特性。

Sigmoid 函數

在這裏插入圖片描述
首先一個比較顯然的就是它會把輸入值轉化爲一個(0,1)內的數值,其實在計算機中寫成[0,1]也差不多啦。在人工智能還不是很蓬勃發展的時候,人們比較認可這個函數的存在,因爲在生物學角度上它很像神經元的飽和放電率(firing rate)的圖像。但在它的背後有幾個比較坑人而又不適用的缺陷。

  • 首先,飽和神經元會導致梯度消失。假設我的輸入值是10,那麼不難看出它的梯度基本是0,那麼還會導致梯度的顯著而有效的變化嗎?顯然不會!又假設我的輸入值是0,那梯度基本是可以算出來的,很贊!那如果變成-10呢?又不行了QAQ……
  • 回憶反向傳播的內容,也就是說數值的絕對值過大導致Sigmoid門處的神經元的飽和從而讓本地梯度變爲0,從而導致在反向傳播的時候它下游的中間變量變化值也爲0,那自變量就會基本不變了。
  • 其次,該函數並不是零中心函數。假設我們輸入的X全是正的,這就會使得每次變化的時候,梯度值總會保留上游梯度的符號,從而每一個權值的變化都是相同的符號,都朝一個方向變化,這樣會發生什麼問題呢?看看下面這張圖吧!

在這裏插入圖片描述

  • 上圖是以兩個權值爲例的,藍線是我們期望的梯度方向,紅線是探索的過程,“zig-zag、zig-zag,是魔鬼的步伐”,是不是看着就覺得替紅線捏一把汗呀?
    所以Sigmoid函數還是比較鬼畜的。

tanh 函數

接下來簡單介紹一下另一個函數——tanh。這個比較好的性質是滿足零中心原則,但是飽和時仍然會發生梯度消失的現象。
在這裏插入圖片描述

ReLU / 修正線性單元 / 線性整流函數

ReLU(Rectified Linear Unit),中文名一般是修正線性單元。
在這裏插入圖片描述
函數形式較爲簡單:ReLU=max(0,x),這樣的運算至少要比冪運算要快得多。因而它的運算要比tanh和Sigmoid快,快到6倍左右,而且在生物學角度上,它更符合生物學規律(WTF?)。來看看它的特徵:

  • 在正半軸部分,這個函數永遠不會飽和,假設我的輸入值是10,那麼不難看出它的梯度是1;又假設我的輸入值是0,那梯度可以規定爲0;那如果變成-10呢?出現了梯度消失。這個被稱爲dead ReLU,這種情況出現的原因是初始權值設置不恰當。

其它線性單元

接下來簡要展示一些其它不錯的線性單元(LU)
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
此外,還有Maxout等可供瞭解。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章