- 遗忘门:遗忘门是以上一层的输出
和本层要输入的序列数据
作为输入,通过一个激活函数sigmoid,得到输出为
。
的输出取值在[0,1]区间,表示上一层细胞状态被遗忘的概率,1是“完全保留”,0是“完全舍弃”
- 输入门:输入门包含两个部分,第一部分使用sigmoid激活函数,输出为
,第二部分使用tanh激活函数,输出为
。【个人通俗理解:
在RNN网络中就是本层的输出,
是在[0,1]区间取值,表示
中的信息被保留的程度,
表示该层被保留的新信息】
到目前为止,是遗忘门的输出,控制着上一层细胞状态
被遗忘的程度,
为输入门的两个输出乘法运算,表示有多少新信息被保留,基于此,我们就可以把新信息更新这一层的细胞状态
。
- 输出门:输出门用来控制该层的细胞状态有多少被过滤。首先使用sigmoid激活函数得到一个[0,1]区间取值的
,接着将细胞状态
通过tanh激活函数处理后与
相乘,即是本层的输出
。
至此,终于将LSTM的结构理解了,现在有很多LSTM结构的变形,只要把这个母体结构理解了,再去理解变形的结构应该不会再有多麻烦了。
双向LSTM
双向RNN由两个普通的RNN所组成,一个正向的RNN,利用过去的信息,一个逆序的RNN,利用未来的信息,这样在时刻t,既能够使用t-1时刻的信息,又能够利用到t+1时刻的信息。一般来说,由于双向LSTM能够同时利用过去时刻和未来时刻的信息,会比单向LSTM最终的预测更加准确。下图为双向LSTM的结构。
为正向的RNN,参与正向计算,t时刻的输入为t时刻的序列数据
和t-1时刻的输出
为逆向的RNN,参与反向计算,t时刻的输入为t时刻的序列数据
和t+1时刻的输出
- t时刻的最终输出值取决于
和
**GRU(Gated Recurrent Unit)**是LSTM最流行的一个变体,比LSTM模型要简单
GRU包括两个门,一个重置门和更新门
。这两个门的激活函数为sigmoid函数,在[0,1]区间取值。
候选隐含状态使用重置门
来控制t-1时刻信息的输入,如果
结果为0,那么上一个隐含状态的输出信息
将被丢弃。也就是说,重置门决定过去有多少信息被遗忘,有助于捕捉时序数据中短期的依赖关系。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新