我是一个全新的机器学习,我理解反向传播和反复神经网络的概念,但我似乎无法掌握反向传播的时间。在Wikipedia伪代码中,
Back_Propagation_Through_Time(a, y) // a[t] is the input at time t. y[t] is the output
Unfold the network to contain k instances of f
do until stopping criteria is met:
x = the zero-magnitude vector;// x is the current context
for t from 0 to n - 1 // t is time. n is the length of the training sequence
Set the network inputs to x, a[t], a[t+1], ..., a[t+k-1]
p = forward-propagate the inputs over the whole unfolded network
e = y[t+k] - p; // error = target - prediction
Back-propagate the error, e, back across the whole unfolded network
Update all the weights in the network
Average the weights in each instance of f together, so that each f is identical
x = f(x); // compute the context for the next time-step
据我所知,我们在当前步骤中有所需的输出,我们转发前面的步骤,计算前一步输出和当前输出之间的误差。
我们如何更新权重?
Average the weights in each instance of f together, so that each f is identical
这是什么意思?
任何人都可以简单地描述一下BPTT是什么,为初学者提供一个简单的参考资料?
答案 0 :(得分:1)
您将f
时间步的RNN n
展开为普通DNN,其中n
是您的训练要素标签序列的长度,DNN包含{{1} } n
的实例。然后,您可以使用f
- 步骤特征标签序列来训练此DNN与标准BP。在DNN中,n
的每个实例都包含权重f
的副本。每个都会更新为不同的新W
到W_1
。然后,W_n
到W_1
的平均值是经过W_n
- 步骤序列训练后的原始RNN f
的新权重。训练RNN n
的整个过程是BPTT。