【问题标题】:What is the error term in backpropagation through time if I only have one output?如果我只有一个输出,那么反向传播中的误差项是什么?
【发布时间】:2018-10-23 19:35:41
【问题描述】:
【问题讨论】:
标签:
machine-learning
neural-network
recurrent-neural-network
backpropagation
gradient-descent
【解决方案1】:
我会尽量消除一些混乱。这是标准展开的 RNN:
假设o[t+1] 是最后一步。
当网络实际使用所有输出时,错误将通过所有垂直边缘反向传播:从o[t+1] 到s[t+1],从o[t] 到s[t],...,到@987654328 @来自o[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]
其他几点说明:
那么,是损失函数项 E = sum(E(t)) 而不是 E = E(T) 的值
在这个例子中我没有接触到损失函数。损失位于上方,将输出与标签进行比较,并启动第一个后向消息。在这两种情况下,它都是一样的。区别仅在于错误消息是流经所有o[i] 还是仅流经o[t+1]。