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)的
感谢您的帮助
答案 0 :(得分:0)
我们正在创建神经网络的k个实例
有点儿。在递归神经网络中,某些输入x i 的网络输出取决于它之前的每个x i-j 。因此,当您使用长度为k的输入呼叫网络时,网络可以有效地展开"展开"进入k网络,每个网络依次相互馈送。
展开后,递归神经网络看起来很像隐藏层的传统神经网络。我们可以使用反向传播算法来分配错误并更新我们的权重。
什么是x = f(x)?
'背景'或x
就像记忆'神经网络它类似于时变输出,取决于您所处的循环网络的迭代次数。它在开始时被初始化为全零,因为没有内存。我们用x = f(x)
计算它,因为前一层的输出构成下一层输入的一部分(另一部分是[t i ])