本文結(jié)構(gòu):
- 什么是激活函數(shù)
- 為什么要用
- 都有什么
- sigmoid 蒸走,ReLU赠潦, softmax 的比較
- 如何選擇
1. 什么是激活函數(shù)
如下圖带族,在神經(jīng)元中,輸入的 inputs 通過加權(quán)瞎领,求和后,還被作用了一個(gè)函數(shù)随夸,這個(gè)函數(shù)就是激活函數(shù) Activation Function九默。
2. 為什么要用
如果不用激勵(lì)函數(shù),每一層輸出都是上層輸入的線性函數(shù)宾毒,無論神經(jīng)網(wǎng)絡(luò)有多少層驼修,輸出都是輸入的線性組合。
如果使用的話诈铛,激活函數(shù)給神經(jīng)元引入了非線性因素乙各,使得神經(jīng)網(wǎng)絡(luò)可以任意逼近任何非線性函數(shù),這樣神經(jīng)網(wǎng)絡(luò)就可以應(yīng)用到眾多的非線性模型中幢竹。
3. 都有什么
(1) sigmoid函數(shù)
公式:
曲線:
也叫 Logistic 函數(shù)耳峦,用于隱層神經(jīng)元輸出
取值范圍為(0,1)
它可以將一個(gè)實(shí)數(shù)映射到(0,1)的區(qū)間,可以用來做二分類焕毫。
在特征相差比較復(fù)雜或是相差不是特別大時(shí)效果比較好蹲坷。
sigmoid缺點(diǎn):
激活函數(shù)計(jì)算量大驶乾,反向傳播求誤差梯度時(shí),求導(dǎo)涉及除法
反向傳播時(shí)循签,很容易就會(huì)出現(xiàn)梯度消失的情況轻掩,從而無法完成深層網(wǎng)絡(luò)的訓(xùn)練
下面解釋為何會(huì)出現(xiàn)梯度消失:
反向傳播算法中,要對(duì)激活函數(shù)求導(dǎo)懦底,sigmoid 的導(dǎo)數(shù)表達(dá)式為:
sigmoid 原函數(shù)及導(dǎo)數(shù)圖形如下:
由圖可知唇牧,導(dǎo)數(shù)從 0 開始很快就又趨近于 0 了,易造成“梯度消失”現(xiàn)象
(2) Tanh函數(shù)
公式
曲線
也稱為雙切正切函數(shù)
取值范圍為[-1,1]聚唐。
tanh在特征相差明顯時(shí)的效果會(huì)很好丐重,在循環(huán)過程中會(huì)不斷擴(kuò)大特征效果。
與 sigmoid 的區(qū)別是杆查,tanh 是 0 均值的扮惦,因此實(shí)際應(yīng)用中 tanh 會(huì)比 sigmoid 更好
(3) ReLU
Rectified Linear Unit(ReLU) - 用于隱層神經(jīng)元輸出
公式
曲線
輸入信號(hào) <0 時(shí),輸出都是0亲桦,>0 的情況下崖蜜,輸出等于輸入
ReLU 的優(yōu)點(diǎn):
Krizhevsky et al. 發(fā)現(xiàn)使用 ReLU 得到的 SGD 的收斂速度會(huì)比 sigmoid/tanh 快很多
ReLU 的缺點(diǎn):
訓(xùn)練的時(shí)候很”脆弱”,很容易就”die”了
例如客峭,一個(gè)非常大的梯度流過一個(gè) ReLU 神經(jīng)元豫领,更新過參數(shù)之后,這個(gè)神經(jīng)元再也不會(huì)對(duì)任何數(shù)據(jù)有激活現(xiàn)象了舔琅,那么這個(gè)神經(jīng)元的梯度就永遠(yuǎn)都會(huì)是 0.
如果 learning rate 很大等恐,那么很有可能網(wǎng)絡(luò)中的 40% 的神經(jīng)元都”dead”了。
(4) softmax函數(shù)
Softmax - 用于多分類神經(jīng)網(wǎng)絡(luò)輸出
公式
舉個(gè)例子來看公式的意思:
就是如果某一個(gè) zj 大過其他 z, 那這個(gè)映射的分量就逼近于 1,其他就逼近于 0备蚓,主要應(yīng)用就是多分類课蔬。
為什么要取指數(shù),第一個(gè)原因是要模擬 max 的行為郊尝,所以要讓大的更大二跋。
第二個(gè)原因是需要一個(gè)可導(dǎo)的函數(shù)。
4. sigmoid 流昏,ReLU扎即, softmax 的比較
Sigmoid 和 ReLU 比較:
sigmoid 的梯度消失問題,ReLU 的導(dǎo)數(shù)就不存在這樣的問題横缔,它的導(dǎo)數(shù)表達(dá)式如下:
曲線如圖
對(duì)比sigmoid類函數(shù)主要變化是:
1)單側(cè)抑制
2)相對(duì)寬闊的興奮邊界
3)稀疏激活性铺遂。
Sigmoid 和 Softmax 區(qū)別:
softmax is a generalization of logistic function that “squashes”(maps) a K-dimensional vector z of arbitrary real values to a K-dimensional vector σ(z) of real values in the range (0, 1) that add up to 1.
sigmoid將一個(gè)real value映射到(0,1)的區(qū)間,用來做二分類茎刚。
而 softmax 把一個(gè) k 維的real value向量(a1,a2,a3,a4….)映射成一個(gè)(b1,b2,b3,b4….)其中 bi 是一個(gè) 0~1 的常數(shù)襟锐,輸出神經(jīng)元之和為 1.0,所以相當(dāng)于概率值膛锭,然后可以根據(jù) bi 的概率大小來進(jìn)行多分類的任務(wù)粮坞。
二分類問題時(shí) sigmoid 和 softmax 是一樣的蚊荣,求的都是 cross entropy loss,而 softmax 可以用于多分類問題
softmax是sigmoid的擴(kuò)展莫杈,因?yàn)榛ダ?dāng)類別數(shù) k=2 時(shí),softmax 回歸退化為 logistic 回歸筝闹。具體地說媳叨,當(dāng) k=2 時(shí),softmax 回歸的假設(shè)函數(shù)為:
利用softmax回歸參數(shù)冗余的特點(diǎn)关顷,從兩個(gè)參數(shù)向量中都減去向量θ1 糊秆,得到:
最后,用 θ′ 來表示 θ2?θ1议双,上述公式可以表示為 softmax 回歸器預(yù)測(cè)其中一個(gè)類別的概率為
另一個(gè)類別概率的為
這與 logistic回歸是一致的痘番。
softmax建模使用的分布是多項(xiàng)式分布,而logistic則基于伯努利分布
多個(gè)logistic回歸通過疊加也同樣可以實(shí)現(xiàn)多分類的效果平痰,但是 softmax回歸進(jìn)行的多分類汞舱,類與類之間是互斥的,即一個(gè)輸入只能被歸為一類宗雇;多個(gè)logistic回歸進(jìn)行多分類昂芜,輸出的類別并不是互斥的,即"蘋果"這個(gè)詞語既屬于"水果"類也屬于"3C"類別逾礁。
5. 如何選擇
選擇的時(shí)候说铃,就是根據(jù)各個(gè)函數(shù)的優(yōu)缺點(diǎn)來配置,例如:
如果使用 ReLU嘹履,要小心設(shè)置 learning rate,注意不要讓網(wǎng)絡(luò)出現(xiàn)很多 “dead” 神經(jīng)元债热,如果不好解決砾嫉,可以試試 Leaky ReLU、PReLU 或者 Maxout.
參考資料:
http://feisky.xyz/machine-learning/neural-networks/active.html
http://jishu.y5y.com.cn/qq_17754181/article/details/56495406
https://www.zhihu.com/question/29021768
http://blog.csdn.net/cyh_24/article/details/50593400
http://www.itdadao.com/articles/c15a1000722p0.html
https://www.zhihu.com/question/23765351
推薦閱讀 歷史技術(shù)博文鏈接匯總
也許可以找到你想要的
我是 不會(huì)停的蝸牛 Alice
85后全職主婦
喜歡人工智能窒篱,行動(dòng)派
創(chuàng)造力焕刮,思考力,學(xué)習(xí)力提升修煉進(jìn)行中
歡迎您的喜歡墙杯,關(guān)注和評(píng)論配并!