深度学习里面的梯度消失和梯度爆炸现象
·
一、为什么会发生梯度消失或者梯度爆炸
目前优化神经网络的方法一般都是BP,根据损失函数计算的误差通过梯度进行反向传播,来修正神经网络参数。反向传播要用链式法则,就是连乘,梯度将以指数形式传播很容易导致消失和爆炸。
梯度消失:如果神经网络层数比较深,或者激活函数选择不合适,如sigmoid,它的梯度都小于0.25,会导致梯度消失。
梯度爆炸:如果神经网络层数比较深,或初始化权重值比较大,都会导致梯度爆炸。
二、如何解决
1.权重正则化,通过对网络权重做正则化来防止其过拟合,通过正则化项来限制网络权重大小,可以一定程度防止网络爆炸。如L1和L2
2.选择Relu这种激活函数,他的导数在正数区域恒为1.
3.BN,对输出进行规范化,消除了权重参数放大缩小带来的影响,进而解决了梯度消失和爆炸的影响。
4.加入残差网络
反向传播时的梯度和W权重和X数据都有关,权重正则化解决W,BN解决X。
三、Reference
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)