【梯度下降】梯度会累积会有什么影响?什么时候会用到梯度累积?为什么累计多个小批次的梯度再进行模型参数更新会达到和直接使用大批量数据得到梯度一样的结果呢?

问题描述

        梯度会累积会有什么影响?

        什么时候会用到梯度累积?

        为什么累计多个小批次的梯度再进行模型参数更新会达到和直接使用大批量数据得到梯度一样的结果呢?

逐一解答

        一、梯度会累积会有什么影响?

        在训练神经网络的过程中,如果不在每次反向传播之前清零梯度缓存(即调用 optimizer.zero_grad()),梯度会累积。累积梯度的影响如下:

  • 梯度不正确: 如果梯度累积,每次计算出的梯度将包含当前批次数据的梯度和之前所有批次数据的梯度。这将导致梯度值远大于预期值,尤其是在很多批次数据进行多次反向传播后,梯度的数值会变得非常大。如下图所示:

    梯度累积=当前梯度+之前累积的梯度

  • 梯度爆炸: 梯度累积会导致梯度值不断增大,最终可能会导致梯度爆炸现象。梯度爆炸会使得模型参数更新过大,导致模型参数变得不稳定,训练过程无法收敛。

  • 模型训练失败: 由于梯度爆炸,模型参数的更新方向和幅度可能变得随机且过大,从而破坏模型的训练,甚至使得模型性能变得很差。

        二、什么时候会用到梯度累积?

        梯度累积在以下情况下会被使用:

1. 小批量训
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值