【机器学习】LSTM模型原理

article/2025/10/2 13:01:53

文章目录

      • 1. 序言
      • 2. RNN的基本概念与网络结构
        • 2.1 概念
        • 2.2 结构
        • 2.3 要素
      • 3. LSTM的基本概念与网络结构
        • 3.1 概念
        • 3.2 结构
        • 3.3 要素
      • 4. LSTM网络结构的说明
      • 5. 补充

1. 序言

  • 临渊羡鱼不如归而结网

  • 学习的目的是为了应用

2. RNN的基本概念与网络结构

LSTM是在RNN的基础上演进而来的,因此有必要简单了解RNN

2.1 概念

RNN = Recurrent Neural Network,循环神经网络

RNN是专门处理序列数据的网络,是对序列数据最自然的神经网络架构,在语音识别、语言翻译和图片描述等方面获得应用。

2.2 结构

  • 链式结构 + 重复单元

在这里插入图片描述
神经网络A处理输入x_t,输出h_t

在这里插入图片描述
左侧是折叠,右侧是展开

2.3 要素

xt -> t时刻输入层的值,一个向量或矩阵
st -> 表示隐藏层的值,一个向量或矩阵
ot -> 表示输出层的值
U -> 输入层到隐藏层的权重矩阵
V -> 隐藏层到输出层的权重矩阵
W -> 参数权重矩阵

t时刻的隐藏层st不仅取决于当前时刻的输入xt,还取决于上一时刻隐藏层的值st-1

标准RNN的特点
(1) 权值共享。W是相同的,U和V也一样
(2) 每一个输入只会和它本身的那条路线建立权连接,不会和别的神经元连接

RNN的训练方法:BPTT(Back Propagation Through Time),BPTT的本质是BP算法,BP算法的本质是梯度下降法,而算法的核心是求各个参数的梯度

RNN存在的问题:梯度消失和梯度爆炸。由于梯度消失只有短时记忆,无法解决长期依赖问题。可以通过选取更好的激活函数或改变网络结构(比如LSTM)来改善梯度消失的问题。

LSTM通过精妙的门控制将加法运算带入网络中,一定程度上解决了梯度消失的问题。

3. LSTM的基本概念与网络结构

3.1 概念

LSTM = Long Short Term Memory network,长短期记忆神经网络

记住长期信息是LSTM的默认行为,很好解决了长期依赖问题

3.2 结构

  • RNN的网络结构:重复单元只有一个简单的tanh层(双曲正切)
    在这里插入图片描述
  • LSTM的网络结构:重复单元包含了4个交互的层
    在这里插入图片描述

3.3 要素

(1)细胞状态:重复单元顶端传送的向量。细胞状态只需要进行一些初级的线性变换,因此保持不变很容易。

(2)门:门是一个可以让信息选择性通过的结构,LSTM通过精心设计的各种门来去除或新增信息到细胞状态。

LSTM有三个门来保护和控制细胞状态:遗忘门 + 输入门 + 输出门

  • 遗忘门
    在这里插入图片描述

确定从细胞状态中丢弃什么信息。

由sigmoid函数组成的层来完成,sigmoid函数描述每个部分有多少量可以通过。

  • 输入门
    在这里插入图片描述

确定什么样的新信息要输入细胞状态中。

第一部分是sigmoid层,确定要更新哪个值;

第二部分是tanh层,产生新的待用值。

在这里插入图片描述
旧细胞状态通过遗忘门,待用值通过输入门,两者结合的结果更新细胞状态。

  • 输出门
    在这里插入图片描述

确定输出什么值。

sigmoid函数决定要输出的部分,与tanh将细胞状态变换后相乘,输出需要的信息

这三个门都使用sigmoid函数作为选择工具tanh函数作为变换工具,这两个函数结合起来实现三个门的功能。

一开始的LSTM只有输入和输出门,现在LSTM增加了遗忘门。

4. LSTM网络结构的说明

  • LSTM为什么能保留历史信息

    历史和当前状态简单相加,自然保留。
    
  • 为什么h_t输出两次

    LSTM不仅有横向链接,还有纵向链接。纵向预测:根据变量历史预测变量。
    横向链接:根据一些变量特征预测变量。
    
  • 为什么采用sigmoid函数和tanh函数作为激活函数

    两个激活函数都是饱和的,饱和的意思就是输入达到一定值后输出就不会发生明显变化;sigmoid输出0~1,符合门控的物理定义。在输入较大或较小时,输出接近01,从而保证门开或关。tanh函数双曲正切函数,输出在-1~1之间,这与大多数场景下特征分布是0中心吻合。tanh函数在输入为0附近相比sigmoid有更大的梯度,通常使模型收敛更快。
    

    sigmoid/tanh/relu函数图像

  • LSTM是通过数据去学习内在规律,如果有用信息不蕴含在数据中,LSTM无论如何都是学不到的。

5. 补充

  • LSTM的变体

    peephole connection/coupled忘记和输入门/GRU = gated recurrent unit

    其中GRU可能是最成功的一种,正在变得越来越流行

  • LSTM的应用

    自动图片标题生成
    文本自动翻译
    自动手写体生成
    音乐的生成
    字母的生成
    天气/股票/趋势预测

接下来通过具体实例熟悉LSTM的应用,请移步到:To Do


参考文章:
RNN和LSTM原理
LSTM入门
LSTM网络结构
LSTM总结

created by shuaixio, 2021.12.06


http://chatgpt.dhexx.cn/article/Lv6fTvFA.shtml

相关文章

LSTM模型

LSTM比RNN复杂很多,RNN只有一个参数矩阵A,LSTM有4个(遗忘门,输入门,更新值,输出门) LSTM有一个非常重要的传输带Ct,过去的信息通过这个传输带送给下一时刻,不会发生太大变…

时间序列预测——LSTM模型(附代码实现)

目录 模型原理 模型实现 导入所需要的库 设置随机数种子 导入数据集 打印前五行数据进行查看 数据处理 归一化处理 查看归一化处理后的数据 将时间序列转换为监督学习问题 打印数据前五行 划分训练集和测试集 查看划分后的数据维度 搭建LSTM模型 得到损失图 模型…

phpstorm汉化操作

问题描述:如何进行phpstorm的汉化(原始为英文) 解决办法: 1.下载汉化包—resources_cn; 2.将汉化包添加到phpstorm文件夹下的lib文件夹内(其中的resources_en可以不删除); 3.重启Ph…

php 教程 phpstorm

目录 php开发流程 php 编辑工具 phpstudy phpstorm如何配置php环境 php 语言 什么是URI URL和URI差别: 一、HTTP和HTTPS的基本概念 经典类型和自定义 实现本机域映射​ php开发流程 1、下载php语言包 php作为一门语言,本身可以是一个纯绿色版的…

【PHP】Phpstorm环境配置与应用

一. Phpstorm环境配置 (1)点击左上端File,选择下拉框中的setting,进入环境配置页面,如下图 (2)如下图点击1处,选中下拉框中的Deployment,Type(图示2处),下拉框中选择Local or mounted folder …

PHP开发工具PhpStorm v2022.3——完全支持PHP 8.2

PhpStorm是一个轻量级且便捷的PHP IDE,其旨在提高用户效率,可深刻理解用户的编码,提供智能代码补全,快速导航以及即时错误检查。可随时帮助用户对其编码进行调整,运行单元测试或者提供可视化debug功能。 PhpStorm v20…

phpstorm10.0.3汉化方法:

PhpStorm10.0.3汉化方法: 1、安装原版PhpStorm10.0.3,在打开最新的PhpStorm10汉化包下载地址: http://pan.baidu.com/s/1bouoyF9 2、双击用压缩软件打开resources_cn.jar(注意是打开而不是解压出来),将下载的汉化包…

PHPSTORM 中文版/汉化 即常用快捷键和配置

PHPStorm配置和快捷键大全(最新版)支持Win和Mac http://blog.csdn.net/fenglailea/article/details/53350080 推荐 1.汉化/中文版 使用的是开源的,翻译的还好,因为是开源,有些人不自觉,在翻译过程中加入广告 开源汉化地址&…

phpstorm10安装并汉化

一、下载phpstorm 下载地址:https://pan.baidu.com/s/1R64ZROVP1ljGbYfCwWjwxA 二、一直点击下一步安装即可 注意:第3步的时候选择一下支持的后缀 三、安装完毕,进行汉化 1、来到安装目录,PhpStorm 10.0.3\lib 目录下 2、…

PhpStorm 中文设置教程

本文仅供学习交流使用,如侵立删!demo下载见文末 Pycharm中文设置教程 1.首先打开PhpStorm ,点击file-settings.找到plugins,搜索Marketplace,然后搜索chinese。 2.找到之后直接点击安装. 3.安装完成之后点击Restart。…

PHPStorm运行PHP代码(新手教程)

PHPStorm是流行对PHP及前端开发IDE,在开发者初次使用写PHP代码时该怎么用呢~ 1、Create New Project 2、选择PHP Empty Project,并新建一个空目录(名字建议为英文,目录不要放在C盘!!!&#xff…

PHP教程二:开发工具 phpstorm 的下载、安装与激活

接着上一章节,我们继续开发工具的安装 phpstorm 的概括:PhpStorm 是 JetBrains 公司开发的一款商业的 PHP 集成开发工具,旨在提高用户效率,可深刻理解用户的编码,提供智能代码补全,快速导航以及即时错误检…

下载phpstorm2021汉化包

网址 网址:https://plugins.jetbrains.com/plugin/13710-chinese-simplified-language-pack---- 点安装到phpstorm 打开phpstorm2021版本 点file-------seeting-------k~(省略了)-----搜索chinese--------最后点安装就可以了。

phpstorm官方汉化包

注意:这个汉化包是官方出品的,并不是网友做的,所以有很强的兼容性不会出现各种乱七八糟bug以及汉化不完全的现象 先一睹为快 我们可以看到全都有翻译 以前的我还觉得那么多选项和按钮都不敢乱点,或者点之前都要百度一下英文 现在可以随便…

PHP开发工具phpstorm的安装及汉化详解

PHP开发工具phpstorm的安装及汉化详解 最近在研究PHP,PHP是目前较为流行的一款PHP开发工具,内容丰富,功能强大,下面将详细介绍一下他的具体安装及汉化步骤。 下载 这个是PHPstorm官网地址,可直接免费下载 我下载的是…

phpstorm安装+新建项目+phpstorm中文版

一、 安装phpstorm 1. 运行安装包 2. 点击next 3. 选择安装路径 点击next 4. 我的电脑系统是windows64位 所以选择64-bit 5. 点击INSTALL安装 6.安装成功后 运行phpstorm 选择evaluate for free 然后点击evaluate 二、 新建项目 1. 点击new project 2. 选择项目路径 点击c…

PhpStorm 汉化包

JetBrains 系列软件汉化包 关键字: Android Studio 3.0-3.1.3 汉化包 CLion 2018.1-2018.2 汉化包 GoLand 2017.3.2-2018.2 汉化包 IntelliJ IDEA 2017.3-2018.2 汉化包 PhpStorm 2017.3-2018.2 汉化包 PyCharm 2017.3-2018.2 汉化包 RubyMine 2017.3.2-2018.2 汉化包 …

PHPStorm安装汉化插件

File下拉菜单 找到Settings 左侧选择Plugins列表,右侧选择tab切换项Marketplace,下面的输入框里输入chinese,然后从列表中选择Chinese(simplified)Language,点击右侧的Install按钮进行安装 安装成功后重启编辑器,整个编辑器就全部是中文的了。…

phpstorm 2020.1汉化教程

提示:如果phpstorm2021.1 Plugins 里面没有搜索到Chinese(Simplified)汉化插件 解决:进入官网:https://plugins.jetbrains.com 搜索 :Chinese(Simplified) 进到这个里面 :Chinese ​(Simplified)​ Language Pa…