通过时间反向传播,初学者的简单解释

时间:2016-08-01 16:56:05

标签: machine-learning neural-network artificial-intelligence deep-learning

我是一个全新的机器学习,我理解反向传播和反复神经网络的概念,但我似乎无法掌握反向传播的时间。在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是什么,为初学者提供一个简单的参考资料?

1 个答案:

答案 0 :(得分:1)

您将f时间步的RNN n展开为普通DNN,其中n是您的训练要素标签序列的长度,DNN包含{{1} } n的实例。然后,您可以使用f - 步骤特征标签序列来训练此DNN与标准BP。在DNN中,n的每个实例都包含权重f的副本。每个都会更新为不同的新WW_1。然后,W_nW_1的平均值是经过W_n - 步骤序列训练后的原始RNN f的新权重。训练RNN n的整个过程是BPTT。