neural-network - 为什么具有动量的梯度下降是指数加权平均值?
问题描述
我最近在 SGDM 上观看了 Andrew Ng 的视频。我知道动量项通过加权最后一个梯度并使用 V_dw 的一小部分来更新梯度。我不明白为什么动量也被称为指数加权平均。此外,在 Ng 在 6:37 的视频中,他说使用 Beta = 0.9 实际上意味着使用最后 10 个梯度的平均值。有人可以解释它是如何工作的吗?对我来说,这只是向量 dW 中所有梯度的 1-0.9 的标量权重。
解决方案
您只需要考虑最后一个渐变中的内容。由于动量项,最后一个梯度已经是加权梯度。
在第一步中,您将只进行梯度下降。在第二步中,您将获得 m_grad_2 = grad_2 + 0.9 m_grad_1 的动量梯度。在第三步中,您将再次获得动量梯度 m_grad_3 = grad_3 + 0.9 m_grad_2,但旧的梯度由动量项组成。因此 0.9*m_grad_2 = 0.9 * (grad_2 + 0.9 grad_1),即 0.9 grad_2 + 0.81 grad_1。因此,梯度对第 k 步的影响将是 0.9^k。10 步后,影响将非常小。
推荐阅读
- android - 在 Android Studio 中调试时禁用调试控制台窗口
- azure - 如何通过代码直接访问 Azure On-Prem Data Gateway
- json - 使用本机反应发出 POST 请求
- asp.net - 时间跨度或持续时间格式
- sql - oracle select查询中的嵌套替换
- command-line-interface - HTTP 状态 404 – 未找到 - MAGNOLIA
- c - 如何检查C中的指针是否空闲?
- jquery - DataTable 如何将 id 放在按钮上?
- ionic-framework - Ionic 4 SQLite - TypeError: Object(…) is not a function
- c# - 如何忽略 linqpad 中未使用的 dll 引用