0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

梯度爆炸问题的介绍和如何解决爆炸问题详细概述

深度学习实战 2018-04-30 19:15 次阅读

最近在做一个文本检测的项目,在训练的过程中遇到了很严重的梯度爆炸情况,今天就来谈谈梯度爆炸怎么解决。

首先我们要清楚,为什么会产生梯度爆炸。要知道就目前来说,我们一般都认为深层的神经网络会比浅层的神经网络的表现要好,所以在处理一些较为复杂的任务的时候,人们往往会使用更深层次的神经网络,而现在的大部分神经网络的权重更新都要依靠反向传播。

那么,问题来了。要知道权重的更新的公式是这样的:

梯度爆炸问题的介绍和如何解决爆炸问题详细概述

对于每个变量的更新,都要求梯度,也就是求链式偏导。假如,我们想象一下,我们的模型处在一个很陡的陡坡上,那么在求梯度的时候,在网络层上出现了指数型的递增,也就是说,梯度爆炸了。

那么具体上是怎么样的呢?我们来看下面这张图:

梯度爆炸问题的介绍和如何解决爆炸问题详细概述

可以看到,上面是我输出的每一步的损失函数的值,损失值在指数型地增加。nan是not a number的意思,它表示无穷大的数或者无意义的数。遇到这个问题的时候,我第一反应是:是不是我学习率太大了。然后我调小了学习率,发现情况有所改善,但是到最后还是出现的梯度爆炸。然后我又思考,会不会是我网络结构有问题啊,为了验证这问题,我把batch size调为了1,固定输入一张图片,发现也是收敛到一定程度也出现了梯度爆炸的情况。那么我可以断定了,是由于网络层数过多导致的梯度爆炸的问题。

问题找到了,那我面临了两个选择:一是降低网络层数,二是做梯度裁剪。考虑到了数据的复杂性,我选择了后者。好,那就来说说梯度裁剪是什么?如何做梯度裁剪。

梯度裁剪

梯度裁剪是指在一个变量计算的梯度过大的情况下,人为地将梯度控制在一定的范围以内。

梯度爆炸问题的介绍和如何解决爆炸问题详细概述

那直接来看一下代码实现。

optimizer = tf.train.GradientDescentOptimizer(learning_rate)params = tf.trainable_variables()gradients = tf.gradients(loss, params)clipped_gradients, norm = tf.clip_by_global_norm(gradients, clip_norm)optimizer_op = optimizer.apply_gradients(zip(clipped_gradients, params), global_step)

你只要设置里面的clip_norm就可以了,那么设置多少合适呢?

梯度爆炸问题的介绍和如何解决爆炸问题详细概述

t_list在这里是所有梯度的张量,然后可以看下它是怎么算的。如果global_norm

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4732

    浏览量

    100393
  • 梯度
    +关注

    关注

    0

    文章

    30

    浏览量

    10300

原文标题:项目实战 | 实战中如何解决梯度爆炸的问题

文章出处:【微信号:gh_a204797f977b,微信公众号:深度学习实战】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    电视机显像管为什么能爆炸伤人

    电视机爆炸伤人的事件时有发生,南方某省曾发生一次爆炸伤亡7人的事件。多年来无合理解释。火调王工认为:电视机大威力爆炸的原因是显像管内部电极间发生了电弧,电弧高温使电极物质蒸发,显像管内的气压由负压
    发表于 01-19 10:12

    电容爆炸

    电容过压爆炸,该如何换电容?各种型号都不知道怎么选
    发表于 04-09 19:40

    格氏锂电池爆炸了!!!爆炸了!!!

    `慎用格氏锂电池!!!慎用山寨充电器!!!格氏锂电池充电过程中爆炸了!!!一声巨响!!!屋子里全是浓烟!!!幸运的没有受伤!!!不会在用格式了!!!`
    发表于 08-14 10:22

    冲击、碰撞、爆炸、跌落力测量系统介绍

    本帖最后由 123559792 于 2017-8-30 14:06 编辑 冲击、碰撞、爆炸、跌落力测量系统介绍,包括采集、传感器、软件等全面介绍
    发表于 08-28 17:06

    电解电容爆炸的原因及措施

    电解电容内有电极、介质材料、电解液,根据其结构与可能的工作条件,电解电容爆炸的原因分析如下:1、电解液受热会膨胀,当膨胀到一定程度就会撑开电容的外壳漏出来,这就是俗称的漏液。2、当温度上升速度较慢
    发表于 06-03 22:27

    电解电容爆炸的原因分析

    电解电容内有电极、介质材料、电解液,根据其结构与可能的工作条件,电解电容爆炸的原因分析如下:1、电解液受热会膨胀,当膨胀到一定程度就会撑开电容的外壳漏出来,这就是俗称的漏液。2、当温度上升速度较慢
    发表于 07-16 04:20

    零基础快速制作爆炸图?试一试浩辰3D软件!

    爆炸图的介绍,关于爆炸图的更多详细功能,会在后期的文章中不断推送。想GET更多3D绘图技巧吗?那赶紧关注我吧!
    发表于 09-17 17:39

    电容为什么会爆炸?如何防止?

    什么是电解电容电容为什么会爆炸?如何防止?电解电容串联解析
    发表于 03-16 08:25

    铅酸电池会爆炸吗_铅酸电池爆炸的原因

    很多人都以为铅酸电池不会爆炸,小编特意咨询了一下维修铅酸电池的老师傅,据老师傅介绍:和锂电池相比,铅酸电池的安全性还是非常高,出现爆炸的现象非常少,但目前市场竞争激烈,一些不良的商家为了降低电池成本,采用劣质的极板,极容易造成短
    发表于 08-20 11:17 13.3w次阅读

    电动车锂电池爆炸原因_怎么防止电动车锂电池爆炸

    本文首先分析了电动车电池寿命短的原因,其次介绍了电动车锂电池爆炸原因,最后介绍了防止电动车锂电池爆炸注意事项。
    发表于 03-17 11:03 5.1w次阅读

    深度神经网络的困扰 梯度爆炸梯度消失

    ,LSTM)正是为了解决梯度消失问题而设计的一种特殊的RNN结构。 深度神经网络的困扰:梯度爆炸梯度消失 在此前的普通深度神经网络和深度卷积网络的讲解时,图1就是一个简单的两层普通网
    的头像 发表于 08-23 09:12 4454次阅读
    深度神经网络的困扰 <b class='flag-5'>梯度</b><b class='flag-5'>爆炸</b>与<b class='flag-5'>梯度</b>消失

    电容会爆炸吗 电容在什么情况下会爆炸

    电容会爆炸吗 电容在什么情况下会爆炸  电容是电子元件中常见的一种,它主要用于电路中的储能和滤波等功能。但是,在某些情况下,电容也会出现一些比较危险的事故,如爆炸等。本文将详细
    的头像 发表于 09-04 15:43 1.1w次阅读

    电容爆炸的原因有哪些?

    详细介绍这些原因。 1. 过压 在正常工作范围内操作的电容器可以承受一定电压,但如果电压超过了它们的额定值,那么它们就有可能爆炸。过压可能会导致电场过于强烈,使电容器内部的电介质无法承受,从而导致电容器失效。这种情
    的头像 发表于 09-07 15:58 1.1w次阅读

    什么是电池的爆炸?怎样预防电池爆炸

    什么是电池的爆炸?怎样预防电池爆炸? 电池的爆炸是指电池在使用或处理过程中发生异常爆炸情况,导致严重的人员伤亡和物质损失。一般来说,电池爆炸
    的头像 发表于 11-06 10:56 1300次阅读

    电容器爆炸的3个常见原因 当电容器爆炸时应该怎么办

    电容器爆炸的3个常见原因 当电容器爆炸时应该怎么办 电容器是一种用于存储电荷和能量的设备,但由于各种原因,电容器爆炸是一种可能发生的危险情况。本文将详细
    的头像 发表于 12-20 17:05 4262次阅读