0.过拟合

深度学习模型的过拟合通常是指针对设计好的深度学习网络,在使用训练数据集训练时,在训练数据集上可以获得很高的识别精度(针对分类问题),或者很低的均方根误差(很对回归问题),但是把训练好的模型应用于测试集进行预测时,预测效果往往不是很理想。我们称这种现象为过拟合。

1.如何防止过拟合

1.1 增加数据量

更多的训练样本通常会使得模型更加稳定,所以训练样本的增加不仅可以得到更有效的训练结果,也能在一定程度上防止模型过拟合,增强网络的泛化能力。,例如在图像的分类任务中,物体在图像中的位置、姿态、尺度、图像的明暗都会影响分类效果,所以可以通过平移、旋转、缩放等手段对数据进行扩充。

1.2 合理的数据分配

将数据集分为训练集train、验证集valid、测试集test,一般按照比例7:1:26:2:28: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 提前结束训练

防止网络过拟合的最直观的方式就是提前终止网络的训练,通常配合数据集的划分方式,将数据划分为训练集、验证集、测试集,当验证集上的损失值不再减小的时候或精度不再增加的时候,可以停止网络的训练。

深度学习过拟合及如何防止过拟合相关推荐

  1. 过拟合解决方法python_《python深度学习》笔记---4.4、过拟合与欠拟合(解决过拟合常见方法)...

    <python深度学习>笔记---4.4.过拟合与欠拟合(解决过拟合常见方法) 一.总结 一句话总结: 减小网络大小 添加权重正则化 添加 dropout 正则化 1.机器学习的根本问题? ...

  2. label smooth/mixup——深度学习中的一种防止过拟合方法

    Label Smooth 在常见的多分类问题中,先经过softmax处理后进行交叉熵计算,原理很简单可以将计算loss理解为,为了使得网络对测试集预测的概率分布和其真实分布接近,常用的做法是使用one ...

  3. 深度学习Deep Learning: dropout策略防止过拟合

    本文参考 hogo在youtube上的视频 :https://www.youtube.com/watch?v=UcKPdAM8cnI 一.理论基础 dropout的提出是为了防止在训练过程中的过拟合现 ...

  4. 深度学习代码实战——基于RNN的时间序列拟合(回归)

    1.前言 循环神经网络让神经网络有了记忆, 对于序列型的数据,循环神经网络能达到更好的效果.接着我将实战分析手写数字的 RNN分类 2.导入模块.定义超参数 import torch from tor ...

  5. 深度学习在目标视觉检测中的应用进展与展望

    作者:张慧,王坤峰,王飞跃 来源:王飞跃科学网博客 摘要:目标视觉检测是计算机视觉领域的一个重要问题,在视频监控.自主驾驶.人机交互等方面具有重要的研究意义和应用价值.近年来,深度学习在图像分类研究中 ...

  6. 深度学习基础系列(八)| 偏差和方差

    当我们费劲周章不断调参来训练模型时,不可避免地会思考一系列问题,模型好坏的评判标准是什么?改善模型的依据何在?何时停止训练为佳? 要解决上述问题,我们需要引入偏差和方差这两个概念,理解他们很重要,也是 ...

  7. 零基础如何入门深度学习?

    关于深度学习,网上的资料很多,不过貌似大部分都不太适合初学者. 这里有几个原因:1.深度学习确实需要一定的数学基础.如果不用深入浅出地方法讲,有些读者就会有畏难的情绪,因而容易过早地放弃.2.中国人或 ...

  8. 深度学习核心技术精讲100篇(十九)--GBDT(梯度提升树) 和 Resnet (残差网络)的原理

    残差 残差在数理统计中是指实际观察值与估计值(拟合值)之间的差.在集成学习中可以通过基模型拟合残差,使得集成的模型变得更精确:在深度学习中也有人利用layer去拟合残差将深度神经网络的性能提高变强.这 ...

  9. 白话AI:看懂深度学习真的那么难吗?初中数学,就用10分钟

    如果在这个人工智能的时代,作为一个有理想抱负的程序员,或者学生.爱好者,不懂深度学习这个超热的话题,似乎已经跟时代脱节了. 但是,深度学习对数学的要求,包括微积分.线性代数和概率论与数理统计等,让大部 ...

  10. 加载tf模型 正确率很低_深度学习模型训练全流程!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:黄星源.奉现,Datawhale优秀学习者 本文从构建数据验证集. ...

最新文章

  1. 斯坦福大学统计系教授带你玩转微生物组分析
  2. SAP SD基础知识之流程概览
  3. P3868 [TJOI2009]猜数字(CRT板子)
  4. Eclipse for Android 开发环境搭建及各种坑
  5. 我们又来送书啦!这一次,用做业务的思维讲推荐系统 | 文末福利
  6. 作为微型计算机各种部件相互连接的纽带,网络学院统考计算机基础知识选择题及答案(19页)-原创力文档...
  7. fatal: unable to access ‘https://github.com/PanJiaChen/vue-element-admin.git/‘: OpenSSL SSL_read: Co
  8. DDD中的聚合和UML中的聚合以及组合的关系
  9. jeecg <t:choose 功能标签用法修改 处理选择0条记录回写
  10. qvalue: Check that you have valid p-values or use a different range of lambda
  11. 剑指offer面试题52. 两个链表的第一个公共节点(双指针法)
  12. bootstrap-引用-命名来源
  13. JavaScript成都市地图网页代码
  14. 基于BP神经网络识别手写字体MINST字符集
  15. java工作流引擎Jflow父子流程demo
  16. excel转置怎么操作_EXCEL/WPS如何快速将一行转置成一列,一列转置成一行?
  17. 电脑可以连接手机热点,却无法连路由器无线wifi
  18. .net中使用ckeditor4+ckfinder上传图片
  19. 单层神经网络实现手写数字识别
  20. python pip 安装包失败问题,下载缓慢问题

热门文章

  1. Android相机开发那些坑
  2. 数据结构选择题汇总(附答案)
  3. linux基本命令man,Linux---基础指令man/date/
  4. dpi计算 density 取值范围
  5. zookeeper从入门到入土
  6. SQL Server下载
  7. 怎么画一张微服务架构图?
  8. enum枚举类型用法
  9. oracle 索引 种类,详解 Navicat for Oracle 索引类型
  10. 保准你看了不会后悔的 Linux 基础命令 [值得收藏]