深度学习笔记(6) 实践层面(一)

深度学习笔记(6) 实践层面(一)


1. 训练,验证,测试集

训练神经网络时,需要做出很多决策,例如:
神经网络分多少层;每层含有多少个隐藏单元;学习速率是多少;各层采用哪些激活函数。

创建新应用的过程中,不可能从一开始就准确预测出这些信息和其他超级参数。

应用型机器学习是一个高度迭代的过程,通常在项目启动时:
会先有一个初步想法,比如构建一个含有特定层数,隐藏单元数量或数据集个数等等的神经网络
然后编码,并尝试运行这些代码,通过运行和测试得到该神经网络或这些配置信息的运行结果
可能会根据输出结果重新完善想法,改变策略,或者为了找到更好的神经网络不断迭代更新方案

于是选择模型不在仅仅通过测试集来选择了,而是:

  • 利用训练集的数据代入每一个多项式模型
  • 用交叉验证集的数据找出最小误差的多项式模型
  • 最后在测试集中再找出相对较少误差的那个模型

应用深度学习是一个典型的迭代过程,需要多次循环往复,才能为应用程序找到一个称心的神经网络
因此循环该过程的效率是决定项目进展速度的一个关键因素

而创建高质量的训练数据集,验证集和测试集也有助于提高循环效率
通常会将这些数据划分成几部分:

  1. 一部分作为训练集
  2. 一部分作为简单交叉验证集,也叫验证集(dev set)
  3. 最后一部分则作为测试集

开始对训练执行算法,通过验证集运算验证选择最好的模型,经过充分验证选定最终模型,最后在测试集进行评估

在机器学习发展的小数据量时代,常见做法是将所有数据三七分:70%训练集,30%测试集
如果没有明确设置验证集:训练集占60%,验证集和测试集各占20%

如果只有100条或者1万条数据,上述比例划分是合理的
这是前几年机器学习领域普遍认可的最好的实践方法

但是在大数据时代,数据量可能是百万级别
那么验证集和测试集占数据总量的比例会趋向于变得更小
因为验证集的目的就是验证不同的算法,并迅速判断出哪种算法更有效
可能不需要拿出20%的数据作为验证集

比如:有100万条数据,那么取1万条数据便足以进行评估,找出其中表现最好的1-2种算法

  • 对于百万数据:训练集占98%,验证集和测试集各占1%
  • 对于过百万数据:训练集占99.5%,验证集和测试集各占0.25%,或者验证集占0.4%和测试集占0.1%

根据经验,要确保验证集和测试集的数据来自同一分布
如果不需要无偏评估算法性能,设置了一个训练集和一个测试集,把验证集数据过度拟合到了测试集中,其实是只有一个训练集和一个验证集,而没有独立的测试集,称其为“训练验证集”,而不是“训练测试集”


2. 偏差,方差

在这里插入图片描述
假设这就是数据集,如果给这个数据集拟合一条直线,可能得到一个逻辑回归拟合,但它并不能很好地拟合该数据,这是高偏差(high bias)的情况,称为“欠拟合”(underfitting)

相反的如果拟合一个非常复杂的分类器,比如深度神经网络或含有隐藏单元的神经网络,可能就非常适用于这个数据集,但是这看起来也不是一种很好的拟合方式分类器高方差(high variance),数据过拟合(overfitting)
在两者之间,可能还有一些像图中这样的,复杂程度适中,数据拟合适度的分类器,这个数据拟合看起来更加合理,称之为“适度拟合”(just right)是介于过度拟合和欠拟合中间的一类


3. 学习曲线

在这里插入图片描述
假设用 hθ (x)=θ01 x+θ2 x2 去拟合数据
当数据只有几个的时候,拟合效果那肯定的非常好的

但是,当数据越来越多,假设函数因为多项式太少就不能很好地拟合数据了
所以,训练集的误差 J J Jtrain(Θ) 会随着数据的增多而增大,如上图蓝色的曲线

但是对于交叉验证集呢?
因为一开始只有几个数据,那么在训练集拟合出来的参数就有很大的可能不适合交叉验证集
所以在数据很小的情况下其误差是很大的
但是随着数据的慢慢增多,虽然个别的数据拟合不上
但是整体的拟合效果那肯定比只有几个数据的时候好了
所以其整体误差是逐步下降的,如上图粉色的曲线

在这里插入图片描述
当数据存在高偏差也就是欠拟合的时候
即使数据再继续增多也无补于事
所以其误差会趋于一个平衡的位置,而且 J J Jtrain(Θ) J J Jcv(Θ) 的误差都会很大
所以,当数据存在欠拟合的问题,选用更多的训练样本是没有办法解决问题的

在这里插入图片描述

当数据存在高方差也就是过拟合的时候
随着数据的增多,过拟合所以在训练集基本能完美拟合其数据
所以训练集的误差虽然会上升,但是其幅度是非常缓慢的
在交叉验证集也一样,所以过拟合的时候其图像如上
J J Jtrain(Θ) J J Jcv(Θ) 之间有一大段空隙
所以,当数据存在过拟合的现象,选用更多的样本有利于解决这个问题


对于出现偏差,方差的情况,有以下的方法解决:

场合方法
高偏差(欠拟合)采集更多的特征、高次多项式回归、降低正则化参数 λ
高方差(过拟合)采集更多的样本、降低特征的维度、增大正则化参数 λ

参考:

《神经网络和深度学习》视频课程


相关推荐:

深度学习笔记(5) 深层神经网络
深度学习笔记(4) 浅层神经网络
深度学习笔记(3) 向量化逻辑回归
深度学习笔记(2) 神经网络基础
深度学习笔记(1) 深度学习简介


谢谢!

氢键H-H CSDN认证博客专家 机器人软件 运动控制 深度学习
一位永远相信美好的事情即将发生,从事自动化机器人软件开发,不忘初心,牢记使命,为实现中华民族伟大复兴而奋斗的社会主义接班人。
©️2020 CSDN 皮肤主题: 我行我“速” 设计师:Amelia_0503 返回首页
实付 49.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值