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

BN和Droupout在训练和测试时的差别

1.BN

训练时 (Training)

在训练阶段,BN 层主要做两件事:

1.归一化:计算当前这个Batch的均值和方差,用它们来把数据归一化成标准正态分布。

公式:

2.移动平均法求全局均值和方差:它会用“动量法”(Momentum,通常是 0.1 或 0.01)把当前的均值和方差,更新到全局的历史统计量(Running Mean / Running Variance)中。

公式:

  • 目的:为了给测试阶段提供均值和方差
测试时 (Testing)

在测试阶段(或验证阶段),我们可能一次只输入 1 张图(Batch Size = 1)。

如果还用当前 Batch 的方差,1 个数的方差是 0,除以 0 就会崩,或者统计量极度不稳定。

所以,BN层会停止计算当前的统计量,直接拿出训练时的全局的历史统计量Running Mean/Var来做归一化。

公式:

BN训练时为什么不用全量训练集的均值和方差呢?

因为在训练的第一个完整epoch过程中是无法得到输入层之外其他层全量训练集的均值和方差,只能在前向传播过程中获取已训练batch的均值和方差。那在一个完整epoch之后可以使用全量数据集的均值和方差嘛?

对于BN,是对每一批数据进行归一化到一个相同的分布,而每一批数据的均值和方差会有一定的差别,而不是用固定的值,这个差别实际上也能够增加模型的鲁棒性,也会在一定程度上减少过拟合。

但是一批数据和全量数据的均值和方差相差太多,又无法较好地代表训练集的分布,因此,BN一般要求将训练集完全打乱,并用一个较大的batch值,去缩小与全量数据的差别。

Dropout

Dropout 是在训练过程中以一定的概率的使神经元失活,即输出为0,以提高模型的泛化能力,减少过拟合。

Dropout 在训练和测试时都需要嘛?

Dropout 在训练时采用,是为了减少神经元对部分上层神经元的依赖,类似将多个不同网络结构的模型集成起来,减少过拟合的风险。

而在测试时,应该用整个训练好的模型,因此不需要dropout。

Dropout 如何平衡训练和测试时的差异呢?

Dropout ,在训练时以一定的概率使神经元失活,实际上就是让对应神经元的输出为0

假设失活概率为 p ,就是这一层中的每个神经元都有p的概率失活,如下图的三层网络结构中,如果失活概率为0.5,则平均每一次训练有3个神经元失活,所以输出层每个神经元只有3个输入,而实际测试时是不会有dropout的,输出层每个神经元都有6个输入,这样在训练和测试时,输出层每个神经元的输入和的期望会有量级上的差异。

因此在训练时还要对第二层的输出数据除以(1-p)之后再传给输出层神经元,作为神经元失活的补偿,以使得在训练时和测试时每一层输入有大致相同的期望。

http://www.jsqmd.com/news/494450/

相关文章:

  • gemma-3-12b-it企业应用:电商客服中商品图识别+多轮问答系统落地实录
  • Qwen3-0.6B-FP8从零开始:3步完成vLLM服务部署与Chainlit Web界面调用
  • lychee-rerank-mm入门指南:如何编写高区分度query提升图文匹配精度
  • 全网最全多部多层电梯群控算法分析2--单部思想
  • Cosmos-Reason1-7B实操手册:模型加载失败时的GPU内存泄漏排查方法
  • PasteMD可追溯设计:每次美化结果附带Llama3版本、Prompt哈希值、推理参数
  • DeEAR语音情感识别技术解析:为何wav2vec2比MFCC更适配自然度判别任务
  • cv_unet_image-colorization显存监控:nvidia-smi实时观测与优化建议
  • RMBG-2.0惊艳效果展示:复杂发丝、玻璃杯、烟雾状物体抠图作品集
  • 云容笔谈效果展示:绢本设色质感+留白构图+题跋空间——AI原生东方卷轴
  • AI驱动UI自动化框架Midscene完全指南:安卓自动化从入门到实战
  • Cosmos-Reason1-7B实际效果:高等数学积分推导、微分方程求解全流程展示
  • AIGlasses_for_navigation保姆级教程:解决‘检测不到目标’等6类高频问题
  • Clawdbot代理网关技术解析:Qwen3:32B与Clawdbot扩展系统的深度集成实践
  • Hunyuan-MT-7B效果对比评测:vs NLLB-3B、OPUS-MT、Qwen2.5-Translate
  • Hunyuan-MT-7B医疗翻译效果:药品说明书多语版本一致性检查
  • M2LOrder开源可部署方案:本地离线环境无网络依赖的情绪分析系统
  • AIGlasses_for_navigation入门必看:YOLO分割模型在导航眼镜中的工程化实践
  • zk集群选举核心概念及选举时状态 选举发生的时机及选举算法
  • CLIP-GmP-ViT-L-14图文匹配工具详解:为什么用Softmax而非cosine similarity?
  • SenseVoice Small多场景应用:外贸谈判录音→中英双语对照字幕生成
  • 基于django的高校固定资产管理系统
  • 智能家居接入谷歌home/assistant/智能音箱
  • 通义千问2.5部署避坑指南:函数调用与JSON输出配置详解
  • FLUX.小红书极致真实V2GPU算力适配:支持FP16+4-bit混合精度推理模式
  • 万象熔炉 | Anything XL应用案例:轻小说插画自动补全与风格迁移实践
  • BGE-M3部署详解:TRANSFORMERS_NO_TF=1环境变量设置原理与必要性
  • 代码规范:Spring Boot 项目命名、注释与包结构
  • MiniCPM-o-4.5-nvidia-FlagOS镜像部署:预置Pillow/MoviePy等多模态依赖包
  • cv_unet_image-colorization效果实测:不同年代黑白胶片颗粒感适配分析