过拟合与欠拟合
过拟合:典型的表现为训练集损失远远小于验证集损失。
欠拟合:则表现为训练集损失大于验证集损失。

调参
1.dropout
一般适合于全连接层部分,而卷积层由于其参数并不是很多,所以不需要dropout,加上的话对模型的泛化能力并没有太大的影响。我们一般在网络的最开始和结束的时候使用全连接层,而hidden layers则是网络中的卷积层。所以一般情况,在全连接层部分,采用较大概率的dropout而在卷积层采用低概率或者不采用dropout。
Task4 模型训练与验证2.学习率
学习率是一个非常非常重要的超参数,这个参数呢,面对不同规模、不同batch-size、不同优化方式、不同数据集,其最合适的值都是不确定的,我们无法光凭经验来准确地确定lr的值,我们唯一可以做的,就是在训练中不断寻找最合适当前状态的学习率。
越大的batch-size使用越大的学习率。原理很简单,越大的batch-size意味着我们学习的时候,收敛方向的confidence越大,我们前进的方向更加坚定,而小的batch-size则显得比较杂乱,毫无规律性,因为相比批次大的时候,批次小的情况下无法照顾到更多的情况,所以需要小的学习率来保证不至于出错。
差分学习率与迁移学习,在不同的层设置不同的学习率,可以提高神经网络的训练效果,在迁移学习时,我们利用很多预训练的经典模型直接去训练我们自己的任务,在优化部分,我们对网络的预训练部分使用较小学习率进行微调,而对全连接层设置较大的学习率。

3.多尺度训练
多尺度训练是一种直接有效的方法,通过输入不同尺度的图像数据集,因为神经网络卷积池化的特殊性,这样可以让神经网络充分地学习不同分辨率下图像的特征,可以提高机器学习的性能。也可以用来处理过拟合效应,在图像数据集不是特别充足的情况下,可以先训练小尺寸图像,然后增大尺寸并再次训练相同模型。多尺度训练并不是适合所有的深度学习应用,多尺度训练可以算是特殊的数据增强方法,在图像大小这一块做了调整。如果有可能最好利用可视化代码将多尺度后的图像近距离观察一下,看看多尺度会对图像的整体信息有没有影响,如果对图像信息有影响的话,这样直接训练的话会误导算法导致得不到应有的结果。

交叉验证
交叉验证往往是对实际应用中数据不充足而采用的,基本目的就是重复使用数据。在平常中我们将所有的数据分为训练集和验证集就已经是简单的交叉验证了,可以称为1折交叉验证。注意,交叉验证和测试集没关系,测试集是用来衡量我们的算法标准的,不参与到交叉验证中来。交叉验证只针对训练集和验证集。交叉验证是Kaggle比赛中特别推崇的一种技巧,我们经常使用的是5-折(5-fold)交叉验证,将训练集分成5份,随机挑一份做验证集其余为训练集,循环5次,这种比较常见计算量也不是很大。还有一种叫做leave-one-out cross validation留一交叉验证,这种交叉验证就是n-折交叉,n表示数据集的容量,这种方法只适合数据量比较小的情况,计算量非常大的情况很少用到这种方法。

相关文章:

  • 2021-08-15
  • 2021-08-04
  • 2021-07-06
  • 2022-12-23
  • 2022-01-14
  • 2022-12-23
  • 2021-07-17
猜你喜欢
  • 2021-10-29
  • 2021-05-12
  • 2021-11-27
  • 2021-05-26
  • 2022-12-23
  • 2021-05-13
  • 2021-05-04
相关资源
相似解决方案