Datawhale 零基础入门CV之街道字符识别赛事-Task4 模型训练与验证

这个系列我写的很水,因为比较偏向基础,我就把主要的拿出来。这章主要讲了模型的训练集和验证集,以及模型的部分调参。

训练验证部分

  • 训练集(Train Set):模型用于训练和调整模型参数;

  • 验证集(Validation Set):用来验证模型精度和调整模型超参数;

  • 测试集(Test Set):验证模型的泛化能力。

划分验证集的主要方法:

  • 留出法(Hold-Out)

    直接将训练集划分成两部分,新的训练集和验证集。这种划分方式的优点是最为直接简单;缺点是只得到了一份验证集,有可能导致模型在验证集上过拟合。留出法应用场景是数据量比较大的情况。

  • 交叉验证法(Cross Validation,CV)

    将训练集划分成K份,将其中的K-1份作为训练集,剩余的1份作为验证集,循环K训练。这种划分方式是所有的训练集都是验证集,最终模型验证精度是K份平均得到。这种方式的优点是验证集精度比较可靠,训练K次可以得到K个有多样性差异的模型;CV验证的缺点是需要训练K次,不适合数据量很大的情况。

  • 自助采样法(BootStrap)

    通过有放回的采样方式得到新的训练集和验证集,每次的训练集和验证集都是有区别的。这种划分方式一般适用于数据量较小的情况。

调参部分

深度学习有众多的训练技巧,比较推荐的阅读链接有:

  • http://lamda.nju.edu.cn/weixs/project/CNNTricks/CNNTricks.html
  • http://karpathy.github.io/2019/04/25/recipe/

在参加本次比赛的过程中,我建议大家以如下逻辑完成:

  • 1.初步构建简单的CNN模型,不用特别复杂,跑通训练、验证和预测的流程;

  • 2.简单CNN模型的损失会比较大,尝试增加模型复杂度,并观察验证集精度;

  • 3.在增加模型复杂度的同时增加数据扩增方法,直至验证集精度不变。

你可能感兴趣的:(Datawhale 零基础入门CV之街道字符识别赛事-Task4 模型训练与验证)