【3】談談激活函數?
1、什麼是激活函數?
在神經元中,輸入input,通過加權求和之後再通過了一個函數的變換處理,這個函數就是激活函數(Activition Function)
2、激活函數的作用?
模型的表達能力不夠,引入激活函數是為了添加非線性因素。
不添加激活函數的時候,無論多少層網路輸出都是線性方程
添加了激活函數之後就可以解決類似下圖這樣一些線性不可分的情況:
通用近似定理:單隱層神經網路只要隱層神經元的個數足夠多,可以以任何精度逼近任何連續函數。
所以使用激活函數就能將神經網路運用到很多其他非線性模型中去。
3、常見的激活函數?
(1)sigmoid 函數
特點:可以將輸出壓縮到0-1的範圍;總是正數;有界;嚴格遞增
缺點:會出現梯度消失(軟飽和性),這個函數的導數是g(a)(1-g(a)),最大值是1/4,所以每一層向前傳遞都會至少3/4的梯度損失。神經元的活躍度在0和1處飽和,它的梯度在這些地方接近於0,就會很大程度上幹掉梯度,使得幾乎沒有信號經過這個神經元以及所有間接經過此處的數據。
(2)ReLU 函數
ReLU激活函數,修正線性激活函數,用於隱層神經元輸出
特點:非負;將神經元變得稀疏;沒上界;嚴格遞增
優點:
a. 得到的SGD收斂速度比sigmoid/tanh函數要快;
b. 當 x < 0, 硬飽和;當 x > 0,不存在飽和問題,保持梯度不衰減,從而緩解梯度消失問題,這讓我們能夠直接以監督的方式訓練深度神經網路,而無需依賴無監督的逐層預訓練;
c. Relu會使一部分神經元的輸出為0,這樣就造成了網路的稀疏性,並且減少了參數的相互依存關係,緩解了過擬合問題的發生。
缺點:
a. 隨著訓練的推進,部分輸入會落入硬飽和區,導致對應權重無法更新。這種現象被稱為「神經元死亡」,會影響網路的收斂性。(大的梯度流經過ReLU單元時可能導致神經不會在以後任何數據節點再被激活)
b. ReLU的輸出不是zero-centered,與sigmoid類似,ReLU的輸出均值也大於0,偏移現象和神經元死亡會共同影響網路的收斂性。
(3)Tanh函數
特點:可以將輸出壓縮到-1~1的範圍;有界;嚴格遞增
優點:
a. tanh在特徵相差明顯時的效果會很好,在循環過程中會不斷擴大特徵效果。
b. tanh 是 0均值,效果好於sigmoid
缺點:軟飽和,仍然會出現梯度消失
(4)Swish 函數
Swish是Google在10月16號提出的一種新型激活函數
f(x) = x · sigmoid(x)
特點:無上界有下界、平滑、非單調。這些使 Swish 優與其他激活函數。
4、如何選擇激活函數?
根據具體網路具體選擇,如果你使用ReLU,那麼一定要小心設置 learning rate,而且要注意不要讓你的網路出現很多 「dead」 神經元。最好不要用 sigmoid,你可以試試 tanh,不過可以預期它的效果會比不上 ReLU。通常來說,很少會把各種激活函數串起來在一個網路中用。
推薦閱讀:
※人工智慧 | 6,耶魯神經科學掃描大腦判斷人類智力,區分準確率達99%
※2018奧迪品牌年會,無非說了這五點。
※人工智慧未來將擁有人類的感情?你能接受嗎?
※Ian Goodfellow談GANs論文評審:有這些跡象的論文要懷疑
※人工智慧與設計(5)-人工智慧對用戶體驗的影響
TAG:機器學習 | 深度學習DeepLearning | 人工智慧 |