從零開(kāi)始,一步一步學(xué)習(xí)caffe的使用癌刽,期間貫穿深度學(xué)習(xí)和調(diào)參的相關(guān)知識(shí)路狮!
激活函數(shù)參數(shù)配置
在激活層中,對(duì)輸入數(shù)據(jù)進(jìn)行激活操作,是逐元素進(jìn)行運(yùn)算的,在運(yùn)算過(guò)程中毡庆,沒(méi)有改變數(shù)據(jù)的大小坑赡,即輸入和輸出的數(shù)據(jù)大小是相等的。神經(jīng)網(wǎng)絡(luò)中激活函數(shù)的主要作用是提供網(wǎng)絡(luò)的非線性建模能力么抗,如不特別說(shuō)明毅否,激活函數(shù)一般而言是非線性函數(shù)。假設(shè)一個(gè)示例神經(jīng)網(wǎng)絡(luò)中僅包含線性卷積和全連接運(yùn)算蝇刀,那么該網(wǎng)絡(luò)僅能夠表達(dá)線性映射螟加,即便增加網(wǎng)絡(luò)的深度也依舊還是線性映射,難以有效建模實(shí)際環(huán)境中非線性分布的數(shù)據(jù)熊泵。加入(非線性)激活函數(shù)之后仰迁,深度神經(jīng)網(wǎng)絡(luò)才具備了分層的非線性映射學(xué)習(xí)能力。因此顽分,激活函數(shù)是深度神經(jīng)網(wǎng)絡(luò)中不可或缺的部分徐许。
layer {
name: "test"
bottom: "conv"
top: "test"
type: "ReLU" #激活函數(shù)類(lèi)型
}
常用激活函數(shù)總結(jié)
首先推薦一個(gè)常用激活函數(shù)可視化項(xiàng)目visualising activation functions in neural networks
Step
激活函數(shù) Step 更傾向于理論而不是實(shí)際,它模仿了生物神經(jīng)元要么全有要么全無(wú)的屬性卒蘸。它無(wú)法應(yīng)用于神經(jīng)網(wǎng)絡(luò)雌隅,因?yàn)槠鋵?dǎo)數(shù)是 0(除了零點(diǎn)導(dǎo)數(shù)無(wú)定義以外),這意味著基于梯度的優(yōu)化方法并不可行缸沃。
Identity
通過(guò)激活函數(shù) Identity恰起,節(jié)點(diǎn)的輸入等于輸出。它完美適合于潛在行為是線性(與線性回歸相似)的任務(wù)趾牧。當(dāng)存在非線性检盼,單獨(dú)使用該激活函數(shù)是不夠的,但它依然可以在最終輸出節(jié)點(diǎn)上作為激活函數(shù)用于回歸任務(wù)翘单。
ReLU
修正線性單元(Rectified linear unit吨枉,ReLU)是神經(jīng)網(wǎng)絡(luò)中最常用的激活函數(shù)蹦渣。它保留了 step 函數(shù)的生物學(xué)啟發(fā)(只有輸入超出閾值時(shí)神經(jīng)元才激活),不過(guò)當(dāng)輸入為正的時(shí)候貌亭,導(dǎo)數(shù)不為零柬唯,從而允許基于梯度的學(xué)習(xí)(盡管在 x=0 的時(shí)候,導(dǎo)數(shù)是未定義的)圃庭。使用這個(gè)函數(shù)能使計(jì)算變得很快锄奢,因?yàn)闊o(wú)論是函數(shù)還是其導(dǎo)數(shù)都不包含復(fù)雜的數(shù)學(xué)運(yùn)算。然而剧腻,當(dāng)輸入為負(fù)值的時(shí)候拘央,ReLU 的學(xué)習(xí)速度可能會(huì)變得很慢,甚至使神經(jīng)元直接無(wú)效恕酸,因?yàn)榇藭r(shí)輸入小于零而梯度為零堪滨,從而其權(quán)重?zé)o法得到更新,在剩下的訓(xùn)練過(guò)程中會(huì)一直保持靜默蕊温。
Leaky ReLU
經(jīng)典(以及廣泛使用的)ReLU 激活函數(shù)的變體袱箱,帶泄露修正線性單元(Leaky ReLU)的輸出對(duì)負(fù)值輸入有很小的坡度。由于導(dǎo)數(shù)總是不為零义矛,這能減少靜默神經(jīng)元的出現(xiàn)发笔,允許基于梯度的學(xué)習(xí)(雖然會(huì)很慢)。
PReLU
參數(shù)化修正線性單元(Parameteric Rectified Linear Unit凉翻,PReLU)屬于 ReLU 修正類(lèi)激活函數(shù)的一員了讨。它和 RReLU 以及 Leaky ReLU 有一些共同點(diǎn),即為負(fù)值輸入添加了一個(gè)線性項(xiàng)制轰。而最關(guān)鍵的區(qū)別是前计,這個(gè)線性項(xiàng)的斜率實(shí)際上是在模型訓(xùn)練中學(xué)習(xí)到的。
RReLU
隨機(jī)帶泄露的修正線性單元(Randomized Leaky Rectified Linear Unit垃杖,RReLU)也屬于 ReLU 修正類(lèi)激活函數(shù)的一員男杈。和 Leaky ReLU 以及 PReLU 很相似,為負(fù)值輸入添加了一個(gè)線性項(xiàng)调俘。而最關(guān)鍵的區(qū)別是伶棒,這個(gè)線性項(xiàng)的斜率在每一個(gè)節(jié)點(diǎn)上都是隨機(jī)分配的(通常服從均勻分布)。
ELU
指數(shù)線性單元(Exponential Linear Unit彩库,ELU)也屬于 ReLU 修正類(lèi)激活函數(shù)的一員肤无。和 PReLU 以及 RReLU 類(lèi)似,為負(fù)值輸入添加了一個(gè)非零輸出骇钦。和其它修正類(lèi)激活函數(shù)不同的是宛渐,它包括一個(gè)負(fù)指數(shù)項(xiàng),從而防止靜默神經(jīng)元出現(xiàn),導(dǎo)數(shù)收斂為零窥翩,從而提高學(xué)習(xí)效率畴蹭。
SELU
擴(kuò)展指數(shù)線性單元(Scaled Exponential Linear Unit,SELU)是激活函數(shù)指數(shù)線性單元(ELU)的一個(gè)變種鳍烁。其中λ和α是固定數(shù)值(分別為 1.0507 和 1.6726)。這些值背后的推論(零均值/單位方差)構(gòu)成了自歸一化神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)(SNN)繁扎。
SReLU
S 型整流線性激活單元(S-shaped Rectified Linear Activation Unit幔荒,SReLU)屬于以 ReLU 為代表的整流激活函數(shù)族。它由三個(gè)分段線性函數(shù)組成梳玫。其中兩種函數(shù)的斜度爹梁,以及函數(shù)相交的位置會(huì)在模型訓(xùn)練中被學(xué)習(xí)。
Sigmoid
Sigmoid 因其在 logistic 回歸中的重要地位而被人熟知提澎,值域在 0 到 1 之間姚垃。Logistic Sigmoid(或者按通常的叫法,Sigmoid)激活函數(shù)給神經(jīng)網(wǎng)絡(luò)引進(jìn)了概率的概念盼忌。它的導(dǎo)數(shù)是非零的积糯,并且很容易計(jì)算(是其初始輸出的函數(shù))。然而谦纱,在分類(lèi)任務(wù)中看成,sigmoid 正逐漸被 Tanh 函數(shù)取代作為標(biāo)準(zhǔn)的激活函數(shù),因?yàn)楹笳邽槠婧瘮?shù)(關(guān)于原點(diǎn)對(duì)稱)跨嘉。
Hard Sigmoid
Hard Sigmoid 是 Logistic Sigmoid 激活函數(shù)的分段線性近似川慌。它更易計(jì)算,這使得學(xué)習(xí)計(jì)算的速度更快祠乃,盡管首次派生值為零可能導(dǎo)致靜默神經(jīng)元/過(guò)慢的學(xué)習(xí)速率(詳見(jiàn) ReLU)梦重。
Tanh
在分類(lèi)任務(wù)中,雙曲正切函數(shù)(Tanh)逐漸取代 Sigmoid 函數(shù)作為標(biāo)準(zhǔn)的激活函數(shù)亮瓷,其具有很多神經(jīng)網(wǎng)絡(luò)所鐘愛(ài)的特征琴拧。它是完全可微分的,反對(duì)稱寺庄,對(duì)稱中心在原點(diǎn)艾蓝。為了解決學(xué)習(xí)緩慢和/或梯度消失問(wèn)題,可以使用這個(gè)函數(shù)的更加平緩的變體(log-log斗塘、softsign赢织、symmetrical sigmoid 等等)
Hard Tanh
Hard Tanh 是 Tanh 激活函數(shù)的線性分段近似。相較而言馍盟,它更易計(jì)算于置,這使得學(xué)習(xí)計(jì)算的速度更快,盡管首次派生值為零可能導(dǎo)致靜默神經(jīng)元/過(guò)慢的學(xué)習(xí)速率(詳見(jiàn) ReLU)贞岭。
LeCun Tanh
LeCun Tanh(也被稱作 Scaled Tanh)是 Tanh 激活函數(shù)的擴(kuò)展版本八毯。它具有以下幾個(gè)可以改善學(xué)習(xí)的屬性:f(± 1) = ±1搓侄;二階導(dǎo)數(shù)在 x=1 最大化;且有效增益接近 1话速。
ArcTan
視覺(jué)上類(lèi)似于雙曲正切(Tanh)函數(shù)讶踪,ArcTan 激活函數(shù)更加平坦,這讓它比其他雙曲線更加清晰泊交。在默認(rèn)情況下乳讥,其輸出范圍在-π/2 和π/2 之間。其導(dǎo)數(shù)趨向于零的速度也更慢廓俭,這意味著學(xué)習(xí)的效率更高云石。但這也意味著,導(dǎo)數(shù)的計(jì)算比 Tanh 更加昂貴研乒。
Softsign
Softsign 是 Tanh 激活函數(shù)的另一個(gè)替代選擇汹忠。就像 Tanh 一樣,Softsign 是反對(duì)稱雹熬、去中心宽菜、可微分,并返回-1 和 1 之間的值橄唬。其更平坦的曲線與更慢的下降導(dǎo)數(shù)表明它可以更高效地學(xué)習(xí)赋焕。另一方面,導(dǎo)數(shù)的計(jì)算比 Tanh 更麻煩仰楚。
SoftPlus
作為 ReLU 的一個(gè)不錯(cuò)的替代選擇隆判,SoftPlus 能夠返回任何大于 0 的值。與 ReLU 不同僧界,SoftPlus 的導(dǎo)數(shù)是連續(xù)的侨嘀、非零的,無(wú)處不在捂襟,從而防止出現(xiàn)靜默神經(jīng)元咬腕。然而,SoftPlus 另一個(gè)不同于 ReLU 的地方在于其不對(duì)稱性葬荷,不以零為中心涨共,這興許會(huì)妨礙學(xué)習(xí)。此外,由于導(dǎo)數(shù)常常小于 1,也可能出現(xiàn)梯度消失的問(wèn)題蛾找。
Signum
激活函數(shù) Signum(或者簡(jiǎn)寫(xiě)為 Sign)是二值階躍激活函數(shù)的擴(kuò)展版本盛撑。它的值域?yàn)?[-1,1]灌灾,原點(diǎn)值是 0。盡管缺少階躍函數(shù)的生物動(dòng)機(jī)泼橘,Signum 依然是反對(duì)稱的秘噪,這對(duì)激活函數(shù)來(lái)說(shuō)是一個(gè)有利的特征魁索。
Bent Identity
激活函數(shù) Bent Identity 是介于 Identity 與 ReLU 之間的一種折衷選擇融撞。它允許非線性行為,盡管其非零導(dǎo)數(shù)有效提升了學(xué)習(xí)并克服了與 ReLU 相關(guān)的靜默神經(jīng)元的問(wèn)題粗蔚。由于其導(dǎo)數(shù)可在 1 的任意一側(cè)返回值尝偎,因此它可能容易受到梯度爆炸和消失的影響。
Symmetrical Sigmoid
Symmetrical Sigmoid 是另一個(gè) Tanh 激活函數(shù)的變種(實(shí)際上鹏控,它相當(dāng)于輸入減半的 Tanh)冬念。和 Tanh 一樣,它是反對(duì)稱的牧挣、零中心、可微分的醒陆,值域在 -1 到 1 之間瀑构。它更平坦的形狀和更慢的下降派生表明它可以更有效地進(jìn)行學(xué)習(xí)。
Log Log
Log Log 激活函數(shù)(由上圖 f(x) 可知該函數(shù)為以 e 為底的嵌套指數(shù)函數(shù))的值域?yàn)?[0,1]刨摩,Complementary Log Log 激活函數(shù)有潛力替代經(jīng)典的 Sigmoid 激活函數(shù)寺晌。該函數(shù)飽和地更快,且零點(diǎn)值要高于 0.5澡刹。
Gaussian
高斯激活函數(shù)(Gaussian)并不是徑向基函數(shù)網(wǎng)絡(luò)(RBFN)中常用的高斯核函數(shù)呻征,高斯激活函數(shù)在多層感知機(jī)類(lèi)的模型中并不是很流行。該函數(shù)處處可微且為偶函數(shù)罢浇,但一階導(dǎo)會(huì)很快收斂到零陆赋。
Absolute
顧名思義,絕對(duì)值(Absolute)激活函數(shù)返回輸入的絕對(duì)值嚷闭。該函數(shù)的導(dǎo)數(shù)除了零點(diǎn)外處處有定義攒岛,且導(dǎo)數(shù)的量值處處為 1。這種激活函數(shù)一定不會(huì)出現(xiàn)梯度爆炸或消失的情況胞锰。
Sinusoid
如同余弦函數(shù)灾锯,Sinusoid(或簡(jiǎn)單正弦函數(shù))激活函數(shù)為神經(jīng)網(wǎng)絡(luò)引入了周期性。該函數(shù)的值域?yàn)?[-1,1]嗅榕,且導(dǎo)數(shù)處處連續(xù)顺饮。此外,Sinusoid 激活函數(shù)為零點(diǎn)對(duì)稱的奇函數(shù)凌那。
Cos
如同正弦函數(shù)兼雄,余弦激活函數(shù)(Cos/Cosine)為神經(jīng)網(wǎng)絡(luò)引入了周期性。它的值域?yàn)?[-1,1]案怯,且導(dǎo)數(shù)處處連續(xù)君旦。和 Sinusoid 函數(shù)不同,余弦函數(shù)為不以零點(diǎn)對(duì)稱的偶函數(shù)。
Sinc
Sinc 函數(shù)(全稱是 Cardinal Sine)在信號(hào)處理中尤為重要金砍,因?yàn)樗碚髁司匦魏瘮?shù)的傅立葉變換(Fourier transform)局蚀。作為一種激活函數(shù),它的優(yōu)勢(shì)在于處處可微和對(duì)稱的特性恕稠,不過(guò)它比較容易產(chǎn)生梯度消失的問(wèn)題琅绅。
參考
從ReLU到Sinc,26種神經(jīng)網(wǎng)絡(luò)激活函數(shù)可視化
visualising activation functions in neural networks