码迷,mamicode.com
首页 > 其他好文 > 详细

Deep Learning Book 第十章--序列模型:循环和递归网络

时间:2016-05-06 15:26:07      阅读:512      评论:0      收藏:0      [点我收藏+]

标签:

10.1 计算图展开
a. 最简单形式:s(t)=f(s(t?1);θ)s(t)表示系统状态。

技术分享
图10.1

b. 系统状态为隐层单元:h(t)=f(h(t?1),x(t);θ),对应展开图:
技术分享
图10.2

10.2 RNN
RNN设计模式范例:

  • 循环网络每步产生一个输出,同时隐层节点之间有循环关联,图10.3。
  • 循环网络每步产生一个输出,同时输出与下一步的隐层节点之间有循环关联,图10.4。
  • 循环网络输入整个序列,产生单个输出,同时隐层节点之间有循环关联,图10.5。

a. 下面的网络是在计算RNN的训练代价,x表示输入序列,o是输出,y是目标值,L是代价函数,UVW是对应权值矩阵。

技术分享
图10.3

前向传播:
a(t)=b+Wh(t?1)+Ux(t)
h(t)=tanh(a(t))
o(t)=c+Vh(t)
y^(t)=softmax(o(t))

输入序列和输出序列的长度相同。总代价为:
技术分享

时间复杂度o(τ),反向传播求梯度时需要用到前向传播的计算结果,所以空间复杂度也是o(τ)。反向传播算法:BPTT(back-propagation through time)。

b. 另一种网络形式,输出和隐层节点之间存在循环关联,由于输出包含的历史信息较少,所以这种网络不够有效:

技术分享
图10.4

c. 单一输出网络:

技术分享
图10.5

10.2.2 RNN 梯度计算(BPTT)
首先看RNN网络中有哪些参数和节点,需要对所有节点求导数?NL
参数:U,V,W,b,c;
节点:x(t),h(t),o(t),L(t);

技术分享
技术分享技术分享技术分享!

技术分享

a. 下面是一个有固定输入的RNN网络,例子是根据图像生成描述。

技术分享图10.9

b. 下面是条件RNN,区别于图10.3只能对条件分布建模,这里可以是任意分布。

技术分享图10.10

c. 典型的双向RNN。

技术分享图10.11

10.3 双向RNNs
如图10.11,分前向和后向RNN,扩展到二维图像上就需要四个RNNs,每个RNN代表一个方向,那么每个像素点对应的输出就包含该像素点周围的信息。

10.4 网络结构:编码-解码,序列-序列
输入序列与输出序列长度不一定相等,应用有:语音识别,机器翻译,机器问答。通常把RNN的输入称为“context”,记为C,它可以是矢量或者矢量序列X=(x(1),x(2),...,x(n)).

技术分享图10.12

输入x,输出y,训练最大化logP(y(1),y(2),...,y(ny)|x(1),x(2),...,x(nx))

10.5 深度循环网络

Deep Learning Book 第十章--序列模型:循环和递归网络

标签:

原文地址:http://blog.csdn.net/lt2fish/article/details/51324212

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!