RNN与反向传播算法(BPTT)的理解

RNN是序列建模的强大工具。
今天主要搬运两天来看到的关于RNN的很好的文章:

PS: 第一个链接中的Toy Code做一些说明

RNN与反向传播算法(BPTT)的理解

之所以要循环8(binary_dim=8)次,是因为输入是2维的(a和b各输入一个bit),那么,每个bit只会影响8个时间戳。因此要注意RNN的训练,应该以每一个完整的序列(这里就是a和b两个八位二进制数)作为一个training sample,而非以每一次输入(2 bits)作为一个sample;同样的在反向传播时,也同样遵循这个原则,此处因为每次输入会影响8个时间戳(或者说每8次输入为一个完整的training sample),所以要循环8次。

再然后,第99行(五角星处)的隐层delta更新法则与上面给出的RNN反向传播算法BPTT一文中的下图正好一致!

RNN与反向传播算法(BPTT)的理解

先写这么多。

RNN是序列建模的强大工具。
今天主要搬运两天来看到的关于RNN的很好的文章: