pytorch-LSTM

目录

  • [1. RNN存在的问题](#1. RNN存在的问题)
  • [2. LSTM的由来](#2. LSTM的由来)
  • [3. LSTM门](#3. LSTM门)
    • [3.1 遗忘门](#3.1 遗忘门)
    • [3.2 输入门](#3.2 输入门)
    • [3.3 输出门](#3.3 输出门)
  • [4. LSTM是如何减轻梯度弥散问题](#4. LSTM是如何减轻梯度弥散问题)

1. RNN存在的问题

如下图:RNN能满足预测下一个单词,但是对于获取更多的上下文信息就做不到了。

2. LSTM的由来

RNN能做到短时记忆即short time memory,而LSTM相对RNN能够处理更长的时间序列,因此被称为LSTM即long short time memory

RNN有一串重复的模块,这些模块使用统一的权重Whh和Wih

LSTM也有一连串的类似结构,但是重复模块是不同的结构,它用四个单层的神经网络替代,并以指定的方式相互作用。它有三个门,分别是遗忘门、输入门和输出门。

3. LSTM门

门是一种信息过滤方式,他们由sigmod函数和点乘操作组成,sigmod范围是0~1,因此通过sigmod函数可以控制输出。

3.1 遗忘门

遗忘门f~t~是h~t-1~和x~t~经过一系列运算,再经过sigmod函数得到的

3.2 输入门

输入门由两部分组成,一个是i~t~输入门层,它是通过h~t-1~和x~t~经过一系列运算,再经过sigmod函数得到的。

另一个是新的输入C~t~^'^,这里没有直接使用x~t~作为输入,而是通过h~t-1~和x~t~经过一系列运算,再经过tanh函数得到新的输入C~t~^'^。

最后输出C~t~ = f~t~*C~t-1~ + i~t~*C~t~^'^

3.3 输出门

输出门o~t~也是通过h~t-1~和x~t~经过一系列运算,再经过sigmod函数得到的。

最后的输出h~t~ = o~t~*tanh(C~t~)
注意:LSTM中h~t~已经不是memory了,而是输出,C~t~才是memory

可以看出每个门的运算都与h~t-1~和x~t~相关,并且通过sigmod函数来控制门的开度,最后的输出h~t~使用了tanh

输入们和遗忘门门的组合,会得到不同的值,如下图:

4. LSTM是如何减轻梯度弥散问题

从梯度计算公式可以知道,RNN的梯度中有W~hh~的累乘,当W~hh~<1时,就可能出现梯度弥散,而LSTM梯度由几项累加得到,即使W很小也很难出现梯度弥散。

相关推荐
机器学习之心18 分钟前
一区北方苍鹰算法优化+创新改进Transformer!NGO-Transformer-LSTM多变量回归预测
算法·lstm·transformer·北方苍鹰算法优化·多变量回归预测·ngo-transformer
只怕自己不够好2 小时前
RNN与LSTM,通过Tensorflow在手写体识别上实战
rnn·tensorflow·lstm
zhangfeng11332 小时前
pytorch 的交叉熵函数,多分类,二分类
人工智能·pytorch·分类
Seeklike2 小时前
11.22 深度学习-pytorch自动微分
人工智能·pytorch·深度学习
YRr YRr3 小时前
如何使用 PyTorch 实现图像分类数据集的加载和处理
pytorch·深度学习·分类
z千鑫18 小时前
【人工智能】PyTorch、TensorFlow 和 Keras 全面解析与对比:深度学习框架的终极指南
人工智能·pytorch·深度学习·aigc·tensorflow·keras·codemoss
学不会lostfound19 小时前
三、计算机视觉_05MTCNN人脸检测
pytorch·深度学习·计算机视觉·mtcnn·p-net·r-net·o-net
Mr.谢尔比20 小时前
李宏毅机器学习课程知识点摘要(1-5集)
人工智能·pytorch·深度学习·神经网络·算法·机器学习·计算机视觉
做程序员的第一天21 小时前
在PyTorch中,钩子(hook)是什么?在神经网络中扮演什么角色?
pytorch·python·深度学习
Nerinic21 小时前
PyTorch基础2
pytorch·python