引用Andrew Ng 的一段话:
超参数有很多,隐含层层数选择,隐含层单元节点选择,学习率,激活函数等。一来预设出最匹配的超参数是很困难的,所以应用深度学习是一个典型的迭代过程,需要多次循环往复,才能为应用程序找到一个称心得神经网络。因此,循环该过程的效率是决定项目进展速度的关键因素,而创建高质量的训练数据集,验证集和测试集也有助于提高循环效率。
这有一个常见的误区,在机器学习发展的小数据时代,常见做法是将所有数据三七分,70%训练集,30%测试集或者60%训练集,20%验证集,20%测试集,这是机器学习前几年学习领域普遍认可的最好实践方法,如你的数据是100,1000,1万条按照上述划分是非常合理的。 BUT在大数据时代,我们现在的数据量可能是百万级的,那么验证集和测试集占总数的比例会趋向于变得更小。因为验证集的目的就是为了验证不同的算法,检验哪种算法更加高效。比如我们有一百万的数据,那么拿出1万的数据便足以进行评估,找出其中表现最好的1-2种算法。测试集主要目的是正确评估分类器的性能,同样只需要拿出10000条数据便足以评估单个分类器。所以,假设我们有100万数据,其中1万条做验证集,1万条做测试集。即:训练集98%,验证集和测试集各1%。对于数据量为百万级应用,训练集可以占到99.5%(哭晕在厕所) 注:想清楚每个数据集的作用,而不是机械的记住原来的三七分
如图所示,高偏差将导致欠拟合,高方差将导致过拟合。 在只有两维特征X1,X2,我们可以绘制数据,将偏差和方差可视化,在多维空间绘制数据可视化分割边界将无法实现。但我们可以通过几个指标来知道。
理解偏差和方差的两个关键数据是:
假设训练集误差1%,验证集误差11%,我们可能过度拟合了训练集,某种程度上交叉验证集并没有充分利用交叉验证集的作用,像这种情况,我们称之为高方差。 假设训练集错误率是15%,验证集错误率16%,这属于高偏差欠拟合。 假设训练集错误率是15%,验证集错误率30%,这属于高偏差以及高方差。 假设训练集错误率是0.5%,验证集错误率1%,这属于低偏差以及低方差。
注:内容来源于吴恩达deeplearning.ai,为什么想写一篇这么基础的呢?不要问我,踩过的坑只有自己清楚