学习周报2.26

news2024/11/24 16:44:34

文章目录

  • 前言
  • 文献阅读
    • 摘要
    • 方法
    • 结果
  • 深度学习
    • Encoder-Decoder(编码-解码)
    • 信息丢失的问题
    • Attention机制
  • 总结


前言

This week,I read an article about daily streamflow prediction.This study shows the results of an in-depth comparison between two different daily streamflow prediction models: a novel simpler model based on the stacking of the Random Forest and Multilayer Perceptron algorithms, and a more complex model based on bi-directional Long Short Term Memory (LSTM) networks.The two models show comparable forecasting capabilities.In addition,I learn the attention mechanism and the calculation process through some examples.
本周阅读文献,文献主要研究对比了两种河流日流量预测模型,基于随机森林和多层感知机算法叠加的简单模型以及基于双向长短时记忆网络的复杂模型,通过研究发现两种模型预测能力基本相当。另外,学习了attention机制,通过例子了解attention的计算过程。


文献阅读

题目:Stacked machine learning algorithms and bidirectional long short-term memory networks for multi-step ahead streamflow forecasting: A comparative study

作者:Francesco Granata, Fabio Di Nunno, Giovanni de Marinis

摘要

河流流量的预测是防洪和优化水资源管理的一项基本任务。但由于流域特征,水文过程和气候因素的高不确定性,导致预测过程很困难。本研究对比了两种不同的日流量预测模型:基于随机森林和多层感知机算法叠加的简单模型以及基于双向长短时记忆网络的复杂模型。结果表明两种模型预测能力相当,堆叠模型在预测峰值流速方面优于双向LSTM网络模型,但在预测低流速方面不太准确。

随着模型日益复杂,依赖大量的参数和输入数据,而这些参数和输入数据往往不容易获得,导致模型计算成本大。因此,建立基于少量输入变量和少量参数的简单模型将非常有用,其特点是具有与最近开发的复杂模型相当的预测能力。因此,建立基于少量输入变量和少量参数的简单模型将非常有用,其特点是具有与最近开发的复杂模型相当的预测能力,并试图回答以下问题:
1.这种新颖的集成模型能否提供与更复杂的深度学习算法(如双向LSTM)在日常流量预测中相当的结果?
2.随着预测范围的增加,模型的性能如何变化?

堆叠是一种集成机器学习技术,通过元分类器组合多个分类或回归模型。基于整个训练数据集开发单个分类或回归模型,然后根据融合中各个模型的输出(元特征)拟合元分类器。通过堆叠随机森林(RF)和多层感知器(MLP)算法获得集成模型。弹性网络(EN)算法被用作元学习器。

方法

随机森林和多层感知器的堆叠

随机森林(RF)和多层感知器(MLP)被用作基础学习器,而弹性网络(EN)算法则被选为元分类器来开发堆叠预测模型。

RF 是一种集成预测算法,通过组合一组单独的回归树来提供目标变量的单个值。每个单独的回归树的特征是根节点,其中包括训练数据集,内部节点指定输入变量的条件,叶子表示分配给目标变量的实际值。回归树模型是通过将输入数据集递归细分为子集来开发的。多变量线性回归模型在每个子集中提供预测。在树的生长过程中,每个分支被划分为较小的分区,评估每个字段上所有可能的细分,并在每个阶段找到拆分为两个不同的分区,从而最小化最小二乘偏差:
在这里插入图片描述N(t) 是节点 t 中的单元数,ym是第 i 个单位中目标变量的值,并且ym是节点 t 中目标变量的平均值。
R(t)给出了每个节点中“不纯度”的估计值。

MLP是前馈人工神经网络.MLP 至少由三层节点组成:输入层、隐藏层和输出层。输入层包括接收输入数据的节点。隐藏层中的每个节点使用加权线性和处理前一层的值,然后是非线性激活函数。最后一个隐藏层将值传递给输出层,输出层将它们转换为最终计算值。算法训练使用反向传播技术。
本研究中使用的神经网络有 1 个隐藏层。选择sigmoid作为激活函数,选择平方误差作为损失函数。

弹性网络是两种最常用的线性回归正则化变体的组合:LASSO(最小绝对收缩和选择运算符)和Ridge方法。LASSO,也称为 L1 正则化,通过对普通最小二乘 (OLS) 回归引入绝对惩罚来追求选择最解释变量的目标。Ridge正则化,称为 L2 正则化,也在 OLS 公式中引入了惩罚,惩罚平方权重而不是绝对权重。通过这种方式,大权重会受到相当大的惩罚,而许多小权重分布在特征谱中。
双向长短期记忆网络
LSTM网络已被证明在解决涉及水文量时间序列的复杂问题方面特别有效。LSTM 层由一组以循环方式连接的内存块组成。它们中的每一个都包含一个或多个反复连接的存储单元和三个乘法单元:输入、输出和遗忘门,允许对单元进行读取、写入和重置操作。
LSTM网络中的每个存储单元通过隐藏状态(ht),称为短期记忆和细胞状态(Ct),称为长期记忆。LSTM单元的代表性方程可以采用以下形式提出:
在这里插入图片描述
与标准LSTM相比,双向LSTM具有数据在正向和反向方向上同时处理。时间步长 t 的双向 LSTM 网络的输出由两个单独的隐藏级别的组合提供,其中每个隐藏级别代表一个训练序列,对应于正向和反向。因此,双向 LSTM 可以比标准 LSTM 更好地学习输入序列的未来和过去信息。

评估指标
使用四种不同的估值指标来估计预测模型的准确性:决定系数、均方根误差、平均方向精度和平均绝对百分比误差。
决定系数(R2) 是回归模型中的统计度量,它通过范围 [0, 1] 中的数字评估模型与数据的拟合优度。

在这里插入图片描述

均方根误差 (RMSE) 是绝对误差的度量,其中偏差被平方以防止正值和负值相互抵消。此外,该度量值放大了更大价值的误差,这一特征会惩罚具有最显着误差的模型。

在这里插入图片描述
其中 N 是时间序列中预测数据的总量。
平均方向精度 (MDA) 将预测方向(向上或向下)与实际实现的方向进行比较,提供预测模型可以检测到时间序列正确方向的概率。
在这里插入图片描述
其中 sgn(·) 是符号函数,而 1 是指标函数。

平均绝对百分比误差 (MAPE) 是预测模型的绝对百分比误差的平均值,其中误差定义为实际值减去预测值。
在这里插入图片描述

结果

在这里插入图片描述
本研究发现,基于RF和MLP算法堆叠的溪流预测模型可以产生与基于Bi-LSTM的更复杂的模型相当的结果。堆叠模型的最大优势在于计算时间,大约是Bi-LSTM模型所需计算时间的10%。

深度学习

Encoder-Decoder(编码-解码)

Encoder-Decoder是一个模型构架,是一类算法统称,并不是特指某一个具体的算法,在这个框架下可以使用不同的算法来解决不同的任务。首先,编码(encode)由一个编码器将输入序列转化成一个固定维度的稠密向量,解码(decode)阶段将这个激活状态生成目标译文。
在这里插入图片描述
说明:
不论输入和输出的长度是什么,中间的“向量c”长度都是固定的(这是它的缺陷所在)。根据不同的任务可以选择不同的编码器和解码器(例如,CNN、RNN、LSTM、GRU等)
Encoder
对于输入序列x=(x1,…,xT),其会将输入序列如图所示编码成一个context vector c ,encoder一般使用RNN,在RNN中,当前时间的隐藏状态是由上一时间的状态和当前时间输入决定的,也就是
在这里插入图片描述
Decoder
一般其作用为在给定context vector c和所有已预测的词 {y1,…,yt−1}去预测 yt,t时刻隐藏状态st为:
在这里插入图片描述

信息丢失的问题

通过上文可以知道编码器和解码器之间有一个共享的向量(上图中的向量c),来传递信息,而且它的长度是固定的。这会产生一个信息丢失的问题,编码器要将整个序列的信息压缩进一个固定长度的向量中去。但是这样做有两个弊端,一是语义向量无法完全表示整个序列的信息,还有就是先输入的内容携带的信息会被后输入的信息稀释掉,或者说,被覆盖了。使得在解码的时候一开始就没有获得输入序列足够的信息,那么解码的准确度也会低。为了解决这些缺陷,又引入了Attention机制,Attention模型的特点是Encoder不再将整个输入序列编码为固定长度的中间向量,而是编码成一个向量序列。Encoder 将句子编码成一个向量序列,而不是一个向量,然后再预测翻译单词的每一步选择这些向量的子集作为注意力向量输入到 Decoder 中。

Attention与传统的Seq2Seq模型主要有以下两点不同:
1.encoder提供了更多的数据给到decoder,encoder会把所有的节点的hidden state提供给decoder,而不仅仅只是encoder最后一个节点的hidden state。
2.decoder并不是直接把所有encoder提供的hidden state作为输入,而是采取一种选择机制,把最符合当前位置的hidden state选出来。

确定哪一个hidden state与当前节点关系最为密切,计算每一个hidden state的分数值,对每个分数值做一个softmax的计算,这能让相关性高的hidden state的分数值更大,相关性低的hidden state的分数值更低。
在这里插入图片描述
把每一个encoder节点的hidden states的值与decoder当前节点的上一个节点的hidden state相乘,如上图,h1、h2、h3分别与当前节点的上一节点的hidden state进行相乘(如果是第一个decoder节点,需要随机初始化一个hidden state),也就是计算每一个输入位置j的hidden vector与当前输出位置的关联性similarity(st-1,hj),相似度的计算方式有很多,最后会获得三个值,这三个值就是上文提到的hidden state的分数,这个数值对于每一个encoder的节点来说是不一样的,把该分数值进行softmax计算,得到attention的分布,计算之后的值就是每一个encoder节点的hidden states对于当前节点的权重,把权重与原hidden states相乘并相加,得到的结果即是当前节点的hidden state。Atttention的关键就是计算这个分值。

Attention机制

Attention机制从上文讲述例子中的Encoder-Decoder框架中剥离,Attention函数的本质可以被描述为一个查询(query)到一系列(键key-值value)对的映射。在计算attention时主要分为三步:
第一步是将query和每个key进行相似度计算得到权重,常用的相似度函数有点积,拼接,感知机等;
第二步一般是使用一个softmax函数对这些权重进行归一化,我们将 αi 称之为注意力分布(概率分布);
最后将权重和相应的键值value进行加权求和得到最后的attention。目前在NLP研究中,key和value常常都是同一个,即key=value。
在这里插入图片描述


总结

带有Attention的Encoder-Decoder网络的迭代过程:
1.Encoder网络按照原来的方法计算出 h1,h2…ht;
2.计算Decoder网络,对于第 K个输出词语,先计算出得到Ck所需要的h1,h2…ht的权重ak,ak的计算如上述公式所示,再计算Ck=ak1h1+ak2h2…;
3.将Hk-1,yk-1,Ck带入f(Hk-1,yk-1,Ck)计算Hk,再把Hk带入网络计算yk。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Oracle-RAC集群主机重启问题分析

问题背景: 在对一套两节点Oracle RAC19.18集群进行部署时,出现启动数据库实例就会出现主机出现重启的情况,检查发现主机重启是由于节点集群被驱逐导致​。 问题: 两节点Oracle RAC19.18集群,启动数据库实例会导致主机出现重启。 问题分析: 主机多次出现…

2023年第八周总周结 | 开学倒数第一周

为什么要做周总结? 1.避免跳相似的坑 2.客观了解上周学习进度并反思,制定可完成的下周规划 一、上周存在问题 发现自己反复犯同样问题,不想反思就不会意识到。总想以面带点的学习,实际上却在原地踏步。问题导向使用ChatGPT&#…

目标检测:DETR详解

1. 概述 DETR: End-to-End Object Detection with Transformers, DETR 是 Facebook 团队于 2020 年提出的基于 Transformer 的端到端目标检测,是Transformer在目标检测的开山之作 – DEtection TRansformer。 相比于传统的Faster-rcnn,yolo系列,DETR有以下几个优点:1).无需…

微信实时音视频通话数据流分析

一、实时音视频的架构 实时音视频通信架构主要包括P2P、SFU、MCU三种方式,其中点对点通信通常以P2P优先,P2P走不通的场景再借助于SFU/MCU。 P2P方式,终端之间点对点的相互收发数据流,音视频流不经过服务器; SFU是端侧…

scrapy下载图片

🐱 个人主页:莎萌玩家🙋‍♂️ 作者简介:全栈领域新星创作者、专注于全栈各领域技术,共同学习共同进步,一起加油呀!💫系列专栏:网络爬虫、WEB全栈开发📢 资料…

二叉树的后序遍历-java递归+非递归-力扣145双百方案

一、题目描述给你一棵二叉树的根节点 root ,返回其节点值的 后序遍历 。示例 1:输入:root [1,null,2,3]输出:[3,2,1]示例 2:输入:root []输出:[]示例 3:输入:root [1]…

使用jenkins实现自动化部署springboot应用

1. 前置准备 这里代码仓库使用gitlab。在介绍如何通过gitlab和jenkins进行自动化部署之前,需要先安装完成gitlab以及jenkins。两种程序的安装方式以及相关配置可以参看以下内容: linux中安装gitlab:linux安装极狐gitlab linux中安装jenki…

Objective-C description 自定义对象的打印格式/输出的字符串 类似于Java 中的 toString 方法

总目录 iOS开发笔记目录 从一无所知到入门 文章目录IntroNSObject 源码测试类截图测试代码输出Intro 在 Java 中,对于自定义类一般会重写集成自Object类的toString方法,这样在打印该类的对象时,打印出的字符串就是我们在 toString() 方法中返…

【Vue3源码】第六章 computed的实现

【Vue3源码】第六章 computed的实现 上一章节我们实现了 ref 及其它配套的isRef、unRef 和 proxyRefs API。这一章开始实现computed计算属性。 认识computed 接受一个 getter 函数,返回一个只读的响应式 ref 对象。该 ref 通过 .value 暴露 getter 函数的返回值。…

[架构之路-121]-《软考-系统架构设计师》-计算机体系结构 -3-汇编语言与ARM系统的初始化

第9章 计算机体系结构 第1-6节 参考前文第7节 ARM汇编语言7.1 程序框架(1)数据段Data初始化的数据: 初始的全局变量未初始化的数据:未初始化的全局变量堆heap:malloc的内存或数据栈stack:函数的局部变量&am…

ubuntu20系统+RobotiQ 2F-85夹爪+Ros+VMware配置

文章目录环境说明Ros配置Vmware虚拟机串口通信配置运行节点并调试有关问题解决办法rosdep相关缺少ros有关的库与pymodbus相关参考环境说明 环境说明系统版本Ubuntu 20.04.4Ros版本noetic主机形式VMware虚拟机夹爪型号RobotiQ 2F-85 Ros配置 新建ros工作空间并进行初始化 mkdir…

Nginx配置web服务器及部署反向代理

Nginx配置web服务器及部署反向代理配置web服务器location语法部署反向代理代理转发配置web服务器 项目部署到linux上的静态文件代理给Nginx处理。当访问服务器IP时,可以自动返回静态文件主页。 主配置文件中server块对应的次配置include /etc/nginx/conf.d/*.conf…

ESP-01S烧录MQTT固件连接阿里云

烧录MQTT固件 资源下载包 用到的所有烧录攻击和固件都放百度云链接了 提取码:qwlo 烧录固件 淘宝上10块钱左右一个CH340C下载烧录器ESP8266的就可以了。 连接好硬件打开ESPFlashDownloadTool_v3.6.2.2.exe软件(记得放到英文目录下不然可能打不开&a…

windows服务编程

文章目录前言方案一:服务程序方案二:后台程序对比windows服务编程windows服务控制附录 - 完整代码前言 在linux中,如果需要一个程序在后台持续提供服务,我们一般会使用守护进程。 守护进程(daemon)是生存期长的一种进程。它们常…

Canonical为所有支持的Ubuntu LTS系统发布了新的Linux内核更新

导读Canonical近日为所有支持的Ubuntu LTS系统发布了新的Linux内核更新,以解决总共19个安全漏洞。新的Ubuntu内核更新仅适用于长期支持的Ubuntu系统,包括Ubuntu 22.04 LTS(Jammy Jellyfish)、Ubuntu 20.04 LTS(Focal F…

需求:节目上传至MINIO后,使用mqtt进行上报

需求:节目上传至MINIO后,使用mqtt进行上报 环境准备 文件管理平台:首先需要使用minio搭建属于自己的对象存储(此步骤跳过) 通信方式:MQTT方式,客户端测试工具:MQTTX(ht…

AI - stable-diffusion(AI绘画)的搭建与使用

最近 AI 火的一塌糊涂,除了 ChatGPT 以外,AI 绘画领域也有很大的进步,以下几张图片都是 AI 绘制的,你能看出来么? 一、环境搭建 上面的效果图其实是使用了开源的 AI 绘画项目 stable-diffusion 绘制的,这是…

《MySQL学习》 表中随机取记录的方式

一.初始化测试表 创建表 words CREATE TABLE words ( id int(11) NOT NULL AUTO_INCREMENT, word varchar(64) DEFAULT NULL, PRIMARY KEY (id)) ENGINEInnoDB;插入测试数据 create procedure idata()begin declare i int; set i 0; while i<10000 do insert into words…

【计算机网络】TCP的可靠性传输机制和常见配置讲解

文章目录1.TCP的可靠性传输机制2.TCP的传输优化机制 Nagle算法和延迟确认3.Linux服务器常见网络内核参数配置4. Linux服务器生产环境常见问题1.TCP的可靠性传输机制 TCP的可靠性传输机制 ACK机制 接收方收到TCP 数据包&#xff0c;要响应一个确认消息 acknowledgement&#xff…

Jinja2----------模板渲染、模板访问对象属性

目录 1.Jinja2 1.简介 2.Jinja2模板 2.模板渲染 app.py templates/index.html templates/blog_detail.html 效果 3.模板访问对象属性 app.py templates/index.html 效果 1.Jinja2 1.简介 Jinja2是Python下一个被广泛应用的模版引擎&#xff0c;他的设计思想来…