神经网络之sigmoid激活函数

🔹 一、Sigmoid 函数的定义

Sigmoid 函数是一种 S 型曲线函数,定义如下:

σ(x)=11+e−x \sigma(x) = \frac{1}{1 + e^{-x}} σ(x)=1+e−x1

其中:

  • x∈(−∞,+∞)x \in (-\infty, +\infty)x∈(−∞,+∞):任意实数输入
  • σ(x)∈(0,1)\sigma(x) \in (0, 1)σ(x)∈(0,1):输出被"压缩"到 0 和 1 之间

🔹 二、函数图像

图像特点:

  • S 型曲线(形似"滑梯")
  • 左侧趋近于 0,右侧趋近于 1
  • 中心对称点:(0,0.5)(0, 0.5)(0,0.5)
  • 单调递增
  • 平滑连续

lim⁡x→−∞σ(x)=0lim⁡x→+∞σ(x)=1σ(0)=0.5 \lim_{x \to -\infty} \sigma(x) = 0 \\ \lim_{x \to +\infty} \sigma(x) = 1 \\ \sigma(0) = 0.5 x→−∞limσ(x)=0x→+∞limσ(x)=1σ(0)=0.5


🔹 三、导数与梯度

Sigmoid 函数的导数非常优美,便于反向传播:

σ′(x)=σ(x)⋅(1−σ(x)) \sigma'(x) = \sigma(x) \cdot (1 - \sigma(x)) σ′(x)=σ(x)⋅(1−σ(x))

特点:

  • 只需要输出本身就能计算导数(简洁高效)
  • 导数最大值为 14=0.25\frac{1}{4} = 0.2541=0.25(当 x=0x = 0x=0)
  • 当 xxx 很大或很小时,导数接近 0 → 梯度消失问题

🔹 四、为什么使用 Sigmoid?

✅ 优点:

优点 说明
非线性 允许神经网络拟合复杂的函数
可微 所有点处都有导数,适合梯度下降法
输出范围 (0,1) 适合做概率解释(例如二分类)
光滑 输出变化连续平滑,有利于优化

❌ 缺点:

缺点 原因与后果
梯度消失 输入很大或很小时导数趋近于 0,导致神经网络前层无法有效训练
非零中心 输出总是正数,会导致偏置更新缓慢,训练不稳定
饱和问题 当输出接近0或1时,对输入的微小变化反应很小,神经元几乎"死掉"
计算慢 涉及指数函数 e−xe^{-x}e−x,相比于 ReLU 类函数更慢

🔹 五、在神经网络中的应用场景

场景 是否推荐使用 Sigmoid?
隐藏层 ❌ 不推荐(容易梯度消失)
输出层(二分类) ✅ 强烈推荐(概率解释 + BCE Loss)
多分类输出层 ❌ 不推荐,推荐使用 Softmax
早期网络结构 ✅ 使用较多(如早期 MLP)

🔹 六、数值实现注意(以 PyTorch 为例)

PyTorch 中常用组合:

python 复制代码
import torch
import torch.nn as nn

# 单独使用 sigmoid
sigmoid = nn.Sigmoid()
out = sigmoid(x)

# 配合 BCE Loss,推荐使用 BCEWithLogitsLoss(数值更稳定)
loss_fn = nn.BCEWithLogitsLoss()

⚠️ 如果你使用了 BCEWithLogitsLoss不要再手动加 Sigmoid,它内部已包含。


🔹 七、Sigmoid 与 Logistic 回归的关系

Sigmoid 函数源自统计学中的 Logistic Regression

p(y=1∣x)=11+e−(wTx+b) p(y=1|x) = \frac{1}{1 + e^{-(w^T x + b)}} p(y=1∣x)=1+e−(wTx+b)1

神经网络中的二分类本质就是将前向传播部分看作线性变换,再通过 sigmoid 输出概率。


🔚 总结:Sigmoid 函数一览表

属性
数学表达式 11+e−x\frac{1}{1 + e^{-x}}1+e−x1
输出范围 (0,1)(0, 1)(0,1)
是否可导 ✅ 是
导数 σ(x)(1−σ(x))\sigma(x)(1 - \sigma(x))σ(x)(1−σ(x))
最大梯度 0.25
是否零中心 ❌ 否
是否饱和 ✅ 是(两端)
常用场景 二分类输出层
替代推荐 隐藏层用 ReLU / GELU / Swish 等更好
相关推荐
小马过河R14 小时前
FDE 到底需要什么技术栈?从全栈工程到 AI 落地的复合能力
人工智能·engineering·harness·驾驭工程·fde·前沿部署工程师
后端小肥肠14 小时前
别再手动找对标了!做公众号漫画,这套工具从选题到发稿全覆盖
人工智能·vibecoding
米小虾14 小时前
GRPO 在长程 Agent 上为什么跑不动了:NVIDIA FlashREINFORCE 的"每个 prompt 只采一条"方案
人工智能
老金带你玩AI15 小时前
我怎么用 AI,同时写内容、做课程、开发产品
人工智能
马剑威(威哥爱编程)15 小时前
【共创稿事节】HarmonyOS 7 应用 Skill 化实战:从“被打开“到“被调用“,把功能递进系统意图分发池
pytorch·深度学习·harmonyos
冬奇Lab15 小时前
DeepSeek Harness 系列(07):能力 Seam——换一行配置,能力全换
人工智能·agent·deepseek
海宇AI15 小时前
微服务架构实战:基于海宇对外投资历史查询服务构建自动化合规审计网关
人工智能·微服务·架构·自动化
微财经观圈16 小时前
AI 3D生成工具重拓扑后怎样检查UV、法线和材质是否正常?
人工智能·3d·重拓扑
网易云信16 小时前
首个 AI 玩具团标发布,我们把能力写进了行业标准
人工智能
码农学院16 小时前
企业官网改版GEO实战:把 Blazor SPA 改造成 AI 爬虫可读的预渲染方案
人工智能·爬虫·geo