如果我只有一个输出,则随时间反向传播的误差项是什么?
What is the error term in backpropagation through time if I only have one output?
在这个问题中,我已经看到,如果我在最后一个时间步长 T 中只有一个输出,即 y(T),那么在较早时间步长的错误是不需要的。
那么,损失函数项E = sum(E(t))代替E = E(T)的值,T是从开始到最终时间步的时间扫描?
我会尽力消除一些困惑。这是标准展开的 RNN:
并假设 o[t+1]
是最后一步。
当网络实际使用所有输出时,错误将通过所有垂直边反向传播:从 [=11= 到 s[t+1]
,从 [=15 到 s[t]
=],...,从 o[0]
到 s[0]
。此外,除了最后一个单元格之外的所有单元格都会收到来自后续单元格的错误:s[t]
来自 s[t+1]
,s[t-1]
来自 s[t]
,等等
很容易注意到所有单元格 s[0]
... s[t]
收到两条错误消息并将它们相加(因此求和)。
现在,Denny Britz 讨论的情况是 只有 o[t+1]
被网络使用,所有其他输出都被忽略。这相当于从 o[t]
、o[t-1]
、...、o[0]
流出的零梯度。从技术上讲,s[i]
中接收到的总梯度仍然是一个总和,但它是一个元素(和一个零)的总和。实际上,错误将像这样反向传播:
o[t+1] -> s[t+1] -> s[t] -> s[t-1] -> ... -> s[0]
其他几点说明:
Then, is the loss function term E = sum(E(t)) instead the value of E = E(T)
我在这个例子中没有涉及到损失函数。损失位于上方并将输出与标签进行比较并启动第一个反向消息。在这两种情况下,它是相同的。区别仅在于错误消息是通过所有 o[i]
还是仅通过 o[t+1]
.
在这个问题中,
那么,损失函数项E = sum(E(t))代替E = E(T)的值,T是从开始到最终时间步的时间扫描?
我会尽力消除一些困惑。这是标准展开的 RNN:
并假设 o[t+1]
是最后一步。
当网络实际使用所有输出时,错误将通过所有垂直边反向传播:从 [=11= 到 s[t+1]
,从 [=15 到 s[t]
=],...,从 o[0]
到 s[0]
。此外,除了最后一个单元格之外的所有单元格都会收到来自后续单元格的错误:s[t]
来自 s[t+1]
,s[t-1]
来自 s[t]
,等等
很容易注意到所有单元格 s[0]
... s[t]
收到两条错误消息并将它们相加(因此求和)。
现在,Denny Britz 讨论的情况是 只有 o[t+1]
被网络使用,所有其他输出都被忽略。这相当于从 o[t]
、o[t-1]
、...、o[0]
流出的零梯度。从技术上讲,s[i]
中接收到的总梯度仍然是一个总和,但它是一个元素(和一个零)的总和。实际上,错误将像这样反向传播:
o[t+1] -> s[t+1] -> s[t] -> s[t-1] -> ... -> s[0]
其他几点说明:
Then, is the loss function term E = sum(E(t)) instead the value of E = E(T)
我在这个例子中没有涉及到损失函数。损失位于上方并将输出与标签进行比较并启动第一个反向消息。在这两种情况下,它是相同的。区别仅在于错误消息是通过所有 o[i]
还是仅通过 o[t+1]
.