【deeplearning.ai】Week 14 RNN LSTM

📅 2026/7/28 14:13:37
【deeplearning.ai】Week 14 RNN  LSTM
RNN LSTM1 摘要从上次以来确定方向听讲座……发生了太多事断断续续才看完了老师说的还是没有错脱离项目是不行的学了忘没什么意义。本文主要就是RNN和LSTM形式很复杂但思想很简单。RNNLSTMGRU2 原理2.1 Intuition我们考虑一件事如何描述、量化一句话中每个词之间的关系我们来看CNN怎么做CNN通过卷积来压缩每个特征从象数点到高级特征。但是句子、序列怎么办RNN实际上一种量化这种序列之间关系的模型从这个角度看CNN可以视为刻画空间上的特征关系RNN则对应地看作刻画时间序列的特征关系。2.2 RNN基本思想上图是RNN的简单基础模型实际上理解RNN的运行过程相当重要。上图有个缺点看起来像一个横向的结构其实并不是它是单个结构的输出和输入的循环展开。中间绿色层的输出会作为下一次的输入。真实的模型大概类似下方。重点在于“过去的词都有了关联” 量化了序列单位之间的关系。3 RNNGRULSTM上述思想就是RNN的基本架构至于每一次垂直的层次可能很复杂但基本上就是不同的cell单元下面是RNN GRU LSTM的最简单形式。3.1 RNN cellRNN cell很简单没什么好说的。需要注意的是从a的形式可以明显看出多次循环之后W会是指数幂的形式于是会形成梯度弥散的严重问题。3.2 LSTMLSTM是为了解决梯度弥散的问题而出现的思想其实也是很简单的但是形式非常复杂。我们先来了解Gate。Gate上图给最简单的RNN cell中加入三个门功能分别是关闭输入关闭输出忘记当前值保留上一层次的C值。这三个门的功能我感觉可以类比残差网络里的捷径——即提供了某种机制跳过一些层次操作。这三个门在直观上提供了这样的可能输入门目标句子和当前词x可能无关忘记门目标句子可能和以前的词有关输出门目标句子和当前以及以前的句子都无关。LSTM上图是LSTM的基本单元看起来很复杂事实上把重点放在红框第二条第三条公式忘记门和更新门输入门输出门提供了开关最终计算出a值。其他三个门里的公式其实形式是固定的开始学习的时候不要对它有压力。GRUGRU是LSTM的简化版本其实可以看成取消了输出门。实践证明这也是同样有用的。3.3 为什么能解决梯度弥散的问题试着回答这个问题。考虑到梯度弥散问题本质上是因为前面的序列中不断乘上W这件事使得梯度会指数级别增加或减少。但是加入门之后提供了这样的可能——一定概率上可以取消或减缓前面的影响。从公式上看。比如图中输入门可能趋近0则c值并不会变得特别小而是会基本和前面的c相等。4 反向传播推导RNN的反向传播的推导看起来非常非常复杂但其实基本是线性函数所以只是写起来麻烦并不难看懂。来看看RNN。反向传播如下需要注意的是我不知道这件事怎么说清楚如果做过实现的就应该知道。下面的公式是每个层次之间梯度的关联。LSTM原理非常类似但会比较难看懂。5 练习一步一步搭建RNN包括LSTM恐龙的名字和莎士比亚的诗爵士乐生成