深度学习笔记(6) 实践层面(一)
1. 训练,验证,测试集
训练神经网络时,需要做出很多决策,例如:
神经网络分多少层;每层含有多少个隐藏单元;学习速率是多少;各层采用哪些激活函数。
创建新应用的过程中,不可能从一开始就准确预测出这些信息和其他超级参数。
应用型机器学习是一个高度迭代的过程,通常在项目启动时:
会先有一个初步想法,比如构建一个含有特定层数,隐藏单元数量或数据集个数等等的神经网络
然后编码,并尝试运行这些代码,通过运行和测试得到该神经网络或这些配置信息的运行结果
可能会根据输出结果重新完善想法,改变策略,或者为了找到更好的神经网络不断迭代更新方案
于是选择模型不在仅仅通过测试集来选择了,而是:
- 利用训练集的数据代入每一个多项式模型
- 用交叉验证集的数据找出最小误差的多项式模型
- 最后在测试集中再找出相对较少误差的那个模型
应用深度学习是一个典型的迭代过程,需要多次循环往复,才能为应用程序找到一个称心的神经网络
因此循环该过程的效率是决定项目进展速度的一个关键因素
而创建高质量的训练数据集,验证集和测试集也有助于提高循环效率
通常会将这些数据划分成几部分:
- 一部分作为训练集
- 一部分作为简单交叉验证集,也叫验证集(dev set)
- 最后一部分则作为测试集
开始对训练执行算法,通过验证集运算验证选择最好的模型,经过充分验证选定最终模型,最后在测试集进行评估
在机器学习发展的小数据量时代,常见做法是将所有数据三七分: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)=θ0+θ1 x+θ2 x2 去拟合数据
当数据只有几个的时候,拟合效果那肯定的非常好的
但是,当数据越来越多,假设函数因为多项式太少就不能很好地拟合数据了
所以,训练集的误差
J
J
Jtrain(Θ) 会随着数据的增多而增大,如上图蓝色的曲线
但是对于交叉验证集呢?
因为一开始只有几个数据,那么在训练集拟合出来的参数就有很大的可能不适合交叉验证集
所以在数据很小的情况下其误差是很大的
但是随着数据的慢慢增多,虽然个别的数据拟合不上
但是整体的拟合效果那肯定比只有几个数据的时候好了
所以其整体误差是逐步下降的,如上图粉色的曲线
当数据存在高偏差也就是欠拟合的时候
即使数据再继续增多也无补于事
所以其误差会趋于一个平衡的位置,而且
J
J
Jtrain(Θ) 和
J
J
Jcv(Θ) 的误差都会很大
所以,当数据存在欠拟合的问题,选用更多的训练样本是没有办法解决问题的
当数据存在高方差也就是过拟合的时候
随着数据的增多,过拟合所以在训练集基本能完美拟合其数据
所以训练集的误差虽然会上升,但是其幅度是非常缓慢的
在交叉验证集也一样,所以过拟合的时候其图像如上
在
J
J
Jtrain(Θ) 和
J
J
Jcv(Θ) 之间有一大段空隙
所以,当数据存在过拟合的现象,选用更多的样本有利于解决这个问题
对于出现偏差,方差的情况,有以下的方法解决:
场合 | 方法 |
---|---|
高偏差(欠拟合) | 采集更多的特征、高次多项式回归、降低正则化参数 λ |
高方差(过拟合) | 采集更多的样本、降低特征的维度、增大正则化参数 λ |
参考:
相关推荐:
深度学习笔记(5) 深层神经网络
深度学习笔记(4) 浅层神经网络
深度学习笔记(3) 向量化逻辑回归
深度学习笔记(2) 神经网络基础
深度学习笔记(1) 深度学习简介
谢谢!