循环神经网络 - RNN篇

RNN的作用

更好的处理序列信息,模型具有记忆功能

RNN结构图

各种参数的意义

X是某个时刻的输入值对应的向量(多个时刻的X组成一个序列,如:我是学生就是一个序列,t1时刻的x为我对应的n维向量);S是隐藏层的值,m维的向量;O是输出层的值,t维向量。

U,V是参数矩阵,维度由X_tS_tO_t决定,X_tS_tO_t的维度则是人工设置的(X_t维度等于词向量的维度;S_t是隐藏层的维度,即神经元的个数;O_t是输出层的维度)。

W是隐藏层的权重矩阵。t-1 时刻隐藏层的值,作为 t 时刻隐藏层S的权重。

因此,对于RNN来说,输入序列与输出序列的个数是相同的。另外,同一个隐藏层的W,V,U参数矩阵在训练过程中是共享的,同时也是不断变化的。

前向传播

S_t=f((U\cdot X_t + b) + (W\cdot S_{t-1} + b))   (式1)   

O_t = g(V\cdot S_t + b)     (式2)                         

f 为激活函数,RNN中通常使用tanh作为隐藏层的激活函数。 g为输出层的激活函数,输出层是一个全连接层。

假设X_t是一个m维(mx1)向量,S_t是一个n维的列向量,则U是(nxm)的矩阵,W是(nxn)的矩阵;W,U,V的个数等于RNN隐藏层的层数。

记忆能力

前向传播的式2根据式1展开(为了便于观察,展开的过程忽略了偏置):

\begin{aligned} O_t &= g (V S_t) \\ &=gVf(U X_t + W S_{t-1}) \\ &= gVf(U X_t + W f(U X + W S_{t-2})) \\ &=gVf(U X_t + W f(U X + Wf(U X + W S_{t-3}))) \\ \end{aligned}      (式3)

可以看出,RNN的输出值,受前面历次输入X_t 的影响,故而,RNN具有记忆能力。

记忆能力的重要性

  • 对于文本、语音、视频等序列数据,前后相关,需要具备记忆能力的模型来建模
  • 比如当我们在理解一句话的意思的时候,孤立的理解词的意思是不够的。同理,在处理视频时,也不能只分析孤立的一帧,而是分析这些贞连起来的整个序列。

RNN的问题

RNN中存在梯度爆炸和梯度消失的问题。通过前向传播分析其产生的原因:

未完待续...

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值