关于深度学习中交叉验证的探讨
1 交叉验证目的
对于给定的模型,通过交叉验证评价模型的泛化性能。
交叉验证通常用于数据集较小的情况,当数据不足时,随机划分数据集会使模型的泛化误差(测试集上的误差)波动较大,此时需要交叉验证来辅助评估模型的性能。
当数据充足的情况下,直接按照一定比例划分训练集、验证集和测试集即可。
2 交叉验证步骤

以K折交叉验证为例:
- 将数据集等分为互不相交的K个数据子集
- 在K个数据子集中随机选取一个数据子集作为测试集,剩余的K-1个数据子集作为训练集
- 在选定的训练集上训练模型,在测试集上计算当前的泛化误差
- 重复步骤2和3,重复次数为K,保证每个数据子集都曾作为测试集并获得其对应的泛化误差
- 取K个泛化误差的均值作为当前模型的最终泛化误差的近似值
3 针对深度学习存在的问题
在传统机器学习中,进行如上步骤即可。但是,在深度学习方法中,上述步骤存在一些问题。
一般来说,在深度学习中,我们常需要独立于训练集和测试集的验证集来进行参数的选择(主要是训练轮次,例如解决过拟合的早停止机制,需要根据验证集的误差来决定停止轮次)。
需要注意的是,测试集理论上是不可见的,这代表测试集并不能参与参数选择。
按照上述步骤,我们缺少一个独立的验证集来判断模型在训练过程中是否出现过拟合、欠拟合问题,即无法确定模型的最佳训练轮次。
4 一点改进
<

本文探讨了深度学习中交叉验证的目的、步骤及针对深度学习存在的问题,提出了一种改进方法。在数据集有限时,交叉验证有助于评估模型性能。文章指出,传统交叉验证在深度学习中可能导致参数选择问题,因此建议在K折交叉验证前先划分训练集和测试集,使用验证集确定训练轮次。最后,模型再用全部训练集进行训练,以提高泛化能力。
最低0.47元/天 解锁文章
884

被折叠的 条评论
为什么被折叠?



