深度学习过拟合及如何防止过拟合
0.过拟合
深度学习模型的过拟合通常是指针对设计好的深度学习网络,在使用训练数据集训练时,在训练数据集上可以获得很高的识别精度(针对分类问题),或者很低的均方根误差(很对回归问题),但是把训练好的模型应用于测试集进行预测时,预测效果往往不是很理想。我们称这种现象为过拟合。
1.如何防止过拟合
1.1 增加数据量
更多的训练样本通常会使得模型更加稳定,所以训练样本的增加不仅可以得到更有效的训练结果,也能在一定程度上防止模型过拟合,增强网络的泛化能力。,例如在图像的分类任务中,物体在图像中的位置、姿态、尺度、图像的明暗都会影响分类效果,所以可以通过平移、旋转、缩放等手段对数据进行扩充。
1.2 合理的数据分配
将数据集分为训练集train、验证集valid、测试集test,一般按照比例7:1:2或6:2:2或8:1:1,但当数据集有几百万甚至上亿的时候,更好的方式是将98%分配为训练集,验证集和测试集分别占比1%,此时既可以保证足够多的样本进行训练,也可以通过验证集来监督网络的学习过程,可以在网络过拟合之前终止网络的训练
1.3 添加正则项
正则化通常是在损失函数上添加对训练参数的惩罚范数,通过添加的范数惩罚对需要训练的参数进行约束,防止模型过拟合。常用的正则化参数有L1L_1L1和L2L_2L2范数。
正则项 | 目的 | 如何防止过拟合 |
---|---|---|
L1L_1L1 | 将参数的绝对值最小化 | L1L_1L1参数趋向于使用更少的参数,从而增加网络的稀疏性,防止模型过拟合 |
L2L_2L2 | 将参数的平方和最小化 | L2L_2L2约束则会选择更多的参数,但是这些参数都会接近于0,防止模型过拟合 |
1.4 使用dropout
在深度学习过程中,可以通过引入Dropout层,随机丢掉一些神经元,以减轻网络的过拟合现象。
1.5 提前结束训练
防止网络过拟合的最直观的方式就是提前终止网络的训练,通常配合数据集的划分方式,将数据划分为训练集、验证集、测试集,当验证集上的损失值不再减小的时候或精度不再增加的时候,可以停止网络的训练。
深度学习过拟合及如何防止过拟合相关推荐
- 过拟合解决方法python_《python深度学习》笔记---4.4、过拟合与欠拟合(解决过拟合常见方法)...
<python深度学习>笔记---4.4.过拟合与欠拟合(解决过拟合常见方法) 一.总结 一句话总结: 减小网络大小 添加权重正则化 添加 dropout 正则化 1.机器学习的根本问题? ...
- label smooth/mixup——深度学习中的一种防止过拟合方法
Label Smooth 在常见的多分类问题中,先经过softmax处理后进行交叉熵计算,原理很简单可以将计算loss理解为,为了使得网络对测试集预测的概率分布和其真实分布接近,常用的做法是使用one ...
- 深度学习Deep Learning: dropout策略防止过拟合
本文参考 hogo在youtube上的视频 :https://www.youtube.com/watch?v=UcKPdAM8cnI 一.理论基础 dropout的提出是为了防止在训练过程中的过拟合现 ...
- 深度学习代码实战——基于RNN的时间序列拟合(回归)
1.前言 循环神经网络让神经网络有了记忆, 对于序列型的数据,循环神经网络能达到更好的效果.接着我将实战分析手写数字的 RNN分类 2.导入模块.定义超参数 import torch from tor ...
- 深度学习在目标视觉检测中的应用进展与展望
作者:张慧,王坤峰,王飞跃 来源:王飞跃科学网博客 摘要:目标视觉检测是计算机视觉领域的一个重要问题,在视频监控.自主驾驶.人机交互等方面具有重要的研究意义和应用价值.近年来,深度学习在图像分类研究中 ...
- 深度学习基础系列(八)| 偏差和方差
当我们费劲周章不断调参来训练模型时,不可避免地会思考一系列问题,模型好坏的评判标准是什么?改善模型的依据何在?何时停止训练为佳? 要解决上述问题,我们需要引入偏差和方差这两个概念,理解他们很重要,也是 ...
- 零基础如何入门深度学习?
关于深度学习,网上的资料很多,不过貌似大部分都不太适合初学者. 这里有几个原因:1.深度学习确实需要一定的数学基础.如果不用深入浅出地方法讲,有些读者就会有畏难的情绪,因而容易过早地放弃.2.中国人或 ...
- 深度学习核心技术精讲100篇(十九)--GBDT(梯度提升树) 和 Resnet (残差网络)的原理
残差 残差在数理统计中是指实际观察值与估计值(拟合值)之间的差.在集成学习中可以通过基模型拟合残差,使得集成的模型变得更精确:在深度学习中也有人利用layer去拟合残差将深度神经网络的性能提高变强.这 ...
- 白话AI:看懂深度学习真的那么难吗?初中数学,就用10分钟
如果在这个人工智能的时代,作为一个有理想抱负的程序员,或者学生.爱好者,不懂深度学习这个超热的话题,似乎已经跟时代脱节了. 但是,深度学习对数学的要求,包括微积分.线性代数和概率论与数理统计等,让大部 ...
- 加载tf模型 正确率很低_深度学习模型训练全流程!
↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:黄星源.奉现,Datawhale优秀学习者 本文从构建数据验证集. ...
最新文章
- 斯坦福大学统计系教授带你玩转微生物组分析
- SAP SD基础知识之流程概览
- P3868 [TJOI2009]猜数字(CRT板子)
- Eclipse for Android 开发环境搭建及各种坑
- 我们又来送书啦!这一次,用做业务的思维讲推荐系统 | 文末福利
- 作为微型计算机各种部件相互连接的纽带,网络学院统考计算机基础知识选择题及答案(19页)-原创力文档...
- fatal: unable to access ‘https://github.com/PanJiaChen/vue-element-admin.git/‘: OpenSSL SSL_read: Co
- DDD中的聚合和UML中的聚合以及组合的关系
- jeecg <t:choose 功能标签用法修改 处理选择0条记录回写
- qvalue: Check that you have valid p-values or use a different range of lambda
- 剑指offer面试题52. 两个链表的第一个公共节点(双指针法)
- bootstrap-引用-命名来源
- JavaScript成都市地图网页代码
- 基于BP神经网络识别手写字体MINST字符集
- java工作流引擎Jflow父子流程demo
- excel转置怎么操作_EXCEL/WPS如何快速将一行转置成一列,一列转置成一行?
- 电脑可以连接手机热点,却无法连路由器无线wifi
- .net中使用ckeditor4+ckfinder上传图片
- 单层神经网络实现手写数字识别
- python pip 安装包失败问题,下载缓慢问题