通过时间反向传播,理解

时间:2016-08-29 20:22:57

标签: artificial-intelligence recurrent-neural-network

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

嗨,

我不理解上面算法的概念,我们是创建神经网络f(k个副本)的k个实例,然后传递[t]作为输入,x作为输入传递,x = f是什么(x)的

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

  

我们正在创建神经网络的k个实例

有点儿。在递归神经网络中,某些输入x i 的网络输出取决于它之前的每个x i-j 。因此,当您使用长度为k的输入呼叫网络时,网络可以有效地展开"展开"进入k网络,每个网络依次相互馈送。

展开后,递归神经网络看起来很像隐藏层的传统神经网络。我们可以使用反向传播算法来分配错误并更新我们的权重。

  

什么是x = f(x)?

'背景'或x就像记忆'神经网络它类似于时变输出,取决于您所处的循环网络的迭代次数。它在开始时被初始化为全零,因为没有内存。我们用x = f(x)计算它,因为前一层的输出构成下一层输入的一部分(另一部分是[t i ])