神经网络梯度消失和梯度爆炸及解决办法

梯度消失问题主要是由以下几个原因造成的:

(1) BP算法;(2)激活函数梯度小;(3)神经网络层数多

      BP算法是神经网络中应用最成功的的计算方法,前向计算数值,向后传播误差;在传播误差的时候会更新BP中的参数,更新是通过梯度进行传播的,如果在求解梯度的过程中,梯度值一直很小就会造成整个误差传播变小,一般损失函数的梯度都不小,但是激活函数的梯度会比较小(一般0-1之间,并且小于1比较多);如果神经网络的层数很多,也就是整个误差乘很多比较小的数会导致这个误差很小,这样就会造成梯度消失,梯度消失会造成误差值和真实值之间的差距没那么快的达到一致(收敛),这样就造成训练很难到到预期(需要训练很多轮),或者不能达到预期(消失的厉害基本上误差和真实值不能收敛)。

      下面就依次回顾这些概念,以及详细讲解梯度消失的原因和如何解决梯度消失问题

BP算法

BP算法可以参考下面的文章https://blog.csdn.net/program_developer/article/details/80032376

,文章介绍的比较详细,这里只是说一下核心的思想,和主要步骤。

(1)主要思想

      BP算法的基本思想是,学习过程由信号的正向传播与误差的反向传播两个过程组成。正向传播时,输入样本从输入层传入,经各隐层逐层处理后,传向输出层。若输出层的实际输出与期望的输出(教师信号)不符,则转入误差的反向传播阶段。误差反传是将输出误差以某种形式通过隐层向输入层逐层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信号,此误差信号即作为修正各单元权值的依据。这种信号正向传播与误差反向传播的各层权值调整过程,是周而复始地进行的。权值不断调整的过程,也就是网络的学习训练过程。此过程一直进行到网络输出的误差减少到可接受的程度,或进行到预先设定的学习次数为止。

    该思想依赖的数学依据是梯度和拉格朗日中值定理 ,误差为右侧部分,下图做了一下转化,通过图中的公式可以更新权值,细节大家可以见上文提到的博客。

2、

(2)主要步骤

1、初始化网络参数wi和bk,w均值为0标准差为1的高斯分布

2、 通过初始化值计算根据验证集合中的(input,output),中input的值计算出O,并得到O和output的误差

3、根据上述将到的梯度公式,计算出每个参数的梯度误差,然后更新权值

梯度消失

        层数比较多的神经网络模型在训练的时候会出现梯度消失(gradient vanishing problem)和梯度爆炸(gradient exploding problem)问题。梯度消失问题和梯度爆炸问题一般会随着网络层数的增加变得越来越明显。

下文描述的比较清楚这里就不在累述https://blog.csdn.net/program_developer/article/details/80032376  

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值