什么是 Softplus 函数?
Softplus 函数 \(f(x) = \ln(1 + e^{x})\) 是神经网络中常用的 ReLU(修正线性单元)激活函数的一种光滑、可微近似。与在原点处存在尖锐折角的 ReLU 不同,Softplus 处处光滑,且始终严格大于零。本计算器会在你设定的区间内生成 x、f(x) 及其一阶导数的数值表,并同时绘制两条曲线,让你直观看到那条从平缓 S 形过渡到线性斜坡的典型曲线。
使用方法
只需输入三个数值:x 的初始值(第一个横坐标)、步长(相邻点之间的间隔)以及重复次数(要生成多少行数据)。举例来说,初始值取 -5、步长取 0.1、重复 101 次,就会得到从 -5.0 到 +5.0 的 x 序列。计算结果是一张可滚动的数值表,外加一幅同时展示 Softplus 及其导数的图像。
公式详解
Softplus 的表达式为 $$f(x) = \ln(1 + e^{x}).$$ 它的导数是 $$f'(x) = \frac{e^{x}}{1 + e^{x}} = \frac{1}{1 + e^{-x}},$$ 这恰好就是逻辑斯谛(logistic)sigmoid 函数。当 x 取很大的正值时,\(f(x)\) 趋近于 \(x\),\(f'(x)\) 趋近于 1;当 x 取很大的负值时,\(f(x)\) 趋近于 0,\(f'(x)\) 也趋近于 0。为了在 x 较大时避免数值溢出,本工具采用数值稳定的写法:$$f(x) = \max(x, 0) + \ln\!\left(1 + e^{-|x|}\right).$$
计算实例
当 \(x = 0\) 时:$$f(0) = \ln(2) = 0.693147, \qquad f'(0) = 0.5.$$ 当 \(x = 1\) 时:$$f(1) = \ln(1 + 2.718282) = 1.313262, \qquad f'(1) = \frac{1}{1 + e^{-1}} = 0.731059.$$ 当 \(x = -1\) 时:$$f(-1) = 0.313262, \qquad f'(-1) = 0.268941.$$ 注意这里有一个恒等式 \(f(x) - f(-x) = x\),例如 \(1.313262 - 0.313262 = 1\)。
常见问题
为什么要用 Softplus 而不是 ReLU?Softplus 处处光滑,且在任意点都有非零梯度,这有助于基于梯度的优化过程;不过相比之下,ReLU 的计算成本更低。
输出值是否始终为正?是的。对任意有限的 x,都有 \(1 + e^{x} > 1\),因此 \(\ln(1 + e^{x}) > 0\) 恒成立。
导数代表什么?它表示 Softplus 曲线的斜率,并且等于逻辑斯谛 sigmoid 函数,其取值从 0 单调递增到 1,在 \(x = 0\) 处恰好为 0.5。