29.RNN-循环神经网络
为什么需要RNN?
DNN、CNN只是单纯进行了训练,对于上下文信息没有提取能力。
而对于一些场景,我们孤立的学习某个词是不够的。如NLP中:一句话中词序列的顺序是重要的信息,此时就需要RNN来学习这种空间位置信息。
假设情人节,你的女朋友说想要苹果。那么你最好买的是苹果手机,而不是一筐苹果。
具体实现
每个时刻都有两个输入、两个输出。
以 xt 为例,每一层的运算有:
上一层输入St-1及权重矩阵W
当前输入xt及权重矩阵U
St及对应权重矩阵V得到输出Ot
对于Xt-1、Xt、Xt+1
可以对应理解为:我、吃、苹果
对于U、V、W
是不同时刻共享的矩阵
对于权重矩阵W
指的是:上一层隐藏层,到下一层隐藏层的权重矩阵,事实上是全连接。特殊的,每一层的节点数相同(上一层节点数,等于下一层节点数)。
对于St
事实上是:ht-1乘W,加上Xt乘U。然后输入tanh,得到St(ht)。
对于Xt
一般要通过词嵌入层