美文网首页
什么是过拟合、网络退化、梯度消失和梯度爆炸?

什么是过拟合、网络退化、梯度消失和梯度爆炸?

作者: 一位学有余力的同学 | 来源:发表于2020-05-10 14:31 被阅读0次

    1.过拟合

    过拟合指的是在训练集上表现很好,而在测试集上表现很差。

    原因
    模型过度的学习训练样本所具有的特性,导致将训练样本所独有的特性,不是这一类别所共有的特性。例如训练能够识别狗的网络,模型只能认识哈士奇是狗,而不认识金毛也是狗。当用测试数据集进行预测时会导致模型的预测准确率较低,泛化性能较差。

    解决办法

    • 扩大模型规模
    • 增加训练数据集
    • 正则化
    • Dropout
    • Bagging和Boosting,Bagging和Boosting是机器学习中的集成方法,多个模型的组合可以弱化每个模型中的异常点的影响,保留模型之间的通性,弱化单个模型的特性

    2.网络退化

    增加网络的层数,可以使模型准确率达到饱和(100%),继续增加网络模型的层数,准确率会逐渐降低,这种现象不是由于过拟合而造成的。

    原因
    理论上较深的模型不应该比它对应的较浅的模型更差,因为较深的模型是较浅的模型的超空间。较深的模型可以这样得到:先构建较浅的模型,然后添加很多恒等映射的网络层。
    实际上较深模型后面添加的不是恒等映射,而是一些非线性层。因此,退化问题也表明了:通过多个非线性层来近似恒等映射可能是困难的。

    解决办法

    • 残差网络

    3.梯度消失和梯度爆炸

    原因
    梯度消散和梯度爆炸本质上是一样的,都是因为网络层数太深而引发的梯度反向传播中的连乘效应。Sigmoid激活函数最容易产生梯度消散,这是由于它的函数特性决定的。

    解决办法

    • 改换激活函数,使用relu、LeakyRelu、ELU等激活函数可以改善梯度消散或爆炸问题。relu导数的正数部分恒等于1,所以不会产生梯度消失和梯度爆炸。
    • BatchNormalization。对每一层的输入做scale和shift方法,将每层神经元的输入分布强行拉回均值为0、方差为1的标准正态分布,这就使得激活层输入值落入在非线性函数对输入值比较敏感的区域,使得输入的小变化会导致损失函数较大的变化,使得梯度变大,训练速度加快,且避免梯度消失问题。
    • 残差网络
    • 梯度剪切,该方法主要是针对梯度爆炸提出。其思想是设置一个梯度剪切阈值,更新梯度时,如果梯度超过这个阈值,那么限制其在这个范围之内

    参考
    网络退化、过拟合、梯度消散/爆炸

    相关文章

      网友评论

          本文标题:什么是过拟合、网络退化、梯度消失和梯度爆炸?

          本文链接:https://www.haomeiwen.com/subject/hsrjnhtx.html