什么是 Softsign 函数?
Softsign 是神经网络中常用的一种激活函数,其定义为 \(\phi(x) = \frac{x}{1+|x|}\)。与双曲正切函数(tanh)类似,它平滑、呈 S 形,且取值被限制在开区间 (-1, 1) 之内。两者的关键区别在于趋近渐近线的方式:Softsign 以多项式方式(约为 \(\frac{1}{|x|}\))逼近 ±1,而 tanh 则以指数方式逼近。正是这种较慢的饱和速度,在某些网络结构中有助于缓解梯度消失问题。
如何使用本计算器
请输入三个数值:x 的初始值(即第一行的 x)、步长(每行递增量)(每一行相对上一行增加的数值),以及行数(重复次数)(要生成的行数)。计算器会为每个点生成一张包含 x、Softsign 值 \(\phi(x)\) 以及一阶导数 \(\phi'(x)\) 的数值表,你可以据此绘制曲线,或查看具体某个点的取值。
公式详解
对每一行,令 \(a = 1 + |x|\),则 $$\phi(x) = \frac{x}{a}, \qquad \phi'(x) = \frac{1}{a^2}.$$ 由于 \(|x|\) 永不为负,分母 \(a\) 始终不小于 1,因此永远不会出现除以零的情况,函数在任意点都保持平滑。Softsign 是奇函数(\(\phi(-x) = -\phi(x)\)),而它的导数是偶函数(\(\phi'(-x) = \phi'(x)\))。在原点处,\(\phi(0) = 0\),\(\phi'(0) = 1\)。
计算示例
当 \(x = -5\) 时:\(a = 1 + 5 = 6\),于是 $$\phi(-5) = \frac{-5}{6} = -0.8333333, \qquad \phi'(-5) = \frac{1}{36} = 0.0277778.$$ 当 \(x = 1\) 时:\(a = 2\),于是 \(\phi(1) = 0.5\),\(\phi'(1) = 0.25\)。当 \(x = 0\) 时:\(a = 1\),于是 \(\phi(0) = 0\),\(\phi'(0) = 1\)。若采用默认设置(起始值 -5、步长 0.1、共 101 行),数值表将从 \(x = -5\) 扫描到 \(x = +5\)。
常见问题
为什么导数永远不会为负?因为 \(\phi'(x) = \frac{1}{(1+|x|)^2}\) 是一个平方项的倒数,它恒为正值,这意味着 Softsign 是单调递增的。
Softsign 与 tanh 有什么不同?两者都会饱和到一个有界范围,但 Softsign 的饱和更为平缓(属于有理式衰减),而 tanh 是指数衰减。因此 Softsign 能在更宽的输入范围内保持梯度不至于消失。
步长可以为负数吗?可以。负步长会让数值表逐行递减;步长为零则每一行都会重复同一个 x 值。