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

深度学习--正则化

笔记内容侵权联系删

  过拟合问题
 

过拟合问题描述:模型在训练集表现优异,但在测试集上表现较差。
根本原因:特征维度过多,模型假设过于复杂,参数过多,训练数据过少,噪声过多导致拟合出的函数几乎完美的对训练集做出预测,但对新数据的测试集预测结果差。过度的拟合了训练数据,而没有考虑到模型的泛化能力。 

正则化
 

正则化是机器学习中非常重要并且非常有效的减少泛化误差的技术,特别是在深度学习模型中,由于其模型参数非常多非常容易产生过拟合。因此研究者也提出很多有效的技术防止过拟合,比较常用的技术包括:
参数添加约束,例如L1 ,L2范数等。
训练集合扩充,例如添加噪声、数据变换等
Dropout
提前停止

1。参数惩罚【约束】
许多正则化方法通过对目标函数/添加一个参数惩罚,限制模型的学习能力。
2.L1正则
对模型参数添加L1范数约束【L2 VS L1与山的主要区别如下:
通过上面的分析,山相对于山能够产生更加稀疏的模型,即当正则在参数w比较小的情况下能够直接缩减至0,因此可以起到特征选择的作用。
如果从概率角度进行分析,很多范数约束相当于对参数添加先验分布,其中范数相当于参数服从高斯先验分布;范数相当于拉普拉斯分布】

3.数据增强
防止过拟合最有效的方法是增加训练集合,训练集合越大过拟合概率越小。数据增强是一个省时有效的方法,但是在不同领域方法不太通用

【从最简单直白的角度来看的话,模型见过的数据见多了,它认识的更广了,因此当有新的数据时,会感觉到相似】
在目标识别领域常用的方法是将图片进行旋转、缩放等(图片变换的前提是通过变换不能改变图片所属类别,例如手写数字识别,类别6和9进行旋转后容易改变类目)。
语音识别中对输入数据添加随机噪声。
NLP中常用思路是进行近义词替换。

4.提前停止训练
在训练过程中,插入对验证集数据的测试。当发现验证集数据的Loss上升时,提前停止训练。

【当损失函数升高后就可以 开始提前停止训练】

5.Dropout
Dropout是一类通用并且计算简洁的正则化方法,在2014年被提出后广泛的使用。简单的说Dropout在训练过程中,随机的丢弃一部分输入,此时丢弃部分对应的参数不会更新。相当于Dropout是一个集成方法,将所有子网络结果进行合并,通过随机丢弃输入可以得到各种子网络

数据不平衡问题
1..随机欠采样。

删除类中多的样本

2..随机过采样

拷贝样本

3..合成采样

提取样本,合成样本

http://www.lryc.cn/news/484750.html

相关文章:

  • PHP反序列化_1
  • 深度学习在图像识别中的应用
  • SQL面试题——奔驰SQL面试题 车辆在不同驾驶模式下的时间
  • Leecode刷题C语言之统计好节点的数目
  • webpack5 + vue3 从零配置项目
  • Queuing 表(buffer表)的优化实践 | OceanBase 性能优化实践
  • ./mysqld: error while loading shared libraries: libaio.so.1: cannot open sha
  • Qt主线程把数据发给子线程,主线程会阻塞吗
  • 前后端、网关、协议方面补充
  • 如何在Mac上切换到JDK 17开发环境
  • 深入探索 TypeScript:从基础到高级特性
  • Leetcode:118. 杨辉三角——Java数学法求解
  • SHELL脚本(Linux)
  • 单元测试、集成测试、系统测试、验收测试、压力测试、性能测试、安全性测试、兼容性测试、回归测试(超详细的分类介绍及教学)
  • 低代码集成多方API的简单实现
  • 【测试框架篇】单元测试框架pytest(1):环境安装和配置
  • Python数据分析NumPy和pandas(二十九、其他Python可视化工具)
  • Unity中HDRP设置抗锯齿
  • Spring Boot实现文件上传与OSS集成:从基础到应用
  • Python学习26天
  • linux startup.sh shutdown.sh (kkFileView)
  • [MySQL]隐式类型转换
  • 面经总结1
  • Oracle19C AWR报告分析之Instance Efficiency Percentages (Target 100%)
  • 数据结构--数组
  • nrm的安装及使用
  • 【MatLab手记】 --从0到了解超超超详过程!!!
  • 从零创建vue+elementui+sass+three.js项目
  • Linux通过使用scp和sftp发送或拉取文件
  • Jtti:服务器总是自动重启怎么办?