LSTM是对RNN的改进,主要改进RNN的梯度消失的问题即长依赖问题,那么具体如何解决的呢?

由上图可以发现增加了三个门,那么这三个门是如何解决长依赖问题的呢?LSTM最大的设计就是传输带C,就是通过传输带的设计避免梯度的消失,lstm存在很多门,可以让信息选择性通过

  1. 遗忘门

举个例子

得到遗忘门的输出f后,在和传输带的c向量相乘

那么遗忘门的功能主要体现在哪里呢?通过例子可以看出,遗忘门的输出f是0-1的概率值,乘上传输带c就可以控制传输带信息的流入量,该f值的获取荣光如下:

由此可以发现,遗忘门的输入是输入x_t和上一个状态的输出h_t-1的concat组成的向量,然后和矩阵W_f相乘,在通过sigmoid激活函数得到输出f_t,其中矩阵W是通过数据训练学习而来

  1. 输入门

计算i_t的方式和遗忘门输出的计算差不多,都是把上一状态的输出h_t-1和输入x_t做concat connection,然后和矩阵W_i相乘,在通过激活函数sigmoid激活函数获取到输出i_t,此时输出的范围为0-1的概率值

更新传输带的值C_t

除了需要计算输入的的输出,还要计算待更新的传输带的值C^_T,该值的计算和计算i_t的类似,只是不同是激活函数为tanh,最后待更新的传输带的值从C^_T的值的范围是-1到1,该值在和i_t相乘,在于遗忘门输出相加得到传输带的C_t值,如下:

  1. 输出门

输出门的计算方式和以上差不多,激活函数是sigmoid,计算过程和遗忘门、输入门类似

更新状态h_t的值。

  1. 总结

GitHub 加速计划 / vi / vision
15.85 K
6.89 K
下载
pytorch/vision: 一个基于 PyTorch 的计算机视觉库,提供了各种计算机视觉算法和工具,适合用于实现计算机视觉应用程序。
最近提交(Master分支:2 个月前 )
868a3b42 5 天前
e9a32135 14 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐