【深度学习pytorch-24】sigmoid激活函数

1. Sigmoid 函数的公式

Sigmoid 激活函数的数学表达式为:

f ( x ) = 1 1 + e − x f(x) = \frac{1}{1 + e^{-x}} f(x)=1+ex1

其中:

  • ( x ) 是输入值,可以是神经元接收到的加权和。
  • ( e ) 是自然对数的底数。

Sigmoid 函数将输入值映射到 ( (0, 1) ) 之间,输出可以解释为概率值,因此常用于二分类问题的输出层。

2. Sigmoid 函数的图像

Sigmoid 函数的图像呈现为平滑的 S 形曲线,输出值位于 ( (0, 1) ) 之间。随着输入值的增大,函数的输出逐渐趋近于 1;而随着输入值的减小,输出逐渐趋近于 0。

特点:
  • 当 ( x \to \infty ) 时,( f(x) \to 1 )
  • 当 ( x \to -\infty ) 时,( f(x) \to 0 )
  • 当 ( x = 0 ) 时,( f(x) = 0.5 )

3. Sigmoid 函数的作用与优缺点

3.1 优点
  • 输出范围明确:Sigmoid 函数将输出压缩到 ( (0, 1) ) 之间,适用于二分类问题,输出值可以解释为概率(例如,某个样本属于某一类的概率)。
  • 平滑、连续且可导:Sigmoid 函数是平滑且连续的,具有明确的数学性质,能够在反向传播过程中顺利地进行梯度计算。
3.2 缺点
  • 梯度消失问题:当输入值非常大或非常小时,Sigmoid 函数的梯度非常小(接近于 0)。这种梯度消失现象会导致深层网络在训练时更新非常缓慢,从而减缓网络的收敛速度,甚至无法有效训练深层网络。
  • 计算效率低:Sigmoid 函数的计算涉及指数运算,相对较慢,尤其在计算大量样本时。
  • 输出不对称:Sigmoid 的输出范围是 ( (0, 1) ),如果我们希望网络的输出能够覆盖更大的范围,Sigmoid 可能不适合。

4. Sigmoid 函数与其他激活函数的比较

与其他常用的激活函数(如 ReLUTanh)相比,Sigmoid 有以下不同点:

  • Sigmoid vs ReLU

    • Sigmoid:适合输出为概率的任务,且对负输入有输出(介于 0 和 1 之间)。但在较大输入时会出现梯度消失问题。
    • ReLU:广泛用于隐藏层,解决了梯度消失问题,并且计算效率较高。但 ReLU 对负输入输出为 0,这可能会导致部分神经元“死亡”。
  • Sigmoid vs Tanh

    • Sigmoid:输出范围为 ( (0, 1) ),更适合用于二分类的概率输出。
    • Tanh:输出范围为 ( (-1, 1) ),对称性更好,但也存在梯度消失问题。

5. Sigmoid 函数的应用

Sigmoid 激活函数常用于:

  • 二分类问题的输出层:Sigmoid 函数常用于二分类问题的输出层。在这种情况下,输出层会产生一个介于 0 和 1 之间的概率值,表示样本属于某一类的概率。若输出大于 0.5,则预测为类别 1,若小于 0.5,则预测为类别 0。

    示例:如果一个模型用于判断某个邮件是否是垃圾邮件,Sigmoid 输出可能是 0.8,意味着该邮件是垃圾邮件的概率为 80%。

  • 神经网络中的激活函数:尽管现在很多深度神经网络的隐藏层不再使用 Sigmoid 激活函数,但在早期的神经网络中,Sigmoid 是隐藏层的常用激活函数。

6. Sigmoid 函数在训练中的影响

Sigmoid 函数在训练过程中会遇到以下问题:

  • 梯度消失:在输入值很大或很小的情况下,Sigmoid 的导数会非常小,导致反向传播时梯度几乎为零,从而影响模型的训练效率。

    例如,当输入非常大时,Sigmoid 函数的输出接近 1,梯度几乎为 0;当输入非常小(负值很大)时,Sigmoid 函数的输出接近 0,梯度也接近 0。

  • Vanishing Gradient Problem(梯度消失问题)在深层网络中尤为明显,因为反向传播时梯度会随着层数的增加而逐渐变小,导致参数更新缓慢。

7. 优化与替代方案

由于梯度消失问题,许多现代神经网络选择使用 ReLULeaky ReLU 等激活函数来替代 Sigmoid,尤其是在隐藏层中。这些激活函数可以提供更好的训练速度和性能。

总结:

  • Sigmoid 激活函数 是一种将输入值压缩到 ( (0, 1) ) 范围的激活函数,常用于二分类问题的输出层。
  • 它引入了非线性,帮助神经网络拟合复杂的非线性关系。
  • 其缺点包括梯度消失问题,尤其在深层网络中,可能导致训练困难。
  • 在深度网络中,Sigmoid 主要用于输出层,对于隐藏层的激活函数,常常选择 ReLU 或其变种。

Sigmoid 激活函数尽管存在一些限制,但它在许多机器学习和深度学习任务中,尤其是在二分类问题中的输出层,仍然发挥着重要作用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值