算法面试高频知识点:模型梯度爆炸和梯度消失的原因及解决方法

图片说明

梯度爆炸和梯度消失问题

一般在深层神经网络中,我们需要预防梯度爆炸和梯度消失的情况。

梯度消失(gradient vanishing problem)和梯度爆炸(gradient exploding problem)一般随着网络层数的增加会变得越来越明显。

例如下面所示的含有三个隐藏层的神经网络,梯度消失问题发生时,接近输出层的hiden layer3的权重更新比较正常,但是前面的hidden layer1的权重更新会变得很慢,导致前面的权重几乎不变,仍然接近初始化的权重,==这相当于hidden layer1没有学到任何东西,此时深层网络只有后面的几层网络在学习,而且网络在实际上也等价变成了浅层网络。==

在这里插入图片描述

那么产生这种现象的原因是什么呢?

我们来看看看反向传播的过程:

(假设网络每一层只有一个神经元,并且对于每一层

在这里插入图片描述

可以推导出:

在这里插入图片描述

而sigmoid的导数如下图所示:

在这里插入图片描述

可以知道,的最大值是,而我们初始化的权重通常都小于1,因此,而且链式求导层数非常多,不断相乘的话,最后的结果越来越小,趋向于0,就会出现梯度消失的情况。

梯度爆炸则相反,时,不断相乘结果变得很大。

梯度爆炸和梯度消失问题都是因为网络太深,网络权重更新不稳定造成的,本质上是因为梯度方向传播的连乘效应。

梯度爆炸和梯度消失的解决方法

  1. 预训练加微调。
  2. 梯度截断。
  3. 使用ReLU、LeakyReLU等激活函数。
  4. 加BN层。
  5. 使用残差结构。
#秋招##实习##面经##面霸的自我修养##面试八股文#
全部评论
点赞 回复 分享
发布于 2022-08-24 20:35 江苏
每天来学习一下
点赞 回复 分享
发布于 2022-08-24 09:00 江苏

相关推荐

08-08 16:33
唐山学院 Java
职场水母:首先,简历太长,对于实习和应届找工作,hr一眼扫的是学历,技术看实习,你写的技术栈字太多了,尽量用一句话概括不用写那么详细,技术面的时候会问的,而且技术栈都会在实习或者项目里体现,你要做的是,把你的简历浓缩为一页,删除没用的东西,比如实践经历,自我评价,这些纯废话,没用,专业技能写的太离谱,你真的熟练掌握了吗,建议都写熟悉,找工作和写论文不一样,追求的是干练和实用,把实习经历和项目提前,把掌握的技术栈写到最后,然后去找实习,
点赞 评论 收藏
分享
评论
4
5
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务