修正線性單元,是最常用的非線性對映函式。常在神經網路隱層中使用,因為它在反向傳播中計算導數十分方便。導數為:
relu的「軟化版」。導數為:
同樣將單個輸入值對映到(0,1)之間,但函式是對稱的。求導也很方便,導數為:
將一層的輸出的多個值歸一化,通常在**各個類別的概率時用到,而且一般用在輸出層。圖類似於sigmoid,上圖畫的是元素數量為2的示意圖。
比如某個模型輸出層中每個結點的輸出分別是:狗、貓、豬、牛,這些動物是輸入資料的真實標籤的概率,概率總和顯然應該為1,因此用softmax來歸一化。好處是所有輸出一定為正值,總和為1,並且較大值能夠更好地凸顯出來。
softmax與其它啟用函式最大的不同就在於,同一層每個元素的計算都涉及到該層的所有元素($r^n\to r$),而其他啟用函式都是每個元素算它們自己的($r\to r$)。softmax的導數與sigmoid類似,複雜度也不高,但因它有「彙總」的功能,所以會分成兩種情況。下面直接舉個具體的例子來說明。
假設這個啟用函式用在輸出層,該層有三個結點,前一層線性運算後的結果存在向量$z$中,損失函式使用mse,於是目標函式為(不算正則項):
$\displaystyle l=\frac\left[(\sigma_1(z)-y_1)^2+(\sigma_2(z)-y_2)^2+(\sigma_3(z)-y_3)^2\right]$
其中$\displaystyle\sigma_i(z) = \frac}^3e^}$
對$z_1$進行求導:
$ \begin &\frac\\ =& (\sigma_1(z)-y_1)\left(\frac}+e^+e^}\right)'_+\\ &(\sigma_2(z)-y_2)\left(\frac}+e^+e^}\right)'_+\\ &(\sigma_3(z)-y_3)\left(\frac}+e^+e^}\right)'_\\ =&(\sigma_1(z)-y_1)\left(\frac}+e^+e^}-\frac)^2}+e^+e^)^2}\right)+\\ &(\sigma_2(z)-y_2)\left(\frace^}+e^+e^)^2}\right)+\\ &(\sigma_3(z)-y_3)\left(\frace^}+e^+e^)^2}\right)\\ =&(\sigma_1(z)-y_1)\sigma_1(z)(1-\sigma_1(z))+\\ &(\sigma_2(z)-y_2)[-\sigma_1(z)\sigma_2(z)]+\\ &(\sigma_3(z)-y_3)[-\sigma_1(z)\sigma_3(z)] \end $
$z_2,z_3$的求導類似。可以看出,在反向傳播中,當啟用函式所在結點$i$與待求導的結點$j$相同時,softmax導數為:
$\begin\sigma_i(z)(1-\sigma_i(z))\label{}\end$
否則,導數為:
$\begin-\sigma_i(z)\sigma_j(z)\label{}\end$
而節點啟用輸出對節點輸入的導數則是這兩種導數的求和:乙個$(1)$式,$n-1$個$(2)$式。
與sigmoid有點像,對映到(-1,1)。
導數為:
$\displaystyle \frac+1}-\frac+1)^2} = 1-\text^2(z)$
maxout和之前的計算方式都不一樣,它不像啟用函式,更像是層,因為它有引數用於訓練。 它在兩個層中間新增maxout層,對下一層的每乙個元素都通過權重和偏執線性計算出一列向量,向量的維度$t$是超引數,然後將向量的最大值作為元素的取值。
如下圖所示:
只要變數夠多,maxout可以擬合任意的凸函式。類似於(網路截圖):
而凸函式後面再通過線性運算,就可以擬合任意函式了。
神經網路中常用的啟用函式
1.非線性 當啟用函式是線性的時候,乙個兩層的神經網路就可以逼近基本上所有的函式了。但是,如果啟用函式是恒等啟用函式的時候 即f x x 就不滿足這個性質了,而且如果mlp使用的是恒等啟用函式,那麼其實整個網路跟單層神經網路是等價的。2.可微性 當優化方法是基於梯度的時候,這個性質是必須的。3.單調...
神經網路中常見的啟用函式
一 背景 為什麼要使用啟用函式?之前其實也有點困惑,最近整理了一下之前的筆記,總結一下。首先是第乙個問題 為什麼要使用啟用函式以及它的作用是什麼?使用啟用函式的原因在於,以兩類資料的分類為例,這些資料真正能線性可分的情況還是比較少的,此時如果資料不是線性可分的我們又該如何分類呢?這個時候我們就無法再...
神經網路常用的啟用函式
1 恒等函式 f z i z z 2 sigmoid 函式 這個函式通常是用在返回0到1之間的值 f z 1 1 exp z 3 tanh 雙曲正切 啟用函式 雙曲正切是一條 1 1的s形曲線 f z tanh z 影象如圖 4 relu 整流線性單元 啟用函式 f z max 0,z python...