李宏毅深度学习笔记(十二)RNN(循环神经网络)

1.一个简单的循环神经网络

在这里插入图片描述如上图所示,先将输入序列(Input sequence)的第一个节点 [ 1 1 ] \begin{bmatrix} 1 \\ 1 \end{bmatrix} 输入上图所示简易版的记忆网络中,即图中橘色的方框里面。蓝色的方框是记忆单元,里面储存着上一个时间点所计算出来信息,因为此次是第一个时间点所以先给蓝色方框赋初值 [ 0 0 ] \begin{bmatrix} 0 \\ 0 \end{bmatrix} 。又因为假定所有激活函数(activation function)的权重weight都是1,所有的偏置值(bias)都是0,所以经过绿色圆圈的计算得到 [ 2 2 ] \begin{bmatrix} 2 \\ 2 \end{bmatrix} ,即1+1+0+0=2,然后要将计算出来的数值储存到蓝色方框里面去,最后经过浅红色圆圈的计算得 [ 4 4 ] \begin{bmatrix} 4 \\ 4 \end{bmatrix} ,到此第一个时间节点就计算完毕了。
接下来重复上面的工作:
在这里插入图片描述
在这里插入图片描述
这样就得到了输出序列(output sequence)。这里要注意输入序列的顺序不能随意调整,因为随意调整的话输出序列就会不同

2.RNN的应用举例(Elman Network)

在这里插入图片描述如上图要从一句话“arrive Taipe on November 2nd”中提取出地点和时间,就可以把这句话放入RNN里面,进行处理,因为RNN经过大量的训练中会从训练数据中总结出“arrive”这个单词后面接一个地点的概率比较大,所以大概率会得出这句话中的地点是“Taipei”,同样的,会根据前三个单词“arrive Taipe on “和"November 2nd”得出一个概率指出"November 2nd”是世间的概率比较大。
上图中绿色方框是隐藏层,可以多几个隐藏层。

3.其他形式的RNN

Jordan Network
如下图所示Jordan Network与Elman Network的区别在于输入隐藏层的数据不同
在这里插入图片描述

双向RNN
在这里插入图片描述

参考1.
参考2.
参考3:Pytorch的RNN.

发布了41 篇原创文章 · 获赞 13 · 访问量 6692

猜你喜欢

转载自blog.csdn.net/comli_cn/article/details/104270015