1. 什么是过拟合?

过拟合(Overfitting):模型过于复杂(所包含的参数过多),以致于模型对训练集的拟合很好,但对未知数据预测很差的现象(泛化能力差)。

过拟合可以通过观测训练集和验证集的loss变化判断:随着epoch或step的增加,训练集
loss不断下降,而验证集loss先下降后抬升。

2. 常见过拟合解决办法有哪些?

(1)增加训练数据量
①采集更多的数据;
②数据增广(image augmentation):对已有数据做一系列随机改变,来产生相似但又不同的训练样本,从而扩大训练数据集的规模。这里不讲数据增广,有兴趣的可以查看tf.keras.preprocessing.image.ImageDataGenerator这个api。

(2)减少模型复杂度
①减少隐层
②减少神经元个数

(3)添加正则项
tf.keras.regularizers.l2
用到的参数:
l:惩罚项,默认为0.01。

(4)提前终止(Early Stopping)

训练的过程中,记录到目前为止最好的验证集结果,当连续10个Epoch(或者更多次)没有超越最佳结果时,则可以认为精度不再提高。

导入模块: tf.keras.callbacks.EarlyStopping
用到的参数:
monitor:监控的数据,一般为’val_loss’。
min_delta:定义模型改善的最小量,只有大于min_delta才会认为模型有改善,默认为0。
patience:有多少个epoch,模型没有改善,训练就会停止,默认为0。
restore_best_weights:是否使用监控数据最好的模型参数,如果是False,使用的是训练最后一步的模型参数,默认False。

(5)Dropout
训练阶段:每个step以一定的概率p让神经元停止工作。
预测阶段:所有神经元都是工作的,但所有权值需要乘上(1-p)。
导入模块: tf.keras.layers.Dropout
用到的参数:
rate:神经元失效的概率,取值0~1的浮点数。
seed:随机种子,取正整数。
name:输入字符串,给该层设置一个名称。

3. Dropout详解

(1) Dropout为何有效?

Hinton的解释:Dropout相当于对原来网络进行修剪,得到参数规模较小的网络,这样的网络
不容易发生过拟合现象,最后对训练过程中所有的小网络进行集成(回归任务:相当于求平均,
分类任务:相当于少数服从多数),从而减小泛化误差,思想类似于集成学习。

(2)Dropout的缺点:
达到同样的精度需要更长的训练时间。通常p初始值取0.5,原因:p=0.5时所有小网络出现的概率相同,不会对某些网络有偏向。
(3)为什么预测阶段所有权值需要乘上(1-p)?
例:10匹马拉一个10吨的车。
第一次(训练时):只有4匹马出力(有p=0.6概率被dropout),每匹要出力拉2.5吨;
第二次(测试时):10匹马都被要求出力,这次每匹马要出力拉2.5×(1-0.6)=1吨
注:主流的深度学习框架(tensorflow、pytorch、mxnet等)都会自动处理这一步,所以不需要自己操作。

五、神经网络过拟合处理方法(一)相关推荐

  1. 防止神经网络过拟合的五种方法

    过拟合 在训练神经网络模型时,我们经常会遇到模型在训练集上预测准确度很高,但是在测试集上预测准确率很低,这种现象我们叫做过拟合 过拟合通常是由于模型过于复杂造成的接下来我们将介绍五种防止模型过拟合的方 ...

  2. 神经网络防止过拟合的方法

    知乎上的回答:https://www.zhihu.com/question/59201590 深度学习防止过拟合的方法 过拟合即在训练误差很小,而泛化误差很大,因为模型可能过于的复杂,使其" ...

  3. 解决神经网络过拟合问题—Dropout方法、python实现

    解决神经网络过拟合问题-Dropout方法 一.what is Dropout?如何实现? 二.使用和不使用Dropout的训练结果对比 一.what is Dropout?如何实现? 如果网络模型复 ...

  4. #(四)、(五)拟合数学方法的发展简介

    以现代数学直角坐标系的眼光评价历史上的拟合公式,我们可以看到从简单到复杂的过程:直线.线段.平面图形(二分.三角.正方.圆).弧.抛物线.螺旋线(曲线).复杂曲线.多项式.幂次.立体几何(三维).四维 ...

  5. 避免神经网络过拟合的5种技术(附链接) | CSDN博文精选

    作者 | Abhinav Sagar 翻译 | 陈超 校对 | 王琦 来源 | 数据派THU(ID:DatapiTHU) (*点击阅读原文,查看作者更多精彩文章) 本文介绍了5种在训练神经网络中避免过 ...

  6. 独家 | 避免神经网络过拟合的5种技术(附链接)

    作者:Abhinav Sagar 翻译:陈超 校对:王琦 本文约1700字,建议阅读8分钟. 本文介绍了5种在训练神经网络中避免过拟合的技术. 最近一年我一直致力于深度学习领域.这段时间里,我使用过很 ...

  7. 避免神经网络过拟合的5种技术

    作者:Abhinav Sagar 翻译:陈超 校对:王琦 本文约1700字,建议阅读8分钟. 本文介绍了5种在训练神经网络中避免过拟合的技术. 最近一年我一直致力于深度学习领域.这段时间里,我使用过很 ...

  8. (转载)一种根据纠偏数据对火星坐标进行完美拟合的方法

    一种根据纠偏数据对火星坐标进行完美拟合的方法 (2011-02-15 13:30:27) 转载▼ 标签: 地图 纠偏算法 it (原创:小牙,QQ328959,转载请注明出处) 从GPS设备取得真实坐 ...

  9. 积神经网络的参数优化方法——调整网络结构是关键!!!你只需不停增加层,直到测试误差不再减少....

    积神经网络(CNN)的参数优化方法 from:http://blog.csdn.net/u010900574/article/details/51992156 著名: 本文是从 Michael Nie ...

最新文章

  1. visual studio 设计第一个WinForm小程序
  2. 用coffee和socket.io实现的01背包算法
  3. 编写Linux内核模块——第三部分:按键和发光二极管
  4. 占内存小的qq_手机内存空间告急,这些办法就能轻松搞定!
  5. redis集群方式介绍
  6. 什么是mysql的游标_数据库中的游标到底是什么意思
  7. ASP.NET Core 中基于工厂的中间件激活
  8. mysql 存储过程求和_MySQL - 存储过程和函数
  9. java 导入excel到数据库_java导入excel到数据库
  10. python多列排序
  11. mysql view在测试过程的应用
  12. UVA12207 LA4493 That is Your Queue【双端队列】
  13. 每个极客都应该知道的Linux技巧(区分开普通的Linux用户和超级极客)
  14. 全方位了解8.0系统下的Handler
  15. 如何去掉图片上的文字?
  16. ue4换装系统 1.换装系统的基本原理
  17. 创维E900V22C、E900V22D系列-UWE5621DS芯片语音免拆卡刷固件(当贝桌面)《创维简约开机动画》
  18. 【GAMES101 作业4】贝塞尔曲线+反走样
  19. picker插件 vue 移动端_基于 vue 的 picker 组件 vue-awesome-picker
  20. Innovus update_io_latency

热门文章

  1. Iris+Redis实战项目应用
  2. 圆与圆的位置关系题目含答案_中考数学直线与圆的位置关系知识点对应中考真题汇编(含答案)...
  3. 护士资格证考试机考可以用计算机吗,护士资格证考试人机对话考试难度如何
  4. 捕获用户在该页面停留的时长,我是这样做的(前端监测)
  5. 小程序记录页面停留时间
  6. mssql数据库的备份与还原
  7. CSDN优秀博客连接,博客之星连接。
  8. 厦门哪里好玩 这几个地方必去
  9. 安卓应用开发书籍!Android开发真等于废人?复习指南
  10. Postfix与Dovecot部署邮件系统