吴恩达Deeplearning.ai 第五课 Sequence Model 第一周------Recurrent Neural Network Model

这一节内容比较多,主要讲述了如何搭建一个RNN标准单元

吴恩达Deeplearning.ai 第五课 Sequence Model 第一周------Recurrent Neural Network Model_第1张图片

使用标准神经网络的不足:
1.不同样本的输入输出长度不等(虽然都可以padding成最大长度的样本)
2.(更主要的原因)text不同的位置之间不共享学习到的参数

吴恩达Deeplearning.ai 第五课 Sequence Model 第一周------Recurrent Neural Network Model_第2张图片

RNN模型,可以用左边也可以用右边的来表示,右边用一个弯箭头表示循环。

首先,输入对x<1>来说,经过一个RNN cell(每个cell中有多个unit,后面会讲到),得到输出y<1>和激励a<1>,对于x<2>来说,经过神经网络计算得到y<2>和激励a<2>,但在这里y<2>和a<2>的得到都有a<1>的影响。同理,y<3>和a<3>的产生都有x<1>, x<2>(a<2>)的影响

我们将由x计算得到a的参数称为Wax, 由a计算得到a的参数称为Waa,由a计算得到y的参数称为Wya。

吴恩达Deeplearning.ai 第五课 Sequence Model 第一周------Recurrent Neural Network Model_第3张图片

这样的模型有个缺点,即y的结果只与在t之前时刻计算过的feature有关。

如图,对下面那句话,Teddy在上面是人名,下面非人名,而两者feature完全相同,因此可能会出现误判。

一个比较有效的方法是,从y<3>不仅仅要和x<1>, x<2>有关,即3这个时刻之前的输入,还和x等后面时刻的输入有关。这样的RNN 称为bidirectional RNN(BRNN)

正向传播过程

吴恩达Deeplearning.ai 第五课 Sequence Model 第一周------Recurrent Neural Network Model_第4张图片

前向传播步骤:

首先a<0>为零向量,a<1>,y<1>的计算方法如图。这里计算a和计算y的激励函数不同,计算a一般用tanh函数,也可以用ReLU函数。这里由于y为2分类,因此一般用Sigmoid函数。

a和y的计算方法也见上图

简化表示:

吴恩达Deeplearning.ai 第五课 Sequence Model 第一周------Recurrent Neural Network Model_第5张图片

公式的简化表示,由左边到右边,Wa = [Waa|Wax]为这两个矩阵左右堆叠起来(这两个矩阵行数相同因此可以左右堆叠),[a(t-1), x(t)]为这两个向量(注意这里是向量)上下堆叠起来,组成的一个大向量。每个向量和矩阵的维度见左边。这里矩阵的计算可以参见分块矩阵。

其实计算不变,只是改变了一下表达方式。参数的表示见右半部分,将两个W参数合并成Wa表示

你可能感兴趣的:(吴恩达课程笔记)