神经网络之激活函数
神經(jīng)網(wǎng)絡(luò)中的激活函數(shù)
- 系列文章:
??激活函數(shù)是神經(jīng)網(wǎng)絡(luò)中非常重要的東西,作用不亞于卷積。激活函數(shù)是為了模擬神經(jīng)元的激活和抑制狀態(tài)的一個(gè)組件,自然界的神經(jīng)活動(dòng)都是通過一部分神經(jīng)元的激活,一部分神經(jīng)元受到抑制而實(shí)現(xiàn)的,同時(shí)激活的神經(jīng)元也會(huì)在一定條件抑制,抑制也會(huì)轉(zhuǎn)換為激活,這種狀態(tài)之間的切換,在宏觀上就呈現(xiàn)了不同的神經(jīng)活動(dòng)。
??但是卷積神經(jīng)網(wǎng)絡(luò)中的激活函數(shù)作用不止于此, 如果神經(jīng)網(wǎng)絡(luò)中只有卷積層,我們已經(jīng)討論過卷積的操作,從數(shù)學(xué)的角度上講,卷積是通過參數(shù)的矩陣乘法來實(shí)現(xiàn)的,給特征乘再多的矩陣,都改變不了純卷積的運(yùn)算是一個(gè)線性操作的本質(zhì)。 y = A B C D . . . . Z x y=ABCD....Zx y=ABCD....Zx,x和y仍然是線性關(guān)系。從函數(shù)擬合的角度來看,線性函數(shù)的擬合能力就非常差勁,與神經(jīng)網(wǎng)絡(luò)能夠擬合任何復(fù)雜的函數(shù)的遠(yuǎn)大理想不符。
?? 激活函數(shù)的作用就是給神經(jīng)網(wǎng)絡(luò)帶來非線性的特征,負(fù)責(zé)把線性函數(shù)給掰彎,這樣神經(jīng)網(wǎng)絡(luò)擬合出來的函數(shù)也能適應(yīng)復(fù)雜函數(shù)起伏,擬合的更好。大致來說,伴隨著神經(jīng)網(wǎng)絡(luò)的發(fā)展,主要的激活函數(shù)經(jīng)歷了Sigmoid -> Tanh -> ReLU -> Maxout的順序,但是這些主要的激活函數(shù)在發(fā)展過程中又產(chǎn)生了很多的變體。我就大致做個(gè)總結(jié),整理一下這些主要的激活函數(shù)和變體的發(fā)展與演變。
??此外,回想我們機(jī)器學(xué)習(xí)提取特征的時(shí)候,如果模型不能很好對(duì)數(shù)據(jù)建模,可以考慮進(jìn)行特征變換或者核變換的方式,對(duì)核函數(shù)或者特征變換函數(shù)做泰勒展開,我們就可以大致了解核函數(shù)組合了哪些特征。事實(shí)上,激活函數(shù)一定程度上也做了特征組合的事情,很多激活函數(shù)都有 e x e^x ex項(xiàng),這就是一定程度上對(duì)特征進(jìn)行了組合。
??想要作為激活函數(shù)還是需要有很多的限制的,可以看到激活函數(shù)需要給神經(jīng)網(wǎng)絡(luò)帶來非線性,那么顯然線性函數(shù)是不可以的。
??激活函數(shù)需要滿足幾乎處處可微的特性,神經(jīng)網(wǎng)絡(luò)需要反向傳播,誤差回傳更新參數(shù)梯度,如果中間有一個(gè)節(jié)點(diǎn)不可微分的話就會(huì)導(dǎo)致?lián)p失無法回傳,所以需要可微,但是可以適當(dāng)?shù)姆趴s,幾乎處處可微就可以了,允許在特殊的點(diǎn)不可微,然后不要讓這些個(gè)別的點(diǎn)影響了大局觀就可以。如ReLU在x=0的點(diǎn)就是不可微的。
??激活函數(shù)的發(fā)展就是不斷發(fā)現(xiàn)已有函數(shù)的問題,然后去應(yīng)對(duì)這個(gè)問題,提出新的方法,這本來就是一種優(yōu)化,講到發(fā)展的時(shí)候可能會(huì)提到一些概念,提前將這些概念進(jìn)行梳理。
?? 飽和,是指激活函數(shù)在趨于無窮的時(shí)候,激活函數(shù)的導(dǎo)數(shù)極限為0,與導(dǎo)數(shù)極限一樣,飽和分為左飽和右飽和,左飽和是指激活函數(shù)左邊導(dǎo)數(shù)收斂到0,也就是 x → ? ∞ x\rightarrow-\infty x→?∞,右飽和則是 x → + ∞ x\rightarrow+\infty x→+∞。如果左右兩邊都飽和,則可以稱為飽和。
lim ? x → ∞ f ′ ( x ) = 0 \lim_{x\rightarrow\infty }f'(x)=0 x→∞lim?f′(x)=0
?? 硬飽和、軟飽和,硬飽和是指不是極限等于0,而是真的就等于0,當(dāng) ∣ x ∣ > c |x|>c ∣x∣>c之后, f ′ ( x ) ≡ 0 f'(x)\equiv0 f′(x)≡0。這就意味著 f ( x ) ≡ C f(x)\equiv C f(x)≡C。顯然ReLU函數(shù),在左邊是恒等于0的,所以導(dǎo)數(shù)也是恒等于0,是左硬飽和。飽和特性對(duì)于噪聲有一定的敏感性,不至于因?yàn)閭€(gè)別絕對(duì)值特別大的值而影響函數(shù)的輸出,但是飽和會(huì)帶來一個(gè)缺點(diǎn)就是梯度消失,這個(gè)分析具體會(huì)在后面展開。
??為了保證文章撰寫的邏輯清晰,我將每個(gè)激活函數(shù)組織成一篇文章,不至于在看的時(shí)候?qū)τ邶嫶蟮母拍疃鴷灥埂?
系列文章:
神經(jīng)網(wǎng)絡(luò)中的激活函數(shù)總述
sigmoid激活函數(shù)
tanh激活函數(shù)
ReLU系列激活函數(shù)
maxout激活函數(shù)
Swish激活函數(shù)
激活函數(shù)發(fā)展的新里程——EvoNorms
總結(jié)
- 上一篇: [阶段4 企业开发进阶] 8. Dock
- 下一篇: 如何改变computed执行_皓儿日记2