2020-10-28 吴恩达DL学习-C5 序列模型-W1 循环序列模型(1.12 深层循环神经网络 )

1.视频网站:mooc慕课https://mooc.study.163.com/university/deeplearning_ai#/c
2.详细笔记网站(中文):http://www.ai-start.com/dl2017/
3.github课件+作业+答案:https://github.com/stormstone/deeplearning.ai

1.12 深层循环神经网络 Deep RNNs

目前你学到的不同RNN的版本,每一个都可以独当一面。但是要学习非常复杂的函数,通常我们会把RNN的多个层堆叠在一起构建更深的模型。这节课里我们会学到如何构建这些更深的RNN。
在这里插入图片描述

如上图,一个标准的NN,首先是输入 x x x,然后堆叠上隐含层,所以应该有激活值,比如说第一层是 a [ 1 ] a^{[1]} a[1]。接着堆叠上下一层,激活值 a [ 2 ] a^{[2]} a[2]。可以再加一层 a [ 3 ] a^{[3]} a[3],然后得到预测值 y ^ \hat y y^

深层的RNN网络跟这个有点像,用手画的这个网络,然后把它按时间展开就是了,我们看看。
在这里插入图片描述

如上图,这是我们一直见到的标准的RNN,只是我把这里的符号稍微改了一下,不再用原来的 a [ 0 ] a^{[0]} a[0]表示0时刻的激活值了,而是加上一个 [ 1 ] [1] [1],用 a [ 1 ] < 0 > a^{[1]<0>} a[1]<0>来表示第一层。所以我们现在用 a [ l ] < t > a^{[l]<t>} a[l]<t>来表示第l层的激活值,这个<t>表示第 t t t个时间点,这样就可以表示第一层第一个时间点的激活值 a [ 1 ] < 1 > a^{[1]<1>} a[1]<1> a [ 1 ] < 2 > a^{[1]<2>} a[1]<2>就是第一层第二个时间点的激活值, a [ 1 ] < 3 > a^{[1]<3>} a[1]<3> a [ 1 ] < 4 > a^{[1]<4>} a[1]<4>
在这里插入图片描述

然后我们把这些堆叠在上面,这就是一个有三个隐层的新的网络。

我们看个具体的例子,看看上图中 a [ 2 ] < 3 > a^{[2]<3>} a[2]<3>这个值是怎么算的。

如上图,激活值 a [ 2 ] < 3 > a^{[2]<3>} a[2]<3>有两个输入,一个是从下面过来的输入,还有一个是从左边过来的输入
a [ 2 ] < 3 > = g ( W a [ 2 ] [ a [ 2 ] < 2 > , a [ 1 ] < 3 > ] + b a [ 2 ] ) a^{[2]<3>}=g(W_a^{[2]}[a^{[2]<2>},a^{[1]<3>}]+b_a^{[2]}) a[2]<3>=g(Wa[2][a[2]<2>,a[1]<3>]+ba[2])
这就是这个激活值的计算方法。
在这里插入图片描述

参数第二层权重值 W a [ 2 ] W_a^{[2]} Wa[2] b a [ 2 ] b_a^{[2]} ba[2]在这一层的计算里都一样,相对应地第一层也有自己的参数 W a [ 1 ] W_a^{[1]} Wa[1] b a [ 1 ] b_a^{[1]} ba[1]
在这里插入图片描述

对于像上图这样标准的NN,你可能见过很深的网络,甚至于100层深,而对于RNN来说,有三层就已经不少了。
在这里插入图片描述

由于时间的维度,RNN网络会变得相当大,即使只有很少的几层,很少会看到这种网络堆叠到100层。但有一种会容易见到,如上图,就是在每一个上面堆叠循环层,把输出 y ^ < 1 > \hat y^{<1>} y^<1>去掉,然后换成一些深的层,这些层并不水平连接,只是一个深层的网络,然后用来预测 y ^ < 1 > \hat y^{<1>} y^<1>。同样 y ^ < 2 > \hat y^{<2>} y^<2>也加上一个深层网络,然后预测 y ^ < 2 > \hat y^{<2>} y^<2>

这种类型的网络结构用的会稍微多一点,这种结构有三个循环单元,在时间上连接,接着一个网络在后面接一个网络,当然 y ^ < 3 > \hat y^{<3>} y^<3> y ^ < 4 > \hat y^{<4>} y^<4>也一样,这是一个深层网络,但没有水平方向上的连接,所以这种类型的结构我们会见得多一点。

在这里插入图片描述

通常上图这些单元没必要非是标准的RNN,最简单的RNN模型,也可以是GRU单元或者LSTM单元,并且,你也可以构建深层的双向RNN网络。
在这里插入图片描述

由于深层的RNN训练需要很多计算资源,需要很长的时间,尽管看起来没有多少循环层,这个也就是在时间上连接了三个深层的循环层,你看不到多少深层的循环层,不像卷积神经网络一样有大量的隐含层。

这就是深层RNN的内容,从基本的RNN网络,基本的循环单元到GRU,LSTM,再到双向RNN,还有深层版的模型。这节课后,你已经可以构建很不错的学习序列的模型了。

猜你喜欢

转载自blog.csdn.net/weixin_42555985/article/details/109325444