当前位置: 首页 > news >正文

为什么 Batch Normalization 放在全连接/卷积层的输出之后?

🔁 回顾神经网络层的组合结构:

通常一个网络的标准顺序是这样的:

Linear (或 Conv) → BatchNorm → Activation (比如 ReLU)

也就是说:

  1. 先进行线性变换(全连接或者卷积);

  2. 然后对输出做 BatchNorm;

  3. 最后经过非线性激活函数。


✅ 为什么不是在输入上做 BatchNorm?

这个问题的核心就在这里。

📌 全连接层公式:

y = Wx + b

如果你在 输入 x 上做 BatchNorm,那么你归一化的是输入特征,但神经网络的训练核心在于:

调整 W 和 b,使得输出 y 更容易被后续网络层处理。

而如果你在 输出 y 上做 BatchNorm,就可以直接控制 每个输出通道的均值和方差,这可以:

  • 减少内部协变量偏移(internal covariate shift);

  • 更快地收敛;

  • 更容易训练深层网络;

  • 并且配合 γ 和 β 参数,依然可以恢复表达能力。

http://www.dtcms.com/a/308826.html

相关文章:

  • linux如何将两份hdmi edid合并
  • 硬件电路基础学习
  • Cesium 快速入门(五)坐标系
  • LangGraph底层原理与基础应用入门
  • vue3可编辑表格
  • linux自动构建工具make/makefile
  • 【计算机网络】5传输层
  • MySQL 中的 JOIN 操作有哪些类型?它们之间有什么区别?
  • 国标gb28181 SIP协商详细分析
  • 《嵌入式C语言笔记(十七):进制转换、结构体与位运算精要》
  • .map文件中的0x40f (size before relaxing)是什么意思?
  • 这个项目有多急?
  • MySQL常用函数总结
  • 经典算法之美:冒泡排序的优雅实现
  • 多场景-阶梯式碳交易机制下考虑需求响应的综合能源系统优化(MATLAB模型)
  • 智能Agent场景实战指南 Day 27:Agent部署与可扩展性
  • 本地部署VMware ESXi,并实现无公网IP远程访问管理服务器
  • C++手撕简单KNN
  • 如何使用自定义@DS注解切换数据源
  • 中小企业数据保护指南:如何用群晖NAS构建高效备份体系?
  • pytorch程序语句固定开销分析
  • hive新增列之后插入新数据时,新列为NULL的解决办法
  • 火焰图(Flame Graph)深度指南:CPU性能分析与瓶颈定位
  • 2025.8-12月 AI相关国内会议
  • C基础 12_day
  • XL2422 无线收发芯片,可用于遥控玩具和智能家居等应用领域
  • 网络层概述
  • LLM残差流为何会超过1?
  • Lombok 字段魔法:用 @FieldDefaults 解锁“隐身+锁死”双重特效
  • Linux731 shell工具;[]字符