每迭代几次就对模型进行检查它在验证集上的工作情况,并保存每个比以前所有迭代时都要好的模型。此外,还设置最大迭代次数这个限制,超过此值时停止学习。
交叉验证的原理为在给定的建模样本中,拿出大部分样本进行建模型,留小部分样本用于建立的模型进行预报,并求这小部分样本的预报误差,记录它们的平方加和。一般有三种常见形式:简单交叉验证(Holdout验证);K折交叉验证(K-fold cross-validation);留一验证(leave-one-out cross validation)。其中K折交叉验证又是最常用的一种。
如果交叉验证的结果比单次训练的结果精度下降,就证明了单次分割测试集与训练集出来的结果确实存在过拟合的现象。但缺点也非常明显,速度慢,此外,交叉检验只能起到检验过拟合的作用,并不能抑制过拟合。
一种是增加训练样本,第二种是数据增强。
从贝叶斯角度理解最为合理。
神经网络的每个单元(属于输出层的那些单元)都被赋予在计算中被暂时忽略的概率p。超参数p称为丢失率,通常将其默认值设置为0.5。然后,在每次迭代中,根据指定的概率随机选择丢弃的神经元。测试的时候输出乘以概率p,保证和训练的时候期望一样。
每迭代几次就对模型进行检查它在验证集上的工作情况,并保存每个比以前所有迭代时都要好的模型。此外,还设置最大迭代次数这个限制,超过此值时停止学习。缺点在于需要额外的空间,而且不好和其他的参数一起调。
训练多个模型,以每个模型的平均输出作为结果。
剪枝是决策树类算法防止过拟合的方法。如果决策树的结构过于复杂,可能会导致过拟合问题,此时需要对树进行剪枝,消掉某些节点让它变得更简单。剪枝的关键问题是确定减掉哪些树节点以及减掉它们之后如何进行节点合并。决策树的剪枝算法可以分为两类,分别称为预剪枝和后剪枝。
深度学习中两种多任务学习模式:隐层参数的硬共享和软共享
比较有争议。按照这篇文章说的,可能在一些情况下有抑制作用,使得overfitting再更多的training epoch后出现,但并不能阻止。
Batch Normalization(以下称BN)的主要作用是加快网络的训练速度。
硬要说是防止过拟合,可以这样理解:BN每次的mini-batch的数据都不一样,但是每次的mini-batch的数据都会对moving mean和moving variance产生作用,可以认为是引入了噪声,这就可以认为是进行了data augmentation,而data augmentation被认为是防止过拟合的一种方法。因此,可以认为用BN可以防止过拟合。