TensorFlow实战——RNN

http://blog.csdn.net/u011239443/article/details/73136866

RNN

循环神经网络(RNN)的特殊的地方在于它保存了自己的状态,每次数据输入都会更新状态,输出预测值,并输出更新后的状态,和批数据一起作为输入:

这里写图片描述

如上图,U为数据输入,V为预测值输出,W为状态值输出并输入下一轮。
由于现实中不能无限的迭代下去,我们将其展开,并在有限次迭代后结束:

这里写图片描述

例子

RNN的状态是通过一个向量来表示的,设该向量的维度为n,输入数据x的维度为m,则参数个数为 (n+m)n+n+nm+m 。我们来举个例子, n=2,m=1

第1轮

设一开始的状态为 w0=(0,0) , x1=(1) , RNN 和将其合并成一个向量 y1=(0,0,1) ,则参数矩阵 A1 为一个 (n+m)n 32 的矩阵。设:

A1=0.10.30.50.20.40.6

设,维度为n偏置向量: b1=(0.1,0.1)

w1=y1A1+b1=(0.537,0.462)

即,输出到下一轮的状态向量为(0.537,0.462),而在这轮该状态还会与参数 nm 参数矩阵 A2 相乘,再加上偏置向量m的偏置向量 b2 。设:

A2=[12]

b2=(0.1)

o1=w1A2+b2=(1.56)

第2轮

x2=2 y2 w1 x2 合并,即 (0.54,0.46,2)

w2=y2A1+b1=(0.860,0.884)

o2=w2A2+b2=(2.73)

RNN扩展

双向RNN

顾名思义,双向的状态传播:

这里写图片描述

深度RNN

这里写图片描述

要注意的是,RNN的dropout不会在深度方向上使用,只会在状态输出到下一轮的时候使用。

这里写图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小爷毛毛(卓寿杰)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值