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

【机器学习2】正则化regularizaiton(降低模型过拟合)

1 正则化定义

正则化是指通过对模型添加一个惩罚项,降低模型的复杂度,以此解决模型的过拟合问题。

2 常见的正则化方法

2.1 L1正则化(Lasso回归)

L1范式:所有参数的绝对值之和。
a r g m i n ∑ i = 1 N ( y t r u e − ( b + w i x i ) ) + λ ∑ i = 1 N ∣ w i ∣ argmin \sum_{i=1}^N (y_{true}-(b+w_ix_i))+ \lambda \sum_{i=1}^N |w_i| argmini=1N(ytrue(b+wixi))+λi=1Nwi
优化过程中,模型不仅要最小化预测值与真实之间的距离,还要最小化所有参数之间的和.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2 L2正则化(Ridge回归)

L2范式:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
L2 正则化在反向传播就是对每个权重加一个线性衰减梯度,始终把权重拉向 0,但不会稀疏化到 0。

2.3 Elastic Net

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
L1正则实现

l1_reg = torch.norm(model.parameters(), 1)
loss = loss + lambda1 * l1_reg

Elastic Net

l1_reg = sum(torch.norm(p, 1) for p in model.parameters())
l2_reg = sum(torch.norm(p, 2)**2 for p in model.parameters())
loss = loss + lambda1 * l1_reg + lambda2 * l2_reg

3 其它降低模型拟合的方法

3.1 Dropout

定义:在训练阶段,随机选择某组神经元进行忽略,忽略是指在特定的前向或者后向传播过程中不考虑这些神经元。

训练阶段:对于每个隐藏层,对于每个训练样本,对于每次迭代,忽略(清零)节点(和相应的激活)的随机分数 p
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

但在测试阶段如何处理呢?
在这里插入图片描述在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
dropout和神经剪枝的区别
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2 数据增强

数据增强(Data Augmentation) 是指在 不采集额外真实数据的情况下,通过对现有训练数据进行随机变换,生成更多多样化的训练样本,从而:

✅ 扩充训练集规模
✅ 增加数据多样性
✅ 减少过拟合
✅ 提升模型泛化能力

3.3 早停

当验证集损失在连续若干个 epoch 内不再下降(或指标不再提升)时,就停止训练并恢复到验证集性能最佳时的参数。

3.4 最大范数约束

最大范数约束是一种正则化方法,用于防止神经网络中过拟合和梯度爆炸,通过限制每个神经元的权重向量的范数不超过设定的最大值 c。
对于某一层中与单个神经元相连的权重向量 w(例如全连接层中某一行权重):
在这里插入图片描述
这保证了权重向量长度不会超过阈值 c,稳定网络训练
在这里插入图片描述

for param in model.parameters():if param is weight:norm = param.norm(2)if norm > c:param *= c / norm
http://www.dtcms.com/a/263966.html

相关文章:

  • Http、Ftp、Dns和Dhcp服务器搭建
  • Go 服务如何“主动”通知用户?SSE广播与断线重连实战
  • 从docker-compose快速入门Docker
  • VCenter SSL过期,登录提示HTTP 500错误解决办法
  • Linux驱动学习day13(同步与互斥)
  • 记录一次生产环境ActiveMQ无法启动的问题
  • 变幻莫测:CoreData 中 Transformable 类型面面俱到(八)
  • Raspberry Pi 4边缘智能PLC:OpenPLC赋能物联网
  • 25-7-1 论文学习(1)- Fractal Generative Models 何恺明大佬的论文
  • 半导体和PN结
  • 遥感影像岩性分类:基于CNN与CNN-EL集成学习的深度学习方法
  • 胖喵安初 (azi) Android 应用初始化库 (类似 Termux)
  • Adobe AI高效设计技巧与创新思维指南
  • day41简单CNN
  • 注意力得分矩阵求解例子
  • 网站崩溃的幕后黑手:GPTBot爬虫的流量冲击
  • 第七讲~~测试工具(禅道项目管理系统)
  • 【记录】Word|Word创建自动编号的多级列表标题样式
  • poi java 删除word的空白页
  • 【docker】docker save和docker load
  • 通达信【极弱强势指标与股道波段交易系统】幅图
  • Gin 中间件详解与实践
  • 发布/订阅模式:解耦系统的强大设计模式
  • Python Flask 容器化应用链路可观测
  • 基于SSM万华城市货运服务系统的设计与实现
  • 开源模型与商用模型协同开发机制设计
  • Vue基础(19)_Vue内置指令
  • Qt_Creator入门基础知识
  • 基于.Net的Web API 控制器及方法相关注解属性
  • Qt/C++运行报错:exited with code -1073741819