1.NN & RNN
在神经网络从原理到实现一文中已经比较详细地介绍了神经网络,下面用一张图直观地比较NN与RNN地不同。从图1中可以看出,RNN比NN多了指向自己的环,即图1中的7,8,9,10节点及其连线。图2显示RNN展开的网络结构。
在传统的神经网络中,我们假设所有的输入(包括输出)之间是相互独立的。对于很多任务来说,这是一个非常糟糕的假设。如果你想预测一个序列中的下一个词,你最好能知道哪些词在它前面。RNN之所以循环的,是因为它针对系列中的每一个元素都执行相同的操作,每一个操作都依赖于之前的计算结果。换一种方式思考,可以认为RNN记忆了到当前为止已经计算过的信息。理论上,RNN可以利用任意长的序列信息,但实际中只能回顾之前的几步。
2.demo
Character Language Model,通过预测下一个字符,从而产生整篇文章。代码:min-char-rnn.py
3.前向传播
在图3中
4.后向传播
一共有T个时刻,参数求导如下: