RNN详解

RNN(循环神经网络)详解

为什么要引入RNN?

​ 我们可以把一个普通的神经网络当成一个能够你和任意函数的黑盒,只要训练的数据足够多,给定特定的x,我们就可得到希望的y。结构如下

image-20220720111112395

​ 该模型可以用于处理单独的一个一个的输入。但是,当我们处理序列信息时,即前面的输入跟后面的输入是有关系的,普通的神经网络模型就无法实现了。

​ 以nlp中的一个词性标注任务来看:将“ 我爱学习 ”这句话进行词性标注时,学习这个词既可以当名词也可以当动词,单独标注的话很难确定。但是当我们用循环神经网络进行处理时,将 “爱” 处理为动词时,“学习” 这个词在在动词后面,它很大概率被处理为名词。

​ 所以为了解决一些这样类似的问题,能够更好的处理序列的信息,RNN就诞生了。

RNN的结构

​ RNN的结构跟普通的神经网络类似,由输入层、隐藏层、输出层组成。

image-20220722170009324

​ U是输入层到隐藏层的权重矩阵。

​ V是隐藏层到输出层的权重矩阵。

​ 与普通的全连接神经网络不同的是,循环神经网络的隐藏层S得知不仅取决于本次的输入X,还取决于上一次隐藏层的值S,W就是上一次隐藏层的值S作为本次输入的权值矩阵。

​ 将上图按照时间线展开

image-20220722172044616

​ 用公式表示如下

image-20220722172214008

BiRNN和DRNN

BiRNN(双向RNN)

​ 虽然RNN达到了传递信息的目的,但是只是将上一时刻的信息传递到了下一时刻,也就是只考虑到了当前节点前的信息,没有考虑到该节点后的信息。具体到NLP中,也就是一句话,不仅要考虑某个词上文的意思,也还要考虑下文的意思,这个时候普通的RNN就做不到了。于是就有了双向RNN(Bidirectional RNN)。

image-20220722174211634

​ 上面是BiRNN的结构图,蓝框和绿框分别代表一个隐藏层,BiRNN在RNN的基础上增加了一层隐藏层,这层隐藏层中同样会进行信息传递,两个隐藏层值地计算方式也完全相同,只不过这次信息不是从前往后传,而是从后往前传,这样不仅能考虑到前文的信息而且能考虑到后文的信息了。

DRNN

image-20220722174405671

​ 上图是DRNN的结构图,很简单,每一个红框里面都是一个BiRNN,然后一层BiRNN的输出值再作为另一个BiRNN的输入。多个BiRNN堆叠起来就成了DRNN。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值