神经网络的梯度消失和过拟合产生原因及其解决方案

本文探讨了深度神经网络中常见的梯度消失问题,分析了其原因,包括使用梯度下降算法和某些激活函数的特性。梯度消失导致训练缓慢和过拟合。为了解决这个问题,提出了使用ReLU和LeakyReLU等激活函数,以及应用dropout、L2正则化等技术来缓解过拟合。此外,初始化神经元权重也对避免梯度消失有一定帮助。
摘要由CSDN通过智能技术生成

梯度消失

梯度消失原因

当神经网络层数加深时,可能会出现一些问题。

  • 梯度消亡:训练过程非常缓慢
  • 过拟合,在训练数据上表现得很好,在测试集上表现得很差。

梯度消亡的现象:神经网络输入端的网络层的系数逐渐不 再随着训练而变化,或者变化得很缓慢。随着网络层数增加,这个现象越发明显。

梯度消失的前提:

  • 使用基于梯度的训练方法(梯度下降算法)
  • 使用的激活函数具有输出值远远小于输入值的范围,如Logistic,tanh。

梯度消亡问题分析

  • 梯度下降算法依靠理解系数的微小变化对输出的影响来学习网络系数的值。如果一个系数的微小变化对网络的输出没有影响或者影响非常小,那么就无法知道如何优化这个系数,或者优化得非常慢,造成训练的困难。
  • 使用梯度下降算法训练网络,如果激活函数具备输出值范围远小于输入值范围,那么就会出现梯度消失,例如,双曲正切函数tanh将 -∞到+∞的输入压缩到输出-1到+1之间,除开-6到+6之间的数,其他输入值的梯度变化都非常小,接近于0。如图蓝色为tanh函数,红色为梯度

梯度消失解决方案

  • 使用激活函数relu,输入大于0,梯度为1,否则为0
  • 使用激活函数leakyrelu:输入大于等于0,梯度为1,否则为a。
  • 采用不使用梯度的训练方法,如基于遗传进化算法,粒子群优化

过拟合

深度神经网络面临的第二个问题:过拟合。
以二分类问题为例
我们需要找到一条线把两类分开。过拟合就是在训练集表现得太好,没有找到普遍规律,在测试集上错误反而比较高。_

常用的过拟合解决方案:

  • dropout
  • L2正则化
  • L1正则化
  • MaxNorm(最大范数)

dropout
首先需要选择rate,如选择1/3
在一轮训练中,有1/3的隐含层神经元被舍弃用,如图1,
第二轮中,又有随机1/3的隐含层神经元被舍弃用,如图2
在第三轮中,又有随机1/3的隐含层神经元被舍弃用,如图3

最后结束后,使用整体网络,和每个神经元系数,因为之前网络变小(只有部分神经元发挥作用)时得到的是输出值,这次网络变大了,所以最每个神经元系数要乘以(1-dropout rate)

L2正则化

L1正则化

最大范数约束

  • 对每一个神经元对应的系数向量,设置一个最大第二范数值C,这个值通常设为3,如果一个神经元的第二范数值大于C,那么将每一个系数值按比例减小,使得第二范数值等于C

  • 在训练的每一次更新系数的时候都额外加上这一步:

  • 由于最大范数的约束,可以防止由于训练步长较大引发的过拟合。

神经元系数的初始化

这里和过拟合无关

bias(偏置系数):初始化为0
普通系数:初始化为

n为神经元中输入元素的个数。

在这里插入图片描述
作者:电气工程的计算机萌新-余登武
在这里插入图片描述

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

总裁余(余登武)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值