当前位置: 首页 > 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.lryc.cn/news/578525.html

相关文章:

  • 【cv视觉】标注工具的使用和数据集的创建
  • 2.SQL语句执行慢,如何分析
  • 07CSRF 漏洞保护
  • 事件监听器 + 回调处理器的事件循环系统
  • OpenCV CUDA模块设备层-----二值化阈值操作函数thresh_binary_func()
  • 设计模式精讲 Day 21:策略模式(Strategy Pattern)
  • 【STM32】 STM32低功耗模式详解:睡眠模式与唤醒机制【待测试】
  • 单元测试详解
  • 记录一个 Linux中脚本无法执行的问题
  • 构建淘宝评论监控系统:API 接口开发与实时数据采集教程
  • Camera相机人脸识别系列专题分析之十五:人脸特征检测FFD算法之libcvface_api.so算法API详细注释解析
  • Docker制作python环境
  • C++ 11 中 condition_variable 的探索与实践
  • 当足球遇上AI:赛事分析、伤病预测与智能裁判的崛起
  • postman入门篇
  • RabbitMQ - SpringAMQP及Work模型
  • k8s将service的IP对应的不同端口分配到不同的pod上
  • Vue 3 中的 `h` 函数详解
  • CAD文件处理控件Aspose.CAD教程:使用 Python 将绘图转换为 Photoshop
  • 【Python】字典get方法介绍
  • 面试拷打-20250701
  • 计网学习笔记第1章 计算机网络体系结构(灰灰题库)
  • 论文阅读笔记 NoPoSplat
  • 笔记/计算机网络
  • 动手学深度学习13.5. 多尺度目标检测-笔记练习(PyTorch)
  • 推客系统小程序终极指南:从0到1构建自动裂变增长引擎,实现业绩10倍增长!
  • (JAVA)自建应用调用企业微信API接口,实现消息推送
  • uniapp+vue写小程序页面,实现一张图片默认放大后,可以在容器内上下左右拖动查看
  • android13 如何定时输出app的帧率FPS
  • 应急响应类题练习——玄机第五章 Windows 实战-evtx 文件分析