澳門網(wǎng)站后綴開發(fā)外包網(wǎng)站
激活函數(shù)在神經(jīng)元中非常重要的。為了增強(qiáng)網(wǎng)絡(luò)的表示能力和學(xué)習(xí)能力,激活函數(shù)需要具備以下幾點(diǎn)性質(zhì):
(1) 連續(xù)并可導(dǎo)(允許少數(shù)點(diǎn)上不可導(dǎo))的非線性函數(shù)??蓪?dǎo)的激活函數(shù)可以直接利用數(shù)值優(yōu)化的方法來學(xué)習(xí)網(wǎng)絡(luò)參數(shù).
(2) 激活函數(shù)及其導(dǎo)函數(shù)要盡可能的簡單,有利于提高網(wǎng)絡(luò)計(jì)算效率。
(3) 激活函數(shù)的導(dǎo)函數(shù)的值域要在一個(gè)合適的區(qū)間內(nèi),不能太大也不能太 小,否則會影響訓(xùn)練的效率和穩(wěn)定性。
本文介紹在神經(jīng)網(wǎng)絡(luò)中常用的激活函數(shù)之一:Sigmoid 型函數(shù)
一、Sigmoid 型函數(shù)
Sigmoid 型函數(shù)是指一類 S 型曲線函數(shù),為兩端飽和函數(shù)(關(guān)于飽和函數(shù)的概念。上一博文有介紹)。常用的 Sigmoid 型函數(shù)有 Logistic 函數(shù)和 Tanh 函數(shù)。
對于函數(shù) 𝑓(𝑥),若 𝑥 → ?∞ 時(shí),其導(dǎo)數(shù) 𝑓′(𝑥) → 0,則稱其為左飽和。
若 𝑥 → +∞ 時(shí),其導(dǎo)數(shù) 𝑓′(𝑥) → 0,則稱其為右飽和.當(dāng)同時(shí)滿足左、右飽和時(shí),就稱為兩端飽和。
二、Logistic 函數(shù)
1、定義
2、特性說明
(1)Logistic 函數(shù)可以看成是一個(gè)“擠壓”函數(shù),把一個(gè)實(shí)數(shù)域的輸入“擠壓”到 (0, 1)
(2)當(dāng)輸入值在 0 附近時(shí),Sigmoid 型函數(shù)近似為線性函數(shù)
(3)當(dāng)輸入值靠近兩端 時(shí),對輸入進(jìn)行抑制
(4)輸入越小,越接近于 0; 輸入越大,越接近于 1
和感知器使用的階躍激活函數(shù)相比,Logistic 函數(shù)是連續(xù)可導(dǎo)的, 其數(shù)學(xué)性質(zhì)更好。
因此裝備了 Logistic 激活函數(shù)的神經(jīng)元,具有以下 兩點(diǎn)性質(zhì):
(1)其輸出直接可以看作概率分布,使得神經(jīng)網(wǎng)絡(luò)可以更好地和統(tǒng)計(jì) 學(xué)習(xí)模型進(jìn)行結(jié)合
(2)其可以看作一個(gè)軟性門(Soft Gate),用來控制其他神經(jīng) 元輸出信息的數(shù)量
3、梯度與訓(xùn)練
Logistic函數(shù)的導(dǎo)數(shù)具有一個(gè)簡單的形式:
σ′(z)=σ(z)(1?σ(z)).
這種形式在梯度下降算法中非常有用,因?yàn)樗沟梅聪騻鞑ブ刑荻扔?jì)算簡單且高效。同時(shí),當(dāng) zzz 處于極端值(很大或很小)時(shí),導(dǎo)數(shù)趨近于0,這也會引起梯度消失問題,這一點(diǎn)在設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)時(shí)需要注意。
Logistic函數(shù),除了用于神經(jīng)網(wǎng)絡(luò)激活函數(shù),還可以用于邏輯回歸(這個(gè)在Logistic回歸的博文中有介紹)
三、Tanh 函數(shù)?
Tanh 函數(shù),即雙曲正切函數(shù),其數(shù)學(xué)表達(dá)式為
它將任意實(shí)數(shù) x?映射到區(qū)間 (?1,1)。下面詳細(xì)說明其性質(zhì)和理解方式:
1. 基本性質(zhì)
-
輸出范圍:
tanh?(x)?的輸出在 ?1?到 1 之間。當(dāng) x?越大時(shí),tanh?(x) 趨近于 1;當(dāng) xx 越小(即負(fù)數(shù)絕對值越大)時(shí),tanh?(x) 趨近于 ?1。 -
對稱性:
tanh?(x) 是一個(gè)奇函數(shù)(關(guān)于遠(yuǎn)點(diǎn)對稱),即 tanh?(?x)=?tanh?(x),這意味著它關(guān)于原點(diǎn)對稱。 -
平滑性:
tanh?(x) 是連續(xù)且可微的,導(dǎo)數(shù)為這使得它在神經(jīng)網(wǎng)絡(luò)中作為激活函數(shù)時(shí),能夠提供平滑的梯度,有助于梯度傳播。
2. 與其他激活函數(shù)的比較
-
與 Logistic 函數(shù):
? ? ? ? ?tanh(𝑥) = 2𝜎(2𝑥) ? 1.(從這里可以看出兩者之間的轉(zhuǎn)化)
? ? ? ? tanh 函數(shù)可以看作放大并平移的 Logistic 函數(shù),其值域是 (?1, 1).
? ? ? ??Tanh 函數(shù)的輸出是零中心化的(Zero-Centered),而 Logistic 函數(shù)的輸出恒大于 0。非零中心化的輸出會使得其后一層的神經(jīng)元的輸入發(fā)生偏置偏移(Bias Shift),并進(jìn)一步使得梯度下降的收斂速度變慢。Logistic 函數(shù)和 Tanh 函數(shù)的形狀如下圖:
-
非線性特性:
兩者都具有 S 型(sigmoidal)曲線,但由于輸出范圍不同,tanh?(x) 在處理數(shù)據(jù)時(shí)往往能更好地平衡正負(fù)信息。
3. 如何理解“附近”及應(yīng)用
-
直觀理解:
當(dāng) x?較小(接近 0)時(shí),tanh?(0)=0 且近似于線性函數(shù),因?yàn)槠鋵?dǎo)數(shù) 1 - tanh^2(0)=1;當(dāng) x?較大或較小時(shí),函數(shù)逐漸飽和,輸出接近 1?或 ?1,說明輸入的極端值不會導(dǎo)致輸出劇烈變化。這種“飽和性”特性在神經(jīng)網(wǎng)絡(luò)中既有利于穩(wěn)定輸出,也可能引發(fā)梯度消失問題。 -
實(shí)際應(yīng)用:
在神經(jīng)網(wǎng)絡(luò)中,tanh?(x)? 常作為隱藏層的激活函數(shù),幫助模型引入非線性。由于它的輸出是零中心化的,能在一定程度上幫助緩解梯度下降過程中梯度偏移的問題。
4. 舉例說明
例子:在神經(jīng)網(wǎng)絡(luò)中的應(yīng)用
這種激活機(jī)制幫助神經(jīng)網(wǎng)絡(luò)引入非線性特征,使得多個(gè)神經(jīng)元層的組合能夠逼近復(fù)雜函數(shù)。
四、Hard-Logistic 函數(shù)
1、Hard-Logistic 函數(shù)定義
以 Logistic 函數(shù) 𝜎(𝑥) 為例,其導(dǎo)數(shù)為 𝜎′(𝑥) = 𝜎(𝑥)(1 ? 𝜎(𝑥)).
Logistic 函數(shù)在 0 附近的一階泰勒展開(Taylor expansion)為:
這樣 Logistic 函數(shù)可以用分段函數(shù) hard-logistic(𝑥) 來近似:
亦即:
2、Hard-Logistic 函數(shù)的形狀:
?3、如何理解:
五、Hard-Tanh 函數(shù)
1、Hard-Tanh 函數(shù)定義
tanh 函數(shù)在 0 附近的一階泰勒展開為:
這樣 Tanh 函數(shù)也可以用分段函數(shù) hard-tanh(𝑥) 來近似:
亦即:
2、Hard-Tanh 函數(shù)的形狀:
?3、如何理解:
六、“hard”激活函數(shù)的應(yīng)用場景和優(yōu)勢
- 計(jì)算效率:
“Hard”激活函數(shù)由于只涉及簡單的加減和比較運(yùn)算,相比于傳統(tǒng)的 Sigmoid 或 Tanh,可以大幅減少計(jì)算量,適合于對計(jì)算資源要求較高的場景(如移動設(shè)備、嵌入式系統(tǒng))。 - 簡單性:
它們的數(shù)學(xué)表達(dá)和梯度形式非常簡單,這在理論分析和工程實(shí)現(xiàn)中都具有優(yōu)勢。 - 應(yīng)用實(shí)例:
在一些深度學(xué)習(xí)網(wǎng)絡(luò)或強(qiáng)化學(xué)習(xí)模型中,為了加速訓(xùn)練和推理,可以選擇使用 Hard-Tanh 或 Hard-Logistic 作為激活函數(shù),從而在保持性能的同時(shí)提升效率。
? ? ? 總體來說,Hard-Logistic 和 Hard-Tanh 都是為了在某些場景下(如資源受限的環(huán)境或需要快速推理的應(yīng)用中)替代傳統(tǒng)平滑激活函數(shù)而設(shè)計(jì)的簡化版本,雖然它們犧牲了一定的精細(xì)度,但換來了計(jì)算上的加速和實(shí)現(xiàn)上的簡單。
七、附加:tanh(𝑥) = 2𝜎(2𝑥) ? 1的推導(dǎo)過程
我們來學(xué)習(xí)一下雙曲正切函數(shù)(tanh)和Logistic函數(shù)(σ)的推導(dǎo)關(guān)系,以加深大家對兩個(gè)函數(shù)的理解和認(rèn)識。
1. 推導(dǎo)過程
步驟 1:調(diào)整Logistic函數(shù)的輸入和輸出范圍
Logistic函數(shù)的輸出范圍為?(0,1),而tanh的輸出范圍為?(?1,1)。需對Logistic函數(shù)進(jìn)行線性變換:
目標(biāo)形式:tanh?(x)=A?σ(Bx)+C,
其中?A、B、C?為待定系數(shù)。
步驟 2:確定參數(shù)?B(縮放輸入)
將Logistic函數(shù)的輸入縮放為?2x,即:
這樣做的目的是使Logistic函數(shù)的斜率更陡峭,與tanh的形狀更接近。
步驟 3:確定參數(shù)?A?和?C(調(diào)整輸出范圍)
將?σ(2x)?的輸入調(diào)整后,進(jìn)一步通過線性變換將其輸出從?(0,1)?映射到?(?1,1):
步驟 4:代數(shù)化簡
將等式右側(cè)通分:
步驟 5:與tanh的表達(dá)式對比
2.關(guān)鍵推導(dǎo)總結(jié)
-
輸入縮放:通過將輸入?x?放大為?2x,使得Logistic函數(shù)?σ(2x) 的斜率與tanh匹配。
-
輸出調(diào)整:通過線性變換?2σ(2x)?1,將輸出范圍從?(0,1)映射到?(?1,1)。
-
代數(shù)恒等式:化簡后與tanh的定義式完全一致。
?3.直觀理解
-
幾何意義:
tanh是中心對稱的S型曲線(關(guān)于原點(diǎn)對稱),而Logistic函數(shù)是右移的S型曲線。通過縮放輸入(2x)和調(diào)整輸出(2σ?1),Logistic函數(shù)被“拉伸”并“平移”為tanh。 -
參數(shù)作用:
-
B=2:使Logistic函數(shù)的斜率加倍,與tanh的陡峭度一致。
-
A=2?和?C=?1:將輸出范圍從?(0,1)(0,1)?線性映射到?(?1,1)(?1,1)。
-
通過縮放Logistic函數(shù)的輸入(2x)和調(diào)整輸出(2σ?1),可以精確得到雙曲正切函數(shù)?tanh?(x)。這一關(guān)系在神經(jīng)網(wǎng)絡(luò)中常用于激活函數(shù)的轉(zhuǎn)換,尤其在需要中心化輸出時(shí)(如循環(huán)神經(jīng)網(wǎng)絡(luò))。