Recurrent Neural Network(RNN)|李宏毅

有记忆的神经网络就是循环神经网络(Recurrent Neural Network)。


一、循环神经网络(RNN)的引出

1.1 槽填充(Slot Filling)

  • 如下图,一个关键元素就是一个槽位(Slot),从用户交互中抽取出的这个槽位对应的取值,就是填充(Filling)
  • 下面的槽位(Slot)有两个,分别是目的地(destination)和到达时间(arrival time)
    槽位填充

1.2 词的表示方法

1.2.1 1-of-N Encoding(独热编码)

在知道总共有几个词的情况下使用。

  • vector中元素数量就等于所有word的数量,对1个单词来说只需要vector中对应元素为1,其余元素都是0即可
  • 但这种vector一点都不信息丰富(informative),任意两个vector都是不一样的,无法建立起同类word之间的联系(比如cat和dog都是动物)。

独热编码

1.2.2 Beyond 1-of-N Encoding

  • 为独热编码增加“other”维度
  • Word Hashing:词向量的每一个维度表示一个序列,如果词中出现该序列则标记1
    在这里插入图片描述

1.3 使用前馈神经网络解决槽位填充问题

按照解决多分类问题的思路使用前馈神经网络来解决槽位填充问题,但是使用前馈神经网络有一定的局限性。

  • 输入:词向量
  • 输出:该词属于某一槽位的概率
    在这里插入图片描述

1.4 使用前馈神经网络存在的问题

在这里插入图片描述

如图,Taipei一词属于哪个槽位还与其上下文有关,因此解决该问题的神经网络需要具有记忆,由此引入了具有记忆的神经网络——循环神经网络(RNN)。

二、RNN工作原理

2.1 RNN直观的架构

循环神经网络相当于在全连接网络的隐藏层加入多个"memory"节点(需要赋初值),隐藏层的输出值被保存在memory中,由此完成了“记忆”的过程。

  • 隐藏层的输入除了输入层的输入以外还包括memory中保存的数据;
  • 隐藏层的输出除了要传播到输出层以外还会用于更新memory中的值。

其简单架构如下:
在这里插入图片描述

2.2 RNN详细的架构

在这里插入图片描述
循环网络在每一时间 t t t有相同的网络结构,假设输入 x x x n n n维向量,隐含层的神经元个数为 m m m,输出层的神经元个数为 r r r,则 U U U的大小为 n × m n \times m n×m维; W W W是上一次 a t − 1 a_{t-1} at1的作为这一次输入的权重矩阵,大小为 m × m m \times m m×m维; V V V是连输出层的权重矩阵,大小为 m × r m \times r m×r维。而 x t x_t xt a t a_t at o t o_t ot都是向量,它们各自表示的含义如下:

  1. x t x_t xt是时刻 t t t的输入;
  2. a t a_t at是时刻 t t t的隐层状态。它是网络的记忆。 a t a_t at基于前一时刻的隐层状态和当前时刻的输入进行计算,即
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值