深度学习里面的梯度消失和梯度爆炸现象

一、为什么会发生梯度消失或者梯度爆炸

目前优化神经网络的方法一般都是BP,根据损失函数计算的误差通过梯度进行反向传播,来修正神经网络参数。反向传播要用链式法则,就是连乘,梯度将以指数形式传播很容易导致消失和爆炸。

梯度消失:如果神经网络层数比较深,或者激活函数选择不合适,如sigmoid,它的梯度都小于0.25,会导致梯度消失。

梯度爆炸:如果神经网络层数比较深,或初始化权重值比较大,都会导致梯度爆炸。

二、如何解决

1.权重正则化,通过对网络权重做正则化来防止其过拟合,通过正则化项来限制网络权重大小,可以一定程度防止网络爆炸。如L1和L2

2.选择Relu这种激活函数,他的导数在正数区域恒为1.

3.BN,对输出进行规范化,消除了权重参数放大缩小带来的影响,进而解决了梯度消失和爆炸的影响。

4.加入残差网络

反向传播时的梯度和W权重和X数据都有关,权重正则化解决W,BN解决X。

三、Reference

深度学习中梯度消失和梯度爆炸的根本原因及其缓解方法_jiangtao129的博客-CSDN博客_relu 梯度爆炸

你可能感兴趣的:(深度学习各项知识整理,深度学习,人工智能,机器学习)