我是靠谱客的博主 能干大叔,最近开发中收集的这篇文章主要介绍深入浅出讲解梯度消失和梯度爆炸问题(原因、解决方法)梯度消失和梯度爆炸产生的原因:解决方法:,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
- 本文收录于《深入浅出讲解自然语言处理》专栏,此专栏聚焦于自然语言处理领域的各大经典算法,将持续更新,欢迎大家订阅!
- 个人主页:有梦想的程序星空
- 个人介绍:小编是人工智能领域硕士,全栈工程师,深耕Flask后端开发、数据挖掘、NLP、Android开发、自动化等领域,有较丰富的软件系统、人工智能算法服务的研究和开发经验。
- 如果文章对你有帮助,欢迎
关注
、点赞
、收藏
、订阅。
梯度消失和梯度爆炸产生的原因:
传统的神经网络通常是基于BP算法优化权重参数的,即通过损失函数计算的误差通过梯度反向传播的方式对神经网络中的权重进行更新,其中用到的是连乘形式的链式法则。
梯度消失:产生的原因基本上是网络太深或是采用了不恰当的损失函数,如sigmoid函数、tanh函数等。由于sigmoid函数的导数最大值是0.25,因而通过链式法则,导致靠近输入层的权重更新缓慢甚至停滞。
梯度爆炸:产生的原因一般是深层网络或是权重初始化过大的情况,伴随着传统神经网络的链式法则,梯度会越来越大,训练过程中,很容易使得权重的值也越来越大导致溢出等情况。
解决方法:
由于梯度消失和梯度爆炸都是由于网络太深或是权重更新过大或是过小,并且伴随着链式乘法法则导致的,主要有以下几种解决方法:
- 预训练+微调
- 换成Relu、LeakyRelu等非饱和的激活函数
- 梯度剪切、梯度正则
- 使用Batch Normalization
- 使用LSTM或是GRU等
- 使用残差结构
- 神经网络权重初始化(Xavier, He初始化等)
关注微信公众号【有梦想的程序星空】,了解软件系统和人工智能算法领域的前沿知识,让我们一起学习、一起进步吧!
最后
以上就是能干大叔为你收集整理的深入浅出讲解梯度消失和梯度爆炸问题(原因、解决方法)梯度消失和梯度爆炸产生的原因:解决方法:的全部内容,希望文章能够帮你解决深入浅出讲解梯度消失和梯度爆炸问题(原因、解决方法)梯度消失和梯度爆炸产生的原因:解决方法:所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复