神經網路中的啟用函式:Sigmoid 與 Tanh
引言
由於可能會引入神經元輸出的非線性,啟用函式對於神經網路的功能至關重要。Sigmoid 和 Tanh 是神經網路中最常用的兩種啟用函式。Sigmoid 函式通常用於二元分類問題的輸出層,將輸入值對映到 0 到 1 之間的範圍。Tanh 函式通常用於神經網路的深層,將輸入值對映到 -1 到 1 之間的範圍。兩種函式的使用取決於所解決問題的具體需求,因為兩者都有優點和缺點。本文將探討神經網路中 Sigmoid 和 Tanh 啟用函式之間的區別,並提供一些關於哪種函式最適合特定型別問題的建議。
什麼是啟用函式?
在神經網路中,啟用函式是一個數學函式,應用於網路某一層中每個神經元的輸出。啟用函式將非線性引入神經元的輸出,使網路能夠模擬輸入和輸出變數之間更復雜的相互作用。
在神經網路中,每個神經元接收來自前一層的輸入,然後其輸出透過啟用函式傳遞。啟用函式修改神經元的輸出,修改後的輸出隨後作為輸入傳遞到網路的下一層。
神經網路中使用了許多型別的啟用函式,例如 Sigmoid、Tanh、ReLU(線性整流單元)和 Softmax。每個啟用函式都有其獨特的數學形式和特性,使其適用於特定類別的問題和架構設計。
啟用函式是神經網路理解輸入和輸出變數之間非線性關係的關鍵組成部分。如果沒有啟用函式,神經網路只能描述線性關係,這對於許多現實世界的應用來說是不夠的。
Sigmoid 啟用函式
Sigmoid 啟用函式經常用於神經網路中。它是一個數學函式,將神經元的輸入轉換為 0 到 1 之間的數值。
Sigmoid 函式的數學形式如下:
其中 x 是神經元的輸入,σ(x) = 1 / (1 + exp(-x))。
當輸入很大時,Sigmoid 函式的輸出接近於 1。相反,當輸入很小時,Sigmoid 函式的輸出接近於 0。Sigmoid 函式的平滑 S 形曲線使其可微分,並適用於神經網路訓練中使用的反向傳播方法。
Sigmoid 函式通常用於二元分類問題的輸出層,其中網路的輸出需要是一個 0 到 1 之間的機率值。它也可以用於淺層神經網路的隱藏層,但它存在梯度消失問題,即當輸入非常大或非常小時,函式的梯度變得非常小。
雖然 Sigmoid 函式過去被廣泛使用,但近年來由於 ReLU 及其變體在深度神經網路上的優越效能,其使用有所減少。
Tanh 啟用函式
Tanh(雙曲正切)啟用函式也經常用於神經網路中。它是一個數學函式,將神經元的輸入轉換為 -1 到 1 之間的數值。
Tanh 函式的公式如下:tanh(x) = (exp(x) - exp(-x)) / (exp(x) + exp(-x))。
其中 x 是神經元的輸入。
與 Sigmoid 函式類似,Tanh 函式具有平滑的 S 形曲線,使其可微分,並適用於神經網路訓練中使用的反向傳播方法。
Tanh 函式相對於 Sigmoid 函式的一個優點是它以零為中心,這意味著它的輸出關於零對稱。此屬性使其在神經網路的隱藏層中非常有用,因為它允許網路對輸入和輸出變數之間的正相關和負相關進行建模。
Tanh 函式通常用於神經網路的隱藏層,因為它將非線性引入網路,並可以捕捉輸入的微小變化。但是,它也存在梯度消失問題,即當輸入非常大或非常小時,函式的梯度變得非常小,這可能會減慢深度神經網路的訓練速度。
總的來說,Tanh 函式是神經網路中一個有用的啟用函式,尤其是在隱藏層中,它可以捕捉輸入和輸出變數之間複雜的關係。
Sigmoid vs Tanh
Sigmoid 函式
使用 Sigmoid 函式將輸入值對映到 0 到 1 之間的範圍。
具有平滑的 S 曲線。
用於二元分類問題的輸出層。
存在梯度消失問題,即當輸入值很大或很小時,函式的梯度會迅速減小。
可以向網路引入非線性,並捕捉輸入的微小變化。
Tanh 函式
將輸入值對映到 -1 到 1 之間的範圍。
具有平滑的 S 曲線。
用於神經網路的隱藏層。
以零為中心,可以捕捉輸入和輸出變數之間的正相關和負相關。
存在梯度消失問題。
可以向網路引入非線性,並捕捉輸入和輸出變數之間的複雜關係。
標準 |
Sigmoid 函式 |
Tanh 函式 |
---|---|---|
數學形式 |
σ(x) = 1 / (1 + exp(-x)) |
tanh(x) = (exp(x) - exp(-x)) / (exp(x) + exp(-x)) |
輸出範圍 |
0 到 1 |
-1 到 1 |
以零為中心 |
否 |
是 |
用例 |
二元分類問題的輸出層,淺層神經網路的隱藏層 |
神經網路的隱藏層 |
優點 |
可微分,引入非線性,用於二元分類問題 |
在零附近具有較陡的梯度,可以捕捉輸入的微小變化 |
缺點 |
存在梯度消失問題,輸出未以零為中心 |
存在梯度消失問題,當輸入過大時可能導致梯度爆炸問題 |
結論
總而言之,Sigmoid 和 Tanh 函式經常用作神經網路中的啟用函式。Sigmoid 函式通常用於淺層神經網路的隱藏層和二元分類任務的輸出層。Tanh 函式通常用於神經網路的隱藏層,因為它在 0 附近具有比 Sigmoid 函式更陡峭的梯度。兩種函式都存在梯度消失問題,但 Tanh 函式也可能導致梯度爆炸。選擇啟用函式時,務必考慮資料集和任務的具體特性,以及每個函式的優點和缺點。