Sigmoid 函数 是一种常用的数学函数,具有 S 形的曲线特征。它在机器学习、控制系统和神经网络中广泛应用,主要用于将输入值映射到一个平滑的、有界的输出范围内(通常是 0 到 1 或 -1 到 1)。以下是 Sigmoid 函数的详细介绍:
1. Sigmoid 函数的定义
最常见的 Sigmoid 函数是 Logistic Sigmoid 函数,其数学表达式为:
其中:
-
是输入值,可以是任意实数。
-
是自然对数的底数(约等于 2.71828)。
-
是输出值,范围在 之间。
2. Sigmoid 函数的特性
-
输出范围:Sigmoid 函数的输出值范围是 ,即无论输入值多大或多小,输出值都会接近 0 或 1,但永远不会达到 0 或 1。
-
平滑性:Sigmoid 函数是连续且可导的,其导数可以用函数本身表示:
这一特性在梯度下降等优化算法中非常有用。
-
对称性:Sigmoid 函数关于点 对称。
-
单调性:Sigmoid 函数是单调递增的,即随着 的增加, 也会增加。
3. Sigmoid 函数的图像
Sigmoid 函数的图像是一条 S 形曲线,如下图所示:
1 | * | * | * | * | * | * | * | * | * | * |* 0 +---------------- -∞ +∞
-
当 趋近于 时, 趋近于 0。
-
当 趋近于 时, 趋近于 1。
-
当 时,。
4. Sigmoid 函数的应用
Sigmoid 函数在多个领域中有广泛应用,包括:
(1) 机器学习与神经网络
-
激活函数:Sigmoid 函数常用于神经网络的激活函数,将神经元的输入映射到 之间。
-
二分类问题:在逻辑回归中,Sigmoid 函数用于将线性模型的输出转换为概率值(0 到 1 之间)。
(2) 控制系统
-
平滑控制:Sigmoid 函数用于实现平滑的控制响应,例如在比例控制器中,将过程变量与设定值之间的偏差映射到控制输出。
(3) 概率建模
-
概率分布:Sigmoid 函数可以用于表示概率值,例如在二分类问题中,输出值可以解释为属于某一类的概率。
5. Sigmoid 函数的变体
除了标准的 Logistic Sigmoid 函数外,还有一些常见的变体:
(1) 双曲正切函数(Tanh)
-
输出范围是 。
-
与 Sigmoid 函数类似,但关于原点对称。
(2) Hard Sigmoid
-
输出范围是 。
-
计算速度更快,但平滑性较差。
6. Sigmoid 函数的优缺点
优点:
-
输出值范围有限,适合表示概率或归一化的值。
-
平滑且可导,适合梯度下降等优化算法。
缺点:
-
梯度消失问题:当输入值 很大或很小时,Sigmoid 函数的导数接近 0,导致梯度下降更新缓慢。
-
非零中心性:Sigmoid 函数的输出值范围是 ,不是以 0 为中心的,可能导致训练效率降低。
7. 在 proportionalControl
函数中的应用
在 proportionalControl
函数中,Sigmoid 函数用于将过程变量 processVar
与设定值 setPt
之间的偏差映射到控制输出 ctrl
的范围内(min
到 max
)。具体公式为:
-
当
processVar
接近setPt
时,Sigmoid 函数的输出接近 0,ctrl
接近min
。 -
当
processVar
接近setPt + pBand
时,Sigmoid 函数的输出接近 1,ctrl
接近max
。 -
在
setPt
和setPt + pBand
之间,Sigmoid 函数实现平滑过渡。
总结
Sigmoid 函数是一种重要的数学工具,具有平滑、有界的特性,广泛应用于机器学习、控制系统和概率建模等领域。在 proportionalControl
函数中,它用于实现平滑的比例控制响应。