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

深度学习 —— 正则化批量归一化BN

正则化概念

是什么?机器学习/深度学习中,防止模型过拟合/提高模型泛化能力的方法

L1与L2正则化

L1和L2正则化通过在损失函数上添加惩罚项来实现

L1正则化在工程中,通常引入软阈值操作,权重小于某个值时,强制为0

深度学习中使用L1/L2 正则化的方式:

Adam/AdamW 中的权重衰减项,实现L2正则化

深度学习/神经网络中不会单独使用L1正则化

梯度优化器对象。参数

Dropout 正则化 (随机失活)

1. 概念

训练时,让神经元以概率p 随机失活,输出强制为0,并对保留的神经元进行1/(1-p)缩放,相当于在训练不同的子网络。

类比:让部分对应上传,让每个队员得到更充分的锻炼。

测试时,Droput 关闭(不失活)。使用完整网络进行预测。

类比:所有队员一起上场。

是一种提高模型泛化能力的方法。

2. Dropout 随机失活图示:

随机丢弃部分模型参数 参数P (丢弃概率)

在训练深层神经网络时,由于模型参数较多,在数据量不足的情况下,很容易过拟合。Dropout 随机失活 是一个简单有效的正则化方法。

3. 原理


为什么对保留的神经元输出 1/(1-p) 的缩放?

保证训练过程中网络输出数据均值不变

假设没有dropout时,网络输出的激活值的均值为mean,对应的激活值【x0,x1,...xn】

p * n 个激活值为0

有Dropout 之后的激活值的平均值是多少?

mean_dropout = (mean * (n-p*n) + 0*p*n)/n = mean*(1-p)

所以,dropout 之后的保留神经元的输出要进行1/(1-p)缩放

4. API

nn.Dropout(p = 0.1)

参数p设置:0 < p < 1 ,通常p < 0.5 ,当模型参数较多时,数据量较大时,可以适当增加p,比如0.4~0.5

5.什么时候用?

按这个图例:
输入 → Linear → 激活 →Dropout→ Linear → 激活 →Dropout→ Linear → Softmax 输出

批量归一化 BN(Batch Normailization)

应用:在CV计算机视觉领域使用较多,尤其CNN网络

1. 概念

批量归一化,属于正则化方法,缓解 模型过拟合,主要用于CV计算机视觉,比如CNN网络中

先标准化为均值0,方差1的分布,然后再进行重构(缩放+平移,缩放系数和平移系数都是可学习的),进一步提取特征。

对每一个batch的数据进行标准化,数据分布就变得稳定,参数的梯度变化也变得稳定,有助于加快模型的收敛。

通过标准化每一层的输入,使其均值接近0,方差接近1,从而加速训练并提高泛化能力。

2. 公式

λ和β是可学习的参数,相当于对标准化后的值做了一个线性变换,λ为系数,β为偏置;

eps 通常指为 1e-5,避免分母为 0;

E(x) 表示变量的均值;

Var(x) 表示变量的方差;

3. 模型训练中绝对顺序:

线性层 → BN 归一化 → 激活函数

4. 涉及到的API:

CV计算机视觉领域

① BatchNorm1d: 处理2D/3D数据,主要用于处理文本数据/序列数据,NCS

BatchNorm2d: 处理4D数据,主要用于二维卷积神经网络Conv2d来处理图片数据,

NCHW,(N,C,H,W), N批次大小,C通道数,H高度,W宽度

③ BatchNorm3d: 处理5D数据,主要用于三维卷积神经网络Conv3d,来处理高维的视觉数据,比如医学图像,卫星遥感视频,接收形状为 NCDHW/NCTHW 的张量作为输入。

5. 代码示例:

# 1.创建数据,模拟NCHW图片数据 torch.randint(0,256,size=(1,3,32,32)) # 1 一张图片 # 3 RGB 彩色图。 # 32 32 高度和宽度 像素 x = torch.randint(0,256,size=(1,3,32,32)).to(dtype=torch.float32) print(f"原始数据x:{x}, shape: {x.shape}") # 2.创建BatchNorm2d层 # running_mean = (1 - momentum) * running_mean + momentum * batch_mean # running_var = (1 - momentum) * running_var + momentum * batch_var bn = nn.BatchNorm2d( num_features=3, # 通道数,C eps=1e-05, # 极小值,防止除零 momentum=0.1, # 动量,控制参数的更新 affine=True, # 缩放参数和平移参数是否可学习 ) # 3.输入数据到BatchNorm2d层中 y = bn(x) # (1,3,32,32) # 4.打印输出 print(f"处理后的数据y:{y}, shape: {y.shape}")

和机器学习 标准化类似。多了科学系λ和β

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

相关文章:

  • 2026德阳本地装修公司可靠度技术甄别指南 - 优质品牌商家
  • 大语言模型输出优化与参数调优实战指南
  • 语言模型系统提示设计:从交互哲学到工程实践
  • 为什么90%的C++网关项目卡在50万QPS?——拆解头部金融系统MCP网关源码中的7层零拷贝流水线设计
  • 6分27秒!宁德时代这一拳,直接打在了比亚迪的脸上,燃油车的时代真要终结了?
  • 漏洞扫描的原理
  • SQL 中单引号与双引号的使用要求(严格区分)
  • 百度网盘直链解析工具:告别龟速下载,重获下载自由
  • 【独家逆向分析】某头部云厂商未开源的C++ MCP网关内核:如何用constexpr AST解析+编译期路由分片实现微秒级转发延迟?
  • DS4Windows技术解码:让PS手柄在PC平台重获新生
  • SQL 中日期的特殊性总结
  • python lxml
  • 谷歌 AI 会议记录功能大拓展:Gemini 支持线下及 Zoom、Teams 会议摘要生成
  • SCI 论文 Results 中 100 + 学术句式(2)
  • 深度学习 —— 学习率衰减策略
  • 别再只会按AutoSet了!手把手教你玩转泰克MSO2000B示波器的触发与采样设置
  • ESP32开发板安装终极指南:从零开始快速上手Arduino-ESP32
  • 新手也能一键部署 OpenClaw,这次真的超级简单
  • nli-MiniLM2-L6-H768惊艳效果:小模型在中文法律文本NLI任务上超越BERT-base
  • 2026年3月头部上海景观设计公司推荐,地产景观设计/屋顶花园设计/私家花园设计,上海景观设计施工团队选哪家 - 品牌推荐师
  • COMSOL声学超材料实证研究
  • “谁弄坏的不好说”:什么时候,信任成了被收割的盲目?
  • 【限时技术白皮书】:Docker 27低代码集成性能压测报告(23类低代码引擎+8大PaaS平台横向对比,仅开放72小时)
  • NVIDIA Audio2Face:AI语音驱动面部动画技术解析
  • 财务外包 vs 自建财务:老板该怎么选?
  • 管道疏通技术选型指南 主流服务品牌实测对比 - 优质品牌商家
  • 四川钢材市场螺纹钢(热轧带肋钢筋)现货批发 - 四川盛世钢联营销中心
  • Figma中文插件终极教程:3分钟让英文界面秒变中文,设计师必备效率神器!
  • 告别误触发!用滞回比较器给电源监控电路加个‘防抖’功能(附RC延时设计)
  • 保姆级教程:当Visio弹出激活向导时,如何一步步排查并卸载错误的密钥