训练,验证,测试集(Train / Dev / Test sets),偏差,方差(Bias /Variance)

1 深度学习的实践层面(Practical aspects of Deep Learning)

1.1 训练,验证,测试集(Train / Dev / Test sets)

训练神经网络时,我们需要做出很多决策,例如:神经网络分多少层;每层含有多少个隐藏单元;学习速率是多少;各层采用哪些激活函数。对于很多应用系统,即使是经验丰富的深度学习行家也不太可能一开始就预设出最匹配的超级参数,所以说,应用深度学习是一个典型的迭代过程,需要多次循环往复,才能为应用程序找到一个称心的神经网络,因此循环该过程的效率是决定项目进展速度的一个关键因素,而创建高质量的训练数据集,验证集和测试集也有助于提高循环效率。

对于训练数据,我们通常会将这些数据划分成几部分,一部分作为训练集,一部分作为简单交叉验证集,有时也称之为验证集(dev set),最后一部分则作为测试集,要尽量确保验证集和测试集的数据来自同一分布,就算没有测试集也不要紧,测试集的目的是对最终所选定的神经网络系统做出无偏估计,如果不需要无偏估计,也可以不设置测试集,所以如果只有验证集,没有测试集,我们要做的就是,在训练集上训练,尝试不同的模型框架,在验证集上评估这些模型,然后迭代并选出适用的模型。在机器学习发展的小数据量时代,常见做法是将所有数据三七分,就是人们常说的 70%训练集,30%测试集,也可以按照 60%训练,20%验证和 20%测试集来划分。假设我们有 100 万条数据,其中 1 万条作为验证集,1 万条作为测试集,100 万里取 1 万,比例是 1%,即:训练集占 98%,验证集和测试集各占 1%。对于数据量过百万的应用,训练集可以占到 99.5%,验证和测试集各占 0.25%,或者验证集占 0.4%,测试集占 0.1%。在机器学习中,我们通常将样本分成训练集,验证集和测试集三部分,数据集规模相对较小,适用传统的划分比例,数据集规模较大的,验证集和测试集要小于数据总量的 20%或 10%

1.2 偏差,方差(Bias /Variance)

如果给这个数据集拟合一条直线,可能得到一个逻辑回归拟合,但它并不能很好地拟合该数据,这是高偏差(high bias)的情况,我们称为“欠拟合”(underfitting)。

 训练,验证,测试集(Train / Dev / Test sets),偏差,方差(Bias /Variance)

相反的如果我们拟合一个非常复杂的分类器,比如深度神经网络或含有隐藏单元的神经网络,可能就非常适用于这个数据集,但是这看起来也不是一种很好的拟合方式分类器方差较高(high variance),数据过度拟合(overfitting)

 训练,验证,测试集(Train / Dev / Test sets),偏差,方差(Bias /Variance)

在两者之间,可能还有一些像图中这样的,复杂程度适中,数据拟合适度的分类器,这个数据拟合看起来更加合理,我们称之为“适度拟合”(just right)是介于过度拟合和欠拟合中间的一类。

 训练,验证,测试集(Train / Dev / Test sets),偏差,方差(Bias /Variance)

 

理解偏差和方差的两个关键数据是训练集误差(Train set error)和验证集误差(Dev set error),假定训练集误差是 1%,为了方便论证,假定验证集误差是 11%,可以看出训练集设置得非常好,而验证集设置相对较差,我们可能过度拟合了训练集,在某种程度上,验证集并没有充分利用交叉验证集的作用,像这种情况,我们称之为“高方差”high variance。

假设训练集误差是 15%,验证集误差是 16%,假设该案例中人的错误率几乎为 0%,算法并没有在训练集中得到很好训练,如果训练数据的拟合度不高,就是数据欠拟合,就可以说这种算法偏差比较高high bias。

假设训练集误差是 15%,偏差相当高,但是,验证集的评估结果更糟糕,错误率达到 30%,在这种情况下,我会认为这种算法偏差高,因为它在训练集上结果不理想,而且方差也很高,这是方差偏差都很糟糕的情况。

假设训练集误差是 0.5%,验证集误差是 1%,用户看到这样的结果会很开心,分类器只有 1%的错误率,偏差和方差都很低。

 

1.3 机器学习基础(Basic Recipe for Machine Learning)

 

如果偏差的确很高,试着评估训练集或训练数据的性能,若甚至无法拟合训练集,那么你要做的就是选择一个新的网络,比如含有更多隐藏层或者隐藏单元的网络,或者花费更多时间来训练网络,或者尝试更先进的优化算法。

 

如果方差高,最好的解决办法就是采用更多数据,如果你能做到,会有一定的帮助,但有时候,我们无法获得更多数据,我们也可以尝试通过正则化来减少过拟合。

 

上一篇:CF103E Buying Sets


下一篇:json虽然简单,但这些细节你未必知道