深度学习的实践层面
1.1 训练,验证,测试集
假设这是训练数据,我用一个长方形表示,我们通常会将这些数据划分成几部分,一部分作为训练集,一部分作为简单交叉验证集,有时也称之为验证集,方便起见,我就叫它验证集(dev set),其实都是同一个概念,最后一部分则作为测试集。
接下来,我们开始对训练集执行算法,通过验证集或简单交叉验证集选择最好的模型,经过充分验证,我们选定了最终模型,然后就可以在测试集上进行评估了,为了无偏评估算法的运行状况。
在机器学习发展的小数据量时代,常见做法是将所有数据三七分,就是人们常说的70%训练集,30%测试集。如果明确设置了验证集,也可以按照60%训练集,20%验证集和20%测试集来划分。这是前几年机器学习领域普遍认可的最好的实践方法。
在大数据时代,我们现在的数据量可能是百万级别,那么验证集和测试集占数据总量的比例会趋向于变得更小。
在机器学习中,如果只有一个训练集和一个验证集,而没有独立的测试集,遇到这种情况,训练集还被人们称为训练集,而验证集则被称为测试集
偏差,方差(Bias /Variance)
高偏差(high bias)------“欠拟合”(underfitting)
高方差(high variance)------拟合(overfitting):拟合一个非常复杂的分类器,比如深度神经网络或含有隐藏单元的神经网络,可能就非常适用于这个数据集,但是这看起来也不是一种很好的拟合方式分类器。
机器学习基础
下图为在训练神经网络用到的基本方法:
初始模型训练完成后,首先要知道算法的偏差高不高,如果偏差较高,试着评估训练集或训练数据的性能。如果偏差的确很高,甚至无法拟合训练集,就要选择一个新的网络。如果网络足够大,通常可以很好的拟合训练集。
评估方差------查看验证集性能。如果方差高,最好的解决办法就是采用更多数据,也可以尝试通过正则化来减少过拟合。但是,如果能找到更合适的神经网络框架,有时它可能会一箭双雕,同时减少方差和偏差。
(未完待续)