什麼是 Softsign 函數?
Softsign 是神經網路中常用的平滑激活函數,定義為 \(\phi(x) = x / (1 + |x|)\)。它能將任意實數輸入映射到開區間 \((-1, 1)\),性質與雙曲正切(tanh)相似,但趨近飽和上下限的速度更慢。這種較為和緩的飽和特性,有助於在訓練過程中減輕梯度消失(vanishing gradient)的問題。本計算器會同時回傳函數值 \(\phi(x)\),並以一階導數 \(\phi'(x)\) 作為主要輸出。
如何使用本計算器
在 \(x\) 欄位輸入任意實數——正數、負數或零皆可——即可讀取 \(\phi'(x)\)(Softsign 曲線的斜率)以及 \(\phi(x)\)(激活輸出值)。計算過程不涉及任何單位,\(x\) 是純粹的無因次實數。預設輸入值為 \(x = 0.5\)。
公式解析
\(\phi(x) = x / (1 + |x|)\) 的導數為 $$\phi'(x) = \frac{1}{\left(1 + \left|x\right|\right)^{2}}$$ 由於分母 \((1 + |x|)\) 必定大於或等於 \(1\),因此導數恆為正值,且落在 \((0, 1]\) 區間內。其最大值 \(1\) 出現在 \(x = 0\) 處,此時函數曲線最為陡峭。當 \(|x|\) 越來越大時,\(\phi'(x)\) 會趨近於 \(0\),正好反映出函數逐漸進入飽和的特性。
實例演算
以 \(x = 0.5\) 為例:\(|x| = 0.5\),因此 \(1 + |x| = 1.5\)。函數值為 $$\phi(0.5) = \frac{0.5}{1.5} = 0.333333\ldots$$ 而導數為 $$\phi'(0.5) = \frac{1}{1.5^{2}} = \frac{1}{2.25} = 0.444444\ldots$$ 換言之,Softsign 曲線在 \(x = 0.5\) 處的輸出值約為 \(0.3333\),斜率約為 \(0.4444\)。
常見問題
Softsign 在所有點都可微分嗎?是的。雖然 \(|x|\) 在 \(x = 0\) 處有一個尖點,但 \(\phi\) 在該點的左導數與右導數同樣都等於 \(1\),因此 \(\phi\) 在 \(0\) 以及其他所有點都是可微分的。
導數有可能為負值嗎?不可能。\(\phi'(x) = \frac{1}{\left(1 + \left|x\right|\right)^{2}}\) 恆為正值,因為它是 \(1\) 除以一個正數的平方。
Softsign 與 tanh 有何差異?兩者都飽和於 \((-1, 1)\),但 Softsign 採用多項式型(\(1/x^2\))的尾部,而非 tanh 的指數型尾部,因此飽和速度較慢,在遠離原點處也能保留稍大的梯度。