1. 程式人生 > >深度學習筆記六:常見啟用函式總結

深度學習筆記六:常見啟用函式總結

一.啟用函式概覽

基本上,入門深度學習的第一件事情就是了解”神經元”的構造,啟用函式算是最基本的一個”部件”了吧.那啟用函式到底有什麼用呢?為什麼需要啟用函式?啟用函式的定義是什麼呢?
下面這篇論文提供了啟用函式的定義以及常見的”飽和”的定義,以及對於啟用函式的一些思考.大家可以參考一下.

Noisy Activation Functions
引用這篇論文的定義:啟用函式就是對映這裡寫圖片描述,且函式幾乎處處可導.
那為什麼需要啟用函式呢?一般認為,啟用函式的作用是給神經網路加入非線性的因素.啟用函式一般都是非線性函式,要是沒有了啟用函式,那麼神經網路難以對於生活中常見的非線性的資料建模.所以,神經網路中啟用函式是不可缺少的.

二.常見的啟用函式

這裡僅僅列出經常見到的,常用的啟用函式,更多的新的啟用函式型別可以跟蹤最新的paper,
這裡的啟用函式的所有程式碼及繪圖可在我的GitGub找到:
MachineLearningCode/NeuralNet/ActivationFunction/
好了,開始正式總結了.

Ⅰ.sigmoid

這裡寫圖片描述
老朋友了,但是還是要介紹一下,sigmod算是”曾經”使用最廣的啟用函數了,簡單,良好的非線性對映,但是也有致命的問題,就是梯度消失.所以現代的神經網路架構很少用他了.
這裡寫圖片描述

Ⅱ.tanh

這裡寫圖片描述
這裡寫圖片描述

Ⅲ.ReLU

修正線性單元(Rectified linear unit)
這裡寫圖片描述


也常常表示為
這裡寫圖片描述
線性修正單元應當是現在用的最廣的啟用函數了,要是你不知道用什麼啟用函式,就用ReLU先試一下吧.
這裡寫圖片描述

Ⅳ.LReLU,PReLU,RReLU

這三個都是對於ReLU的改進,三個的函式的寫法可以近似的認為是一樣的.細節上有一些差別.
這裡寫圖片描述
其中a可以看做是斜率,也就是說,這個啟用函式多引進了一個引數.
這裡寫圖片描述
對於LReLU來說,a是固定的,你可以通過各種驗證方式選出一個合適的a值.
PReLU是對於LReLU的改進,可以自適應的學習引數而不是固定的,原論文中建議初始化為0.25.
RReLU的a是一個給定範圍內的隨機變數,隨機選擇的,在一定程度上可以起到正則化的作用.
給出一張總結的圖
這裡寫圖片描述

Ⅴ.ELU

Exponential Linear Units的縮寫,函式形式為
這裡寫圖片描述
其中a>0.
這裡寫圖片描述

右側的線性部分能夠緩解梯度消失,左側的軟飽和能夠對於輸入變化魯棒.而且收斂速度更快.

Ⅵ.softplus

這裡寫圖片描述
這裡寫圖片描述

Ⅶ.softsign

這裡寫圖片描述
這裡寫圖片描述