首先提一下啟用函式的一般形式,在我平時的學習中,我遇到過的一般是這四種形式,simoid,tanh,relu,softplus。 s
imoi
d函式也
稱s曲線
:f(x
)=11
+e−x
tanh:f
(x)=
tanh
(x)
relu:f(
x)=m
ax(x
,0)
softmax
:f(x
)=lo
g(1+
exp(
x))
啟用函式,並不是去啟用什麼,而是指如何把「啟用的神經元的特徵」通過函式把特徵保留並對映出來(保留特徵,去除一些資料中是的冗餘),這是神經網路能解決非線性問題關鍵。
這句話字面的意思很容易理解,但是在具體處理影象的時候是什麼情況呢?我們知道在神經網路中,對於影象,我們主要採用了卷積的方式來處理,也就是對每個畫素點賦予乙個權值,這個操作顯然就是線性的。但是對於我們樣本來說,不一定是線性可分的,為了解決這個問題,我們可以進行線性變化,或者我們引入非線性因素,解決線性模型所不能解決的問題。這裡插一句,來比較一下上面的那些啟用函式,因為神經網路的數學基礎是處處可微的,所以選取的啟用函式要能保證資料輸入與輸出也是可微的,運算特徵是不斷進行迴圈計算,所以在每代迴圈過程中,每個神經元的值也是在不斷變化的。
這就導致了tanh特徵相差明顯時的效果會很好,在迴圈過程中會不斷擴大特徵效果顯示出來,但有是,在特徵相差比較複雜或是相差不是特別大時,需要更細微的分類判斷的時候,sigmoid效果就好了。
還有乙個東西要注意,sigmoid 和 tanh作為啟用函式的話,一定要注意一定要對 input 進行歸一話,否則啟用後的值都會進入平坦區,使隱層的輸出全部趨同,但是 relu 並不需要輸入歸一化來防止它們達到飽和。
其實這個特性主要是對於relu,它就是取的max(0,x),因為神經網路是不斷反覆計算,實際上變成了它在嘗試不斷試探如何用乙個大多數為0的矩陣來嘗試表達資料特徵,結果因為稀疏特性的存在,反而這種方法變得運算得又快效果又好了。所以我們可以看到目前大部分的卷積神經網路中,基本上都是採用了relu 函式。
啟用函式的作用
引知乎上的回答 啟用函式是用來加入非線性因素的,因為線性模型的表達能力不夠。以下,同種顏色為同類資料。某些資料是線性可分的,意思是,可以用一條直線將資料分開。比如下圖 這時候你需要通過一定的機器學習的方法,比如感知機演算法 perceptron learning algorithm 找到乙個合適的線...
啟用函式的作用
使用pytorch弄乙個單層網路,但是啟用函式選擇線性函式,不然永遠達不到要求,啟用函式的作用,摘自知乎。f 稱為啟用函式或激勵函式 activation function 啟用函式的主要作用是完成資料的非線性變換,解決線性模型的表達 分類能力不足的問題 啟用函式的主要作用是改變之前資料的線性關係,...
啟用函式作用
在神經網路結構中,通過啟用函式將非線性的特性引入到神經網路中,從而讓神經網路可以理解 處理複雜的資料及問題。通常啟用函式的形式可以寫成 y f x 這裡的 x 是啟用函式f 的輸入,y 是 x經過啟用函式變換得到的輸出。通過f 將原來的輸入 x 對映成為另外一種形式表達y。通常在神經網路結構中常用的...