回归算法|长短期记忆网络LSTM及其优化实现

本期文章将介绍LSTM的原理及其优化实现

在这里插入图片描述

在这里插入图片描述

序列数据有一个特点,即“没有曾经的过去则不存在当前的现状”,这类数据以时间为纽带,将无数个历史事件串联,构成了当前状态,这种时间构筑起来的事件前后依赖关系称其为时间依赖,利用这类依赖关系进行建模是对其进行学习的关键。

近年来,越来越多的神经网络模型被用于序列数据的预测,如股票、电力负荷、风电功率、心电信号等场景,并取得了不错的效果。

通常,神经网络模型可以分为两类:

一类是以BP神经网络为代表的神经网络,这类网络结构简单,但容易出现陷入局部极值、过拟合等问题,并且其并没有对于依赖关系进行利用;

另一类是更深层次、更高效的深度神经网络模型,如CNN、RNN、LSTM,这类网络是较为前沿和高效的预测模型,其能够拟合输入变量间的非线性复杂关系,并且对于RNN和LSTM来说,其能够克服传统神经网络没有记忆功能的问题,可以有效的根据历史信息进行学习和预测。相对于RNN,LSTM能避免RNN在长序列数据中出现的梯度消失或爆炸的问题,是最为流行的RNN(LSTM是在RNN基础上的改进),因此LSTM在序列数据学习中得到了广泛应用。

LSTM同样面临着隐含层神经元个数、学习率、迭代次数等超参数设置的问题,这些参数都将影响LSTM的预测精度,利用优化算法进行超参数的寻优比经验法更为科学高效,因此本文将详细介绍LSTM模型的原理及其优化实现。

00 目录

1 LSTM模型原理

2 优化算法及其改进概述

3 GWO-LSTM预测模型

4 代码目录

5 实验结果

6 源码获取

01 LSTM神经网络模型[1]

长短时记忆神经网络(LSTM)是Sepp Hochreiter和Jurgen Schmidhuber在1997年对递归神经网络(RNN)进行改进的算法。它旨在解决递归神经网络(RNN)产生的梯度消失问题,在长距离依赖任务中的表现也远好于RNN。LSTM模型的工作方式和RNN基本相同,但是LSTM模型实现了更为复杂的内部处理单元来处理上下文信息的存储与更新。

Hochreiter 等人主要引入了记忆单元和门控单元实现对历史信息和长期状态的保存,通过门控逻辑来控制信息的流动。后来Graves等人对LSTM单元进行了完善,引入了遗忘门,使得LSTM模型能够学习连续任务,并能对内部状态进行重置。

LSTM主要由三个门控逻辑(输入、遗忘和输出)实现。门控可以看作一层全连接层,LSTM对信息的存储和更新正是由这些门控来实现的。更具体地说,门控由Sigmoid函数和点乘运算实现。
在这里插入图片描述

这里分别使用i、f、o来表示输入门、遗忘门和输出门,O表示对应元素相乘,W和b分别表示网络的权重矩阵与偏置向量。在时间步为t时,LSTM隐含层的输入与输出向量分别为x,和h,,记忆单元为c,,输入门用于控制网络当前输入数据x,流入记忆单元的多少,即有多少可以保存到c,,其值为:

在这里插入图片描述

遗忘门是LSTM 的关键组成部分,可以控制哪些信息要保留哪些要遗忘,并且以某种方式避免当梯度随时间反向传播时引发的梯度消失和爆炸问题。遗忘门可以决定历史信息中的哪些信息会被丢弃,即判断上一时刻记忆单元ct-1中的信息对当前记忆单元ct的影响程度。
在这里插入图片描述

输出门控制记忆单元c,对当前输出值h,的影响,即记忆单元中的哪一部分会在时间步t输出。输出门的值及隐含层的输出值可表示为:
在这里插入图片描述

02 优化算法及其改进概述

前面的文章中作者介绍了许多种优化算法及其改进算法,

这里我们以灰狼优化算法为例,其他算法同理。作者的代码很多都是标准化的,其他文章里的算法替换起来也很容易。

03 GWO-LSTM预测模型

超参数在一定程度上会影响LSTM网络的拟合精度,因此必须获得适合不同特征数据的最佳超参数值。然而,目前还没有成熟的理论来获得合适的超参数值。因此,本文采用灰狼优化算法,得到LSTM的最佳网络超参数值,包括初始学习率、隐含层神经元数、批次大小和训练迭代次数,即[lr,L1,L2,Batch,k]。其中增加隐藏层数可提高模型的非线性拟合能力,但同时也使模型更复杂,预测时间随之增加,甚至引发过拟合问题﹐因此本文将隐藏层数选择的范围控制在2层。优化参数的约束条件设置如下:在这里插入图片描述

以MSE作为适应度,GWO-LSTM预测模型的流程图如下:在这里插入图片描述

04 实验结果

以均方根差(Root Mean Square Error,RMSE) 、平均绝对百分误差( Mean Absolute Percentage Error,MAPE) 、平均绝对值误差 ( Mean Absolute Error,MAE) 和可决系数(coefficient of determination,R^2)作为序列数据拟合的评价标准。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

图中MSGWO为作者前面改进的灰狼优化算法

05 源码获取

代码注释详细,一般只需要替换数据集就行了,注意数据的行是样本,列是变量,源码提供3个版本

1.免费版

其主要是LSTM预测模型,包含Matlab和Python的程序,对于需要进行一些简单预测或者是想学习LSTM算法的同学足够了。

在这里插入图片描述

获取方式——GZH(KAU的云实验台)后台回复:LSTM

2.付费版1

主要是GWO优化LSTM的预测模型,这个只包含了Matlab程序,包括BP、LSTM、GWO-LSTM的预测对比。因为最近比较忙,Python就没有出,程序的注释详细,易于替换,卡卡之前介绍过的智能优化算法都可以进行替换。

在这里插入图片描述
在这里插入图片描述

获取方式——GZH后台回复:GWOLSTM

3.付费版2

主要是MSGWO优化LSTM的预测模型,这个只包含了Matlab程序,包括BP、LSTM、GWO-LSTM、MSGWO-LSTM的预测对比,也即在结果展示中的图片,其中MSGWO即为卡卡前面的融合多策略的改进灰狼优化算法的文章,程序的注释详细,这部分程序包含了函数测试、预测模型两个部分,可以用来发这类方向的文章,当然你也可以在卡卡算法的基础上再作创新改进,比如预测模型上可以再对预测误差做一个预测模型进行级联,或者对改进的灰狼算法再引入别的修改策略等等。

在这里插入图片描述

在这里插入图片描述

获取方式——GZH后台回复:MSGWOLSTM

[1]游皓麟著.Python预测之美:数据分析与算法实战[M] .电子工业出版社

另:如果有伙伴有待解决的优化问题(各种领域都可),可以发我,我会选择性的更新利用优化算法解决这些问题的文章。

如果这篇文章对你有帮助或启发,可以点击右下角的赞/在看(ง •̀_•́)ง(不点也行)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/176461.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

正则表达式的使用实例

正则表达式的使用实例 1- 表示2- 实例 1- 表示 1, [:digit:] 表示0-9全部十个数字 //等价于 0123456789, 而不等价于[0123456789] 2, [[:digit:]] 表示任意一个数字 \{m,n\} 表示其前面的字符出现最少m次,最多n次的情况 \{3,\} 其前面的字符出…

泛积木-低代码 使用攻略

文档首发于 泛积木-低代码 使用攻略 我们以大纲的方式(总体把握)讲述如何高效、便捷使用 泛积木-低代码。 权限 首先说下权限,在 系统设置 / 权限设置 菜单内,我们可以新增调整项目内的权限,默认拥有管理员和成员两…

前后端配合实现按钮级操作权限控制

背景 公司项目需要做到按钮级权限限制,至此有了该文,如有错误,请联系博主指出,多多感谢。 角色配置前后端操作 首先最基本的角色配置,配置该类角色有哪些菜单以及那些菜单的哪些按钮权限 菜单及菜单按钮由前端维护&a…

企业 Tomcat 运维 部署tomcat反向代理集群

一、Tomcat 简介 Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器, Tomcat和Nginx、Apache(httpd)、Web服务器一样,具有处理HTML页面的功能不过Tomcat处理静态HTML的能力不如Nginx/Apache服务器 一个tomcat默认并…

Docker之docker-compose(介绍,安装及入门示例)

文章目录 一、docker-compose介绍Compose 中有两个重要的概念: 二、docker-compose安装三、docker-compose简单示例参考网址: 一、docker-compose介绍 Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。 Compo…

前度开发面试题

面试题总结 vue页面跳转会经过两个钩子函数beforeEach、afterEach 组见守卫 beforeRouteEnter前置组见守卫 *beforeRouteUpdate更新之前 watch和computed区别 数据没有改变,则 computed 不会重新计算)。若没改变,计算属性会立即返回之前缓…

网际协议IP

网际协议IP 一、IP地址 1、分类的IP地址 IP地址::{<网络号>,<主机号>} 2、无分类编址CIDR IP地址::{<网络前缀>,<主机号>} &#xff08;1&#xff09;网络前缀 ​ 与分类IP最大的区别就是网络前缀的位数n是不固定的&#xff0c;可以是0~32位。 ​ …

月入8K, 计算机专业应届女孩转行5G网络优化工程师,她说:这行请慎入

小C说&#xff0c;如果要用两个字描述23年计算机专业的就业心情&#xff0c;那就是“焦虑”&#xff1b;用三个字描述23年计算机专业的就业环境&#xff0c;那就是“卷麻了”。 得益于张雪峰老师的就业推荐计算机专业需求的日益减少&#xff0c;2023年&#xff0c;计算机专业成…

三、 链表

一、链表的定义 链表是一种动态数据结果&#xff0c;内存分配不是在创建链表时一次性完成的&#xff0c;每添加一个节点&#xff0c;分配一次内存&#xff0c;由于没有闲置的内存&#xff0c;链表的空间效率高于数组 二、定义单向链表 struct ListNode {int m_nValue;ListNo…

DevChat:VSCode中基于大模型的AI智能编程助手

#AI编程助手哪家好&#xff1f;DevChat“真”好用# 文章目录 1. 前言2. 安装2.1 注册新用户2.2 在VSCode中安装DevChat插件2.3 设置Access Key 3. 实战使用4. 总结 1. 前言 DevChat是由Merico公司精心打造的AI智能编程助手。它利用了最先进的大语言模型技术&#xff0c;像人类…

nodejs+vue智慧补助系统的设计与实现-计算机毕业设计

随着网络技术的不断发展&#xff0c;多媒体技术应用渐渐的出现在教育领域中&#xff0c;智慧补助系统已经成为教育发展的一个热门话题。 在众多网络开发技术中&#xff0c;nodejs是当前很热门的一种软件&#xff0c;因为它可以进行数据库操作及方便用户控制管理。 在各学校的教…

QML 创建 Web 混合应用

作者: 一去、二三里 个人微信号: iwaleon 微信公众号: 高效程序员 随着互联网的快速发展,Web 应用在各个领域中变得越来越流行。为了满足用户对多样化功能的需求,我们经常需要将 Web 技术和原生应用相结合,来创建混合应用程序。 混合应用程序:是一种应用程序开发方法,它…

k8s、pod

Pod k8s中的port【端口&#xff1a;30000-32767】 port &#xff1a;为Service 在 cluster IP 上暴露的端口 targetPort&#xff1a;对应容器映射在 pod 端口上 nodePort&#xff1a;可以通过k8s 集群外部使用 node IP node port 访问Service containerPort&#xff1a;容…

错误: 找不到或无法加载主类 回归java运行的本质

错误: 找不到或无法加载主类 回归java运行的本质 一&#xff0c;背景 当有了idea这种工具后&#xff0c;java的mian方法执行起来是如此简单&#xff0c;很少有人再手动编辑并通过命令行执行了。 同时&#xff0c;在当今Spring Boot盛行的今天&#xff0c;恐怕很少再有人执行j…

跟着步骤,快速实现图书行业小程序商城

跟着步骤&#xff0c;快速实现图书行业小程序商城 打造独特图书购物体验&#xff0c;小程序商城制作指南 轻松搭建图书馆与书店的线上商城小程序 值得一试的图书教材小程序商城搭建方法 图书商城小程序制作指南&#xff0c;助你成为行业领袖 实战教程&#xff1a;如何制作…

Android开发知识学习——HTTPS

文章目录 定义HTTPS连接HTTPS 连接建立的过程课后题 定义 HTTP Secure / HTTP over SSL / HTTP over TLS SSL&#xff1a;Secure Socket Layer -> TLS Transport Layer Security 定义&#xff1a;在HTTP之下增加的一个安全层&#xff0c;用于保障HTTP的加密传输 本质&…

云计算助力史上首届“云上亚运”圆满成功!

201金&#xff0c;魔幻的BGM&#xff0c;以及崛起的中国科技&#xff0c;让杭州亚运会成功出圈。 很多网友表示太震撼了&#xff01;开幕式很漂亮&#xff0c;杭州为了奥运造新城真豪横&#xff0c;看完一整个文化自信住&#xff01; 赛场内外除了无数个令人感动的瞬间&#…

FPGA时序分析与约束(8)——时序引擎

一、概述 要想进行时序分析和约束&#xff0c;我们需要理解时序引擎究竟是如何进行时序分析的&#xff0c;包括时序引擎如何进行建立分析&#xff08;setup&#xff09;&#xff0c;保持分析(hold)&#xff0c;恢复时间分析(recovery)和移除时间分析(removal)。 二、时序引擎进…

Django添加csrf保护机制

步骤 要在Django中启用CSRF保护&#xff0c;您可以按照以下步骤进行操作&#xff1a; 1. 在Django的settings.py文件中&#xff0c;确保django.middleware.csrf.CsrfViewMiddleware中间件已添加到MIDDLEWARE设置中。通常&#xff0c;这个中间件默认就会包含在其中。 2. 在HTM…

一文速通 StarRocks 数据库:核心概念、架构与特性

Author: Xinyao Tian 概述 本文档简要梳理了 StarRocks 的基本信息。 简介 Introduction StarRocks 是面向下个时代的&#xff0c;高性能的数据分析仓库。其提供了实时、多维度、高并发的数据分析能力。 StarRocks is a next-gen, high-performance analytical data warehou…