神經網絡激活函數softmax,sigmoid,tanh,relu總結
一、總結
一句話總結:
常見激活函數:softmax、sigmoid、tanh、relu
二、【神經網絡】激活函數softmax,sigmoid,tanh,relu總結
轉自或參考:【神經網絡】激活函數softmax,sigmoid,tanh,relu總結
https://blog.csdn.net/weixin_42057852/article/details/84644348
激活函數使用原因
- 如果不用激勵函數,每一層輸出都是上層輸入的線性函數,無論神經網絡有多少層,輸出都是輸入的線性組合。
- 如果使用的話,激活函數給神經元引入了非線性因素,使得神經網絡可以任意逼近任何非線性函數,這樣神經網絡就可以應用到眾多的非線性模型中。
- 比如,在單層感知機中,分類的結果大於某個值為一類,小於某個值為一類,這樣的話就會使得輸出結果在這個點發生階躍,logistic函數解決了階躍函數的突然階躍問題,使得輸出的為0-1的概率,使得結果變得更平滑,他是一個單調上升的函數,具有良好的連續性,不存在不連續點。
1. softmax函數
- 映射區間[0,1]
- 主要用於:離散化概率分布
激活函數 | Softmax | Sigmoid |
---|---|---|
本質 | 離散概率分布 | 非線性映射 |
任務 | 多分類 | 二分類 |
定義域 | 某個一維向量 | 單個數值 |
值域 | [0, 1] | (0, 1) |
結果之和 | 一定為1 | 為某個正數 |
2. sigmoid函數
- 映射區間(0, 1)
- 也稱logistic函數
在神經網絡中的反向傳播
- sigmoid函數求導

sigmoid就是極端情況(類別數為2)下的softmax
3. tanh函數
- 映射區間 (-1,1)
- 也稱雙切正切函數
sigmoid函數和tanh函數都存在一個問題:當神經網絡的層數增多的時候,由於在進行反向傳播的時候,鏈式求導,多項相乘,函數進入飽和區(導數接近於零的地方)就會逐層傳遞,這種現象被稱為梯度消失。
比如:sigmoid函數與其導數的函數如下,可以看出梯度消失的問題
解決辦法:可以采用批標准化(batch normalization)來解決
4. ReLU函數
映射區間:[0,+∞)
RELU函數的優點:
- 相關大腦方面的研究表明生物神經元的信息編碼通常是比較分散及稀疏的。通常情況下,大腦中在同一時間大概只有1%-4%的神經元處於活躍狀態。使用線性修正以及正則化(regularization)可以對機器神經網絡中神經元的活躍度(即輸出為正值)進行調試;相比之下,邏輯函數在輸入為0時達到1/2 , 即已經是半飽和的穩定狀態,不夠符合實際生物學對模擬神經網絡的期望。不過需要指出的是,一般情況下,在一個使用修正線性單元(即線性整流)的神經網絡中大概有50%的神經元處於激活態;
- 更加有效率的梯度下降以及反向傳播:避免了梯度爆炸和梯度消失問題;
- 簡化計算過程:沒有了其他復雜激活函數中諸如指數函數的影響;同時活躍度的分散性使得神經網絡整體計算成本下降。
RELU總結
- 雖然ReLU函數大於零的部分和小於零的部分分別都是線性函數,但是整體並不是線性函數,所以仍然可以做為激活函數,ReLU函數其實是分段線性函數,把所有的負值都變為0,而正值不變,這種操作被成為單側抑制。
- 在訓練數據的時候,由於對於不同的任務,可能某些神經元的輸出影響就比較大,有些則小,甚至有些則無,類似於人的大腦,左腦和右腦分別管理邏輯能力與想象力,當使用右腦的時候,就抑制左腦,當使用左腦的時候,抑制右腦,RELU函數正好可以實現小於0的數直接受到抑制,這就使得神經網絡的激活更接近於生物學上的處理過程,給神經網絡增加了生命。
總結
- 因為線性模型的表達能力不夠,引入激活函數是為了添加非線性因素;
- 然后發展出了很多的激活函數適用於各種模型的訓練;
- RELU函數的引入給神經網絡增加了生物學特性,可以稱為靈魂激活函數。