RNN中的梯度计算:时间反向传播多对一-关系

问题描述

这不是直接与编程相关的问题,但老实说,我不知道还有什么要问的(如果您知道某个论坛更适合该问题,请告诉我,我会在那里问)。

我试图对时间反向传播(BPTT)的工作原理有更深入的了解,并且我在this great article下看到了以下图片

BPTT

我仍然很难理解(例如)我如何获得ds_1 / ds_0?我知道应该根据以前的渐变来计算,但定义的准确度如何?

我尝试使用自己的示例来重构上面的图像,并观看了一些教程来填写上面图像的更详细的版本:

BPTT_2

我认为红色的前三个方程是正确的,但是我不太确定它是如何进行的。

有人可以告诉我h_t-1的两个暗方程是否正确?

这与以上版本有何关系?
ds_3 / ds_2 = dL / dθ_h吗?

非常感谢您的帮助:D

干杯, 斯文

解决方法

我认为您需要了解什么是计算图以及如何通过微积分链式法则计算反向传播。之后,您可以将想法视为黑匣子,因为现代深度学习框架会为您完成繁重的工作,让您专注于大局。

我相信这两个视频将帮助您了解计算图及其数学。

What is Backpropagation Really Doing?

Backpropagation Calculus