深层循环神经网络(Deep RNNs)

来源:Coursera吴恩达深度学习课程

目前我们学习了不同RNN的版本,每一个都可以独当一面(already work quite well by themselves)。但是要学习非常复杂的函数,通常我们会把RNN的多个层堆叠在一起构建更深的模型,来构建一些更深的RNN。我们开始吧。

如上图左侧,一个标准的神经网络,首先是输入x,然后堆叠上隐含层,所以这里应该有激活值,比如说第一层是a^[1],接着堆叠上下一层,激活值a^[2],可以再加一层a^[3],然后得到预测值y帽。深层的RNN网络如上图右侧,还是画这样的网络,然后按时间展开。注意这里的符号,a^[1](0)表示第1层0时刻的激活值,更一般的用a^[l](t)表示第l层第t个时间点的激活值。上图是一个有三个隐层的新的网络。

(备注:还是这个问题,不知道为什么右上角的符号就是显示不出来,这篇文章都会()代替,有时间会解决这个bug,望谅解。)

看一个具体例子,如上图紫色标记,看这个激活值a^[2](3)是怎么计算的,一共有两个输入:一个是下面过来的输入a^[1](3),一个是左边过来的输入a^[2](2),于是计算公式为:

上述参数(W_a)^[2]和(b_a)^[2]在这一层的计算里都一样。相应的第一层也有自己的参数(绿色标记)。

对于左侧这样标准的神经网络,有很深的网络,甚至于100层深,而对于RNN来说,有三层就已经不少了。由于时间的维度,RNN网络会变得相当大,即使只有很少的几层,很少会看到这种网络堆叠到100层。

但有一种会容易见到,如下图:

在每一个上面堆叠循环层(recurrent layers),把上述第3层的输出y^(1)去掉,换成一些深的层,这些层并不水平连接,只是一个深层的网络,然后用来预测y^(1)。其他几个类似。这种类型的网络结构用的会稍微多一点,这种结构有三个循环单元,在时间上连接,接着一个网络在后面接一个网络。通常这些单元(上图方框)没必要非是标准的RNN,也可以是GRU单元或者LSTM单元,或者构建深层的双向RNN网络。由于深层的RNN训练需要很多计算资源,需要很长的时间,尽管看起来没有多少循环层,这个也就是在时间上连接了三个深层的循环层(蓝色圆圈),你看不到多少深层的循环层,不像卷积神经网络一样有大量的隐含层。

这就是深层RNN的内容,从基本的RNN网络,基本的循环单元到GRU,LSTM,再到双向RNN,还有深层版的模型。现在工具箱中已经有了很多工具(have a rich toolbox)

说明:记录学习笔记,如果错误欢迎指正!转载请联系我。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值