Task03:过拟合、欠拟合及梯度爆炸与梯度消失

Clementine ·
更新时间:2024-11-11
· 617 次阅读

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

过拟合和欠拟合
模型训练中经常出现的两类典型问题:
一类是模型无法得到较低的训练误差,我们将这一现象称作欠拟合(underfitting);
另一类是模型的训练误差远小于它在测试数据集上的误差,我们称该现象为过拟合(overfitting)。 在实践中,我们要尽可能同时应对欠拟合和过拟合。这里我们重点讨论两个因素:模型复杂度训练数据集大小

(1)模型复杂度
模型越复杂,对于训练集数据的拟合程度越高,但是在测试集上也就越容易出现过拟合的情况。而模型复杂度过低的时候,就容易出现欠拟合的情况。
(2)训练数据集大小
一般来说,如果训练数据集中样本数过少,特别是比模型参数数量(按元素计)更少时,过拟合更容易发生。此外,泛化误差不会随训练数据集里样本数量增加而增大。

梯度爆炸和梯度消失
当神经网络的层数较多时,模型的数值稳定性容易变差。如果层数 l 较大, 第l层的输入H(l) 的计算可能会出现衰减或爆炸,梯度的计算也容易出现消失或爆炸。

在神经网络中,通常需要随机初始化模型参数。假设输出层只保留一个输出单元 o1 ,且隐藏层使用相同的激活函数。如果将每个隐藏单元的参数都初始化为相等的值,那么在正向传播时每个隐藏单元将根据相同的输入计算出相同的值,并传递至输出层。在反向传播中,每个隐藏单元的参数梯度值相等。因此,这些参数在使用基于梯度的优化算法迭代后值依然相等。之后的迭代也是如此。在这种情况下,无论隐藏单元有多少,隐藏层本质上只有1个隐藏单元在发挥作用。


作者:咚咚咚鱼



过拟合 欠拟合 梯度

需要 登录 后方可回复, 如果你还没有账号请 注册新账号