过拟合、欠拟合及其解决方案;梯度消失、梯度爆炸;

  • A+
所属分类:Algorithm 学习笔记

0x00前言:这三天内容太硬核,说实话学起来太难受了,看得懂,听得懂,但要自己去写完全不会,很难受,没法消化转化成自己的,只有一个法子反复看~哎,暂且先这样把。

0x01过拟合、欠拟合及其解决方案

训练误差和泛化误差

在解释上述现象之前,我们需要区分训练误差(training error)和泛化误差(generalization error)。通俗来讲,前者指模型在训练数据集上表现出的误差,后者指模型在任意一个测试数据样本上表现出的误差的期望,并常常通过测试数据集上的误差来近似。计算训练误差和泛化误差可以使用之前介绍过的损失函数,例如线性回归用到的平方损失函数和softmax回归用到的交叉熵损失函数。

机器学习模型应关注降低泛化误差。

模型选择

验证数据集

从严格意义上讲,测试集只能在所有超参数和模型参数选定后使用一次。不可以使用测试数据选择模型,如调参。由于无法从训练误差估计泛化误差,因此也不应只依赖训练数据选择模型。鉴于此,我们可以预留一部分在训练数据集和测试数据集以外的数据来进行模型选择。这部分数据被称为验证数据集,简称验证集(validation set)。例如,我们可以从给定的训练集中随机选取一小部分作为验证集,而将剩余部分作为真正的训练集。

K折交叉验证

由于验证数据集不参与模型训练,当训练数据不够用时,预留大量的验证数据显得太奢侈。一种改善的方法是K折交叉验证(K-fold cross-validation)。在K折交叉验证中,我们把原始训练数据集分割成K个不重合的子数据集,然后我们做K次模型训练和验证。每一次,我们使用一个子数据集验证模型,并使用其他K-1个子数据集来训练模型。在这K次训练和验证中,每次用来验证模型的子数据集都不同。最后,我们对这K次训练误差和验证误差分别求平均。

过拟合和欠拟合

  • 一类是模型无法得到较低的训练误差,我们将这一现象称作欠拟合(underfitting);
  • 另一类是模型的训练误差远小于它在测试数据集上的误差,我们称该现象为过拟合(overfitting)。 在实践中,我们要尽可能同时应对欠拟合和过拟合。虽然有很多因素可能导致这两种拟合问题;过拟合的根本原因:特征维度过多,模型假设过于复杂,参数过多,训练数据过少,噪声过多,导致拟合的函数完美的预测训练集,但对新数据的测试集预测结果差。 过度的拟合了训练数据,而没有考虑到泛化能力。因此需要减少特征维度,或者正则化降低参数值。
  • 欠拟合的根本原因:特征维度过少,模型过于简单,导致拟合的函数无法满足训练集,误差较大; 因此需要增加特征维度,增加训练数据。

参考:

动手学深度学习》中文版官网教材:http://zh.gluon.ai/ 
PyTorch中文文档:https://pytorch-cn.readthedocs.io/zh/stable/
https://www.cnblogs.com/hugechuanqi/p/10515901.html
https://blog.csdn.net/u010899985/article/details/79471909
http://www.cnblogs.com/eilearn/p/9203186.html
https://blog.csdn.net/willduan1/article/details/53070777
李航《统计学习方法》正则化原理通俗理解:https://blog.csdn.net/red_stone1/article/details/80755144

先记录一下,明天在回头看。反复看。慢慢消化。

错题记录:

过拟合、欠拟合及其解决方案;梯度消失、梯度爆炸;
概念记得不牢,回头巩固记忆

0x02梯度消失、梯度爆炸

梯度消失和梯度爆炸

深度模型有关数值稳定性的典型问题是消失(vanishing)和爆炸(explosion)。

当神经网络的层数较多时,模型的数值稳定性容易变差

过拟合、欠拟合及其解决方案;梯度消失、梯度爆炸;

梯度消失、梯度爆炸产生的原因:
https://www.cnblogs.com/pinking/p/9418280.html
深度学习中几种常见的激活函数理解与总结:
https://www.cnblogs.com/XDU-Lakers/p/10557496.html

概念积累:

过拟合、欠拟合及其解决方案;梯度消失、梯度爆炸;

sigmoid和tanh是“饱和激活函数”,而ReLU及其变体则是“非饱和激活函

过拟合、欠拟合及其解决方案;梯度消失、梯度爆炸;

过拟合、欠拟合及其解决方案;梯度消失、梯度爆炸;

模型训练实战步骤 :

  1. 获取数据集
  2. 数据预处理
  3. 模型设计
  4. 模型验证和模型调整(调参)
  5. 模型预测以及提交
zore

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: