目录
1 训练集验证集和测试集
在构建神经网络时,我们需要设置很多参数,但我们无法在构建之始就获得最佳的参数,为了获得这些参数,我们需要不断进行迭代更新:首先利用初始参数构建一个神经网络模型,然后通过代码实现这个神经网络,最终通过实验验证这些参数构成的神经网络的性能,根据结果对参数进行优化更新,然后进行下次循环,最终得到最优解
通常我们会把整个样本数据集分成三部分,训练集,用来训练模型;验证集,用来验证不同算法的表现情况;测试集,用来作为算法的无偏估计。在数据量较少,如100,1000,10000时,可以设计为3:1:1,在数据量较大时,应设为98:1:1,数据量越大,训练集比例应当越高,此外我们需要保证训练集和测试集样本分布相同,保持统一来源。
还有一点,测试集可以不进行设置,因为测试集是用来展现算法的结果,我们使用训练集训练好模型后分别放在验证集上验证,然后分别在验证集上验证根据结果选择模型也是可以的,并不一定要进行无偏估计。
2 偏差和方差
1 概念
偏差和方差是机器学习领域必须解决的两个问题,传统机器学习中,它们对应着欠拟合和过拟合两个对立概念,但是在深度学习中,它们是两个独立的概念,我们需要同时降低这两个值以获得最优模型,下图是二维平面上高偏差,最优解,高方差的例子:
对于如上的二维特征,从图中可以很明显的看出来,但是对于无法绘制图像的高维特征,我们只能通过划分的数据集来判断,如果训练集误差为1%,验证集误差为11%,这说明模型对训练集效果好,对验证集较差,这说明出现了过拟合,从而导致模型泛化能力差,这就是高方差的体现;而如果训练集误差为15%,验证集误差为16%,这说明,模型出现了欠拟合情况,这是高偏差的体现;如果训练集误差为15%,验证集为30%,这就是最坏的情况,高偏差高方差的表现。
一般而言,训练集误差体现是否出现了偏差,验证集合误差体现是否出现了方差,更准确的来说,是训练集和验证集的相对差值体现了方差。
2 如何避免出现方差和偏差
避免出现高偏差的方法:增加隐藏层个数,神经元个数,增加训练次数,选择更优的模型
避免出现高方差的方法:增加训练集数据,进行正则化,选择更优的模型
3 正则化
1 正则化的概念
上面我们提到了可以通过正则化减少过拟合情况,下面我们具体介绍一下这种方法:
我们在学习逻辑回归的时候,采用了L2正则化,具体表述如下所示<