从0开始学习informer

目录

  • informer特点
  • informer原理
    • attention计算
      • KL散度
  • backbone网络部分
    • encoder
      • 输入输出部分
      • embadding这里就不讲了 和transfomer一样
      • EncoderStack
    • decoder部分
      • 接下来就是最关键的结构 关于如何将输入经过注意力得到结果
  • 结束,代码会放到下一篇讲 这里是原理

informer特点

1.一次输出你所有想得到的值。什么意思呢?就比如你想用1000个数据预测后面3天的数据,transformer是一天一天的输出,但是informer是一次性给你输出。所以不需要多次预测。
2.再经过我们的稀疏注意力的时候,会进行维度压缩。减少参数量。

informer原理

attention计算

首先啊,我们要清楚qk矩阵想成功的含义,再transformer中有。链接: 不懂的看我的transformer原理。这里不多赘述,我就当你懂了。那么所谓我们序列与多序列之间的关系,打个比方就是我前一天的数据和后五天的数据的关系,得到第一天和后五天序列的关系。那么对于transformer来说,我们需要得到的不仅仅是第一天,还有第二天和其余五天,第三天和其余五天。。。那么就需要6x6的矩阵来记录我们的关系。但是当我们要计算很长的序列比如10000天,那么需要10000x10000的矩阵来存储答案,这样是不是有点大,参数会增加很多?我们可以得到下面的热力图。通过热力图我们可以发现,黑的很多红的很少。什么意思呢?黑色代表不相干,红的代表相干。所以我们这个矩阵大部分单词都不相干,所以这样的效果自然很差。在数据比较多的时候

在这里插入图片描述
该图上面红色线代表某一序列和其他序列的相关性的关系图。右边图的纵坐标代表着一个向量Q和其他向量的k乘积(也就是相关性),横坐标是不同的K,说明波动大代表相关性高,波动低代表相关性低。所以我们发现绿色的波动低,就代表我们的这个序列相关性低,就代表我们序列有没有他都一样。至于为什么波动大相关性高可以查看qk乘积那个公式,很明显可以看出
在这里插入图片描述
ok,那么我们如何解决这个问题?
这里就是我们informer的稀疏注意力probspare attention的核心所在------------部分特征代表整体,也就是我们用active的序列,去掉一些lazy的序列。也就是筛选active的序列。那么我们该怎么做呢?

很简单举个例子 我们Q和K各自是96个。
第1步:利用所有的Q和随机抽取1/4的K进行抽样,然后选出其中最活跃的25个特征序列Q
第2步:在让25个topQ和所有96个K相乘得到我们自注意力得到的结果
那么我们原来用自注意力需要96x96次计算。但是我们采取上述方法我们只需要计算
96x25x2(2是做两次),所以我们的效率是远远胜于我们的transformer

但是相乘以后我们变成的96x25之后我们还是需要和我们的v相乘,还是要将维度转换成原来的96x96,所以我们的informer就会进行expand,由于我们只有96x25,我们其它的部分该怎么办,很简单,把v矩阵(96x64)均值填上即可,因为我们只记录相关的,由于不相关,所以qk关系不是很大,所以用k的均值填上在和v相乘就行。

KL散度

什么是KL散度?即描述两个分布间差异的方法。就是这些红的竖线之间的差相加。
在这里插入图片描述

我们的informer的计算可以简化成如下。 意思就是。我们可以之间用红线最大值减去均值,得到我们的qk计算结果。

在这里插入图片描述
在这里插入图片描述
可能大家听不懂,这么说,一开始是我们要得到96x96的矩阵对吧,然后informer改成了概率相乘,就是随机抽取96里面的25个和其他96做乘积选出我们的top25个q后再用全部的K和Q相乘然后得到我们最后的结果时候,我们再用KL散度简化计算方式用最大的相关性值减去均值得到我们的结果,也就是化简为一个元素和一个元素的计算。
也就是96x96 ->96x25x2->1v1 (打个比方)

backbone网络部分

在这里插入图片描述
1部分的大梯形是用于处理比较长的序列,2部分是小梯形,处理比较短的序列
二者的结构都是一样的,3是用于减小参数(你看是梯形,从下到上宽度在变短,对应参数减小。)

原文翻译如下
在这里插入图片描述

encoder

输入输出部分

一般来说时序输入是[batch,sq_len,feature],informer原文是32x96x7对应着矩阵维度
96就代表着,一次输入96个数据,每个数据有7个特征,一共有32个批次。
那么对应的encoder输出是32x51x512

**为什么是512?**那是因为我们的encoder一般都会经过embading层进行嵌入后得到512维度和transformer一样。

embadding这里就不讲了 和transfomer一样

EncoderStack

其实就是多个encoder组合结合后得到的encoder层,看下图 encoder1和2输入第一输入是96,第二个encoder输入的是一半。并并且第二个encoder扔掉一层自我注意蒸馏层的数量,使这两个encoder的输出维度使对齐的;

在这里插入图片描述
最后得到的[32,51=(26+25),512]是拼接的来的 也就是下面两个拼接
在这里插入图片描述
在这里插入图片描述

可以参照原文图,红色线条代表第一个encoder,绿色代表第二个

在这里插入图片描述

decoder部分

输入: 32 × 51 × 512(encoder)和32 × 72 × 512 (decoder的输入)
输出: 32 × 72 × 512

decoder的输入和transformer一样 有从encoder的输入和decoder的输入
但是decoder 的输入有个特点就是后面的24个seq_len被0盖住,充当mask,这是出于transformer也就是箭头所指的部分。

在这里插入图片描述
我们把中间的放成一维画图表示。
在这里插入图片描述

接下来就是最关键的结构 关于如何将输入经过注意力得到结果

在这里插入图片描述
注意了 在最后一部进行qkv操作的时候也是用dl散值的操作 但是和与encoder中说的不一样,这里的lazy元素的填充值是用每个q时间点的v向量累加得到的值,因为是mask操作保证了不会看到后面的值。利用 ProbAttention 的结果计算得到 输出后经过全连接层一次性得到输出。

也就是encodr梯控kv矩阵,而我们的decoder输入的矩阵提供q,然后最后计算 ProbAttention 的时候不用mean(v)操作了,用的是累加方式,每个q用的当前时间点之前所有的v向量相加的值作为mask,从而不用和transformer一样,一步一步进行计算了

结束,代码会放到下一篇讲 这里是原理

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

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

相关文章

基于GIS矿产勘查靶区优选技术

定义: 找矿远景区(ore-finding prospect): 一般将中小比例尺(小于等于1:10万)成矿预测所圈定的找矿有利地段(preferable ore-finding area)成为找矿远景区 找矿靶区(ore-finding t…

车流量统计YOLOV8+DEEPSORT

车流量统计,YOLOV8NANODEEPSORT资源-CSDN文库 车流量统计YOLOV8DEEPSORT,目前支持PYTHON,C开发 PYTHON版本,需要YOLOV8,依赖PYTORCH C版本,只需要OPENCV

MYSQL的面试题

目录 一.数据库的约束类型 一.创建数据库、修改数据库名、修改表名,修改列名、修改某个属性的语法 三.索引的类型、优缺点以及使用场景 四.索引的常见的索引数据结构 五.数据库中常用的锁 六.事务的四大特性 七.什么是脏读?幻读?不可重…

技术周总结 2024.07.08~07.14(算法,Python,Java,Scala,PHP)

文章目录 一、07.13 周六1.0)算法题:字符串中的单词反转1.1) 问题01:可靠性计算中的MTTR MTTF MTBF 分别指什么?他们之间有什么联系?MTTR (Mean Time to Repair)MTTF (Mean Time to Failure)MTBF (Mean Time Between F…

vsCode 格式化代码及安装的插件

背景: 开发过程用的比较顺手的插件,首先看概览,然后分开发场景分别介绍。。。原生、vue2、vue3、react 效果展示: 不分前端开发框架,都在使用的几款插件: 插件官网链接:点击跳转官网 使用他能…

深入解析香橙派 AIpro开发板:功能、性能与应用场景全面测评

文章目录 引言香橙派AIpro开发板介绍到手第一感觉开发板正面开发板背面 性能性能概况性能体验 应用场景移植操作系统香橙派 AIpro开发板支持哪些操作系统?烧写操作系统到SD卡中启动开发板的步骤查看系统提供的事例程序体验——开发的简洁性 视频播放展示ffmpeg简介f…

C++ 语法习题(2)

第三讲 循环语句 1.偶数 编写一个程序&#xff0c;输出 1 到 100之间&#xff08;包括 1 和 100&#xff09;的全部偶数。 输入格式 无输入。 输出格式 输出全部偶数&#xff0c;每个偶数占一行。 输入样例 No input输出样例 2 4 6 ... 100 参考代码: #include <i…

Kafka接收消息

文章目录 Acknowledgment读消息指定分区批量消费消息拦截 // 采用监听得方式接收 Payload标记消息体内容. KafkaListener(topics {"test"},groupId "hello") public void onEvent(Payload String event,Header(value KafkaHeaders.RECEIVED_TOPIC) Stri…

服务重启时容器未自动启动

1、容器重启策略 通过设置容器的重启策略&#xff0c;‌可以决定在容器退出时Docker守护进程是否重启该容器。‌常见的重启策略包括&#xff1a;‌ no&#xff1a;‌不重启容器&#xff0c;‌默认策略。‌always&#xff1a;‌无论容器是如何退出的&#xff0c;‌总是重启容器…

2024 辽宁省大学数学建模竞赛A题 风切变影响及处置 完整思路 代码结果分享(仅供学习)

风切变对航空安全会构成危害。航空人员需了解相关知识&#xff0c;掌握相应技术&#xff0c;从而在遭遇上述天气时最大程度的规避风险&#xff0c;保证飞行安全。 风切变是指在大气中相对比较短的距离内或时间段内产生的风速大小、方向大幅度变化的现象。通常将发生在距离地面…

白话无人驾驶:1风暴来袭

----->更多内容&#xff0c;请移步“鲁班秘笈”&#xff01;&#xff01;<----- 根据最新的消息&#xff0c;在2024世界人工智能大会上&#xff0c;上海发放了首批完全无人驾驶智能网联汽车示范应用许可&#xff0c;即“完全无人载人车牌照”。首批获得许可的企业包括Au…

mysql 字段为json字符串,转对象然后赛选查询案例

sql 案例 SELECT JSON_UNQUOTE(JSON_EXTRACT(remark, $.deviceIp)) AS ip FROM intellect_identify_camera where JSON_UNQUOTE(JSON_EXTRACT(remark, $.deviceIp)) 127.0.0.1 ;

外国程序猿是什么水平?印度/越南/泰国/菲律宾

外国程序猿是什么水平? 中国互联网企业在海外扩张中,会遇到哪些困难和问题? 文化的差异本地法律法规的问题产品定位的问题人员招聘的问题等等…… 文化的差异和法律法规只能去适应,产品定位可以做调研,参考竞争对手和竞品。 人呢?这是最不可控的因素! 这里所说的人肯定…

mybatis语法进阶1

日志的使用 我们在使用MyBatis的时候, 其实MyBatis框架会打印一些必要的日志信息, 在开发阶段这些日志信息对我们分析问题,理解代码的执行是特别有帮助的; 包括项目上线之后,我们也可以收集项目的错误日志到文件里面去; 所以我们采用专门的日志系统来处理. 步骤 导入坐标拷贝…

阿里云人工智能平台PAI论文入选OSDI ‘24

近日&#xff0c;阿里云人工智能平台PAI的论文《Llumnix: Dynamic Scheduling for Large Language Model Serving》被OSDI 24录用。论文通过对大语言模型&#xff08;LLM&#xff09;推理请求的动态调度&#xff0c;大幅提升了推理服务质量和性价比。 Llumnix是业界首个能灵活在…

第一次构建一个对话机器人流程解析(一)

1.问答机器人的组成 1.1 问答机器人的组成结构图 2. 问答机器人的组成-机器人的个人属性 所谓的机器人一般具备有个人的属性&#xff0c;这些属性固定&#xff0c;形成了机器人的个人偏好 在实现过程中&#xff0c;此处使用一个xml配置文件&#xff0c;配置了机器人的个人年…

如何选购一台云服务器

说明&#xff1a;基于博主本人经常在用云服务学习技术&#xff0c;许多博客里的技术分享也都是在自己购买的云服务器上操作的&#xff0c;本文介绍根据自己的经验&#xff0c;如何选购一台云服务器 选择产商 云服务可以选择阿里云、华为云、腾讯云、百度云&#xff0c;都是几…

296个地级市GDP相关数据(2000-2023年)

GDP相关数据&#xff1a;衡量地区经济活动的综合指标 国内生产总值&#xff08;GDP&#xff09;是衡量一个国家或地区经济规模和发展水平的核心指标。它反映了在一定时期内&#xff0c;所有常住单位生产活动的最终成果。 GDP的种类及其含义&#xff1a; 名义GDP&#xff1a;按…

昆明高校大学智能制造实验室数字孪生可视化系统平台建设项目验收

昆明高校大学智能制造实验室的数字孪生可视化系统平台建设项目&#xff0c;正是在这样的背景下应运而生。项目自启动以来&#xff0c;便受到了校方的高度重视和大力支持。经过数月的紧张筹备和精心实施&#xff0c;项目团队克服了种种技术难题&#xff0c;成功完成了系统的开发…

热题系列9

剑指 Offer 39. 数组中出现次数超过一半的数字 给一个长度为 n 的数组&#xff0c;数组中有一个数字出现的次数超过数组长度的一半&#xff0c;请找出这个数字。 例如输入一个长度为9的数组[1,2,3,2,2,2,5,4,2]。由于数字2在数组中出现了5次&#xff0c;超过数组长度的一半&am…