1

我是一个全新的机器学习,我理解反向传播和递归神经网络的概念,但我似乎无法通过时间来掌握反向传播。在维基百科的伪码,通过时间反向传播,初学者的简单解释

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是在简单的条件给初学者一个简单的参考?

回答

1

你展开了n时间步RNN f到纯DNN,其中n是你的训练特征标签序列的长度,和DNN包含fn实例。然后,您可以使用步长特征标签序列以标准BP训练此DNN。在DNN中,f的每个实例都包含权重W的副本。每个将更新到不同的新W_1W_n。然后,W_1W_n的平均值是经过n步长序列训练后的原始RNN f的新权重。培训RNN f的整个过程是BPTT。