什么是 Softsign 函数?
Softsign 函数是神经网络中常用的一种平滑激活函数,定义为 \(\phi(x) = \frac{x}{1 + |x|}\)。它能把任意实数输入映射到开区间 \((-1, 1)\) 内,作用与双曲正切(tanh)类似,但趋近饱和上下限的速度更慢。这种更"温和"的饱和特性有助于缓解训练过程中的梯度消失问题。本计算器同时给出函数值 \(\phi(x)\),并以一阶导数 \(\phi'(x)\) 作为主要输出结果。
如何使用本计算器
在输入框中填入任意实数 \(x\)——正数、负数或零均可——即可读取 \(\phi'(x)\)(即 Softsign 曲线的斜率)以及 \(\phi(x)\)(激活输出值)。整个计算不涉及任何单位,\(x\) 是一个无量纲的纯实数。默认输入值为 \(x = 0.5\)。
公式详解
函数 \(\phi(x) = \frac{x}{1 + |x|}\) 的导数为
$$\phi'(x) = \frac{1}{\left(1 + \left|x\right|\right)^{2}}$$由于分母 \((1 + |x|)\) 恒大于等于 1,因此该导数始终严格为正,取值范围落在区间 \((0, 1]\) 内。导数在 \(x = 0\) 处取得最大值 1,此处曲线最为陡峭。随着 \(|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$$也就是说,在 \(x = 0.5\) 处,Softsign 曲线的输出约为 0.3333,斜率约为 0.4444。
常见问题
Softsign 在所有点都可导吗?是的。尽管 \(|x|\) 在 \(x = 0\) 处存在一个折点,但 \(\phi\) 在该点的左导数与右导数都等于 1,因此 \(\phi\) 在 \(x = 0\) 以及其他任意位置都是可导的。
导数有可能为负吗?不会。\(\phi'(x) = \frac{1}{\left(1 + |x|\right)^{2}}\) 始终为正,因为它等于 1 除以一个正数的平方。
Softsign 与 tanh 有什么区别?两者都会饱和到 \((-1, 1)\) 区间,但 Softsign 采用的是多项式(\(1/x^2\))尾部,而 tanh 采用的是指数尾部。因此 Softsign 饱和得更慢,在远离零点的区域仍能保留稍大一些的梯度。