Network架构2——Self-attention

发布时间:2026/10/14 3:25:46

Network架构2——Self-attention 我们在前面的讨论中输入的都是一个向量那么如果输入的是多个向量输入是一排向量时应该如何处理呢这就是本节课要解决的问题哪些场景的输入是需要用多向量表示呢例如输入一个句子每个单词可以看作一个向量一个句子就是一排长度不一的向量还有一段声音信号也可以看作多个向量的排列表示方法还有其他的例子输出的情况有哪些一输入和输出数量相同,被称为Sequence Labeling但是这样有一个问题就是第一个saw是动词第二个saw是名词那么模型是如何区分的呢通过上下文考虑前后的frame这样我们又出现新的问题我们需要划分一下这个窗口应该有多大考虑范围有多大可以把整个seq作为window吗这样会导致参数变多容易造成overfitting由此我们引入sel-attention技术它可以和FC技术交替使用self-attention的运作方式简单来说就是找各个输入之间的关联计算他们之间的相关性例如计算a1和a2,a3,a4之间的相关性相关性的计算方法如下我们一般经常使用的是左边的方法也就是Dot-product方法下面都会用该方法由此我们可以两两计算相关性但是不要忘记自身也要和自身计算相关性这里计算结果后用softmax标准化其实也可以用其他方法用relu也可以之后根据计算后的相关性来抽取有用的信息谁的相关性越大最后的计算结果就越接近哪个v关于为什么要乘v其他的b2,b3,b4同理进行计算我们可以把ai各自乘积得到的q,k,v拼接起来得到一个大的矩阵以此类推可以得到attention score的矩阵表示方法最后得到self-attention的输出总结self-attention的计算过程扩展multi-head self-attention,这也是我们今天常用的方法核心逻辑是使用不同的relevance,所以在计算q,v,k时要采用不同的方法乘以不同的矩阵目前讲述的self attention有一个问题——从未考虑过位置问题比如在一个句子中动词很少作为第一个单词那么如何把位置的资讯加入其中呢可以使用positional encoding技术就是用一个vector向量定义位置信息这样的位置信息是人为手工定义的一般采用sin cos来定义但是也可能用其他方法表示如下图所示目前还有提出的四个方法下面我们来介绍truncated self-attention当我们要输入的vector非常长时形成的attention matrix会很大由此我们引入truncated self-attention每次只截取一小块片段可以用self attention进行影像处理吗可以的也可以把图片看成一个三维向量输入它和CNN的区别CNN只考虑一个receptive field内的情况但是self-attention是考虑所有区域的情况可以说CNN就是self-attention的特例相对来说self-attention是更flexible的模型那么需要的数据量更大所以在下图2中显示数据量小时CNN的表现效果更好数据量大时self-attention表现效果更好self-attention和RNN对比RNN的性能远不如self-attention之后我们不会讨论RNN了RNN相比于self attention的劣势有会附带一开始数据记忆要一直存储记忆才能后后面的记忆进行关联性计算而且也不能进行同步运算self-ateention在Graph上的应用因为Graph本身有节点和edge所以可以直观的表示两个向量之间的关系二只有一个输出三由机器自己决定输出多少个向量也被称为seq2seqself-attention的变式非常多
延伸阅读

更多相关文章

2026/10/14 3:20:46

Django + Vue电商项目第009讲:Grid响应式|一套代码适配手机、平板与桌面

第8讲用Flex做了4列商品列表。本讲用更现代的Grid重新做,并加上响应式——同一份代码,在手机(375px)、平板(768px)、桌面(1440px)下表现完全合适。 建议先 点赞 + 收藏 + 关注,写响应式布局时随时回查。 一、为什么需要Grid(Flex不够用了吗) Flex是一维布局——一行…

2026/10/14 3:20:46

Codeforces入门阶段需要掌握哪些核心算法

Codeforces入门阶段(对应积分0-1200分)完全不用学复杂算法,只需要掌握以下核心内容,就能稳定拿下Div.2的A、B题,完全适配四年级零基础孩子的学习节奏,和校内奥数知识点高度对齐。 🔢 0-999分必掌…

2026/10/14 3:20:46

OPenCV4.8与OpenCV5.0的区别

OpenCV 5.0 是自 2018 年发布 OpenCV 4 以来最大的一次主版本重大升级。与 OpenCV 4.8 相比,OpenCV 5.0 在深度学习引擎、底层语言标准、架构拆分、数据类型支持等方面进行了全面革新。涉及的核心升级内容如下: 1. 颠覆性的全新 DNN 推理引擎OpenCV 4.8&…

2026/10/14 4:30:50

YOLOv5教室行为检测实战:数据标注、训练调参与部署避坑指南

简介:面向智慧校园场景的YOLOv5教室行为检测系统代码包,主要服务教育信息化开发者、AI初学者及教学管理人员,可解决课堂中人数统计、学生行为检测与老师行为检测等多维管理需求。包体非常轻量,共5个文件,以HTML、JavaS…

2026/10/14 4:30:50

SQL基础查询指南:从查询本质到实际应用,零基础也能快速上手

想要入门数据分析、后端开发、运维,甚至只是想把报表做得灵活一点,SQL 基础查询语句都是绕不开的第一关。我遇到过不少零基础的同学,花一周把网上流传的“命令大全”抄了一遍,结果面对一张真实的订单表时,连“查询金额…

2026/10/14 4:30:50

整机ESD测试中触控IC击伤:注入路径判断与供应商整改全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 4:30:50

只有两种情况:用二分法思维快速定位复杂问题

1. 从一个凌晨两点的故障说起:我发现问题只有两类做技术或者带项目的人,迟早会碰到那种让人头皮发麻的瞬间:一个系统莫名其妙地挂了,你翻了三小时日志,问了五个人,试了十种办法,还是不知道问题到…

2026/10/14 4:30:50

Linux中nameserver 127.0.1.1全解析:从由来、原理到正确配置方法

如果你在 Linux 上排查网络问题,打开 /etc/resolv.conf 后看到一行nameserver 127.0.1.1,大概率会觉得它有点眼熟,又有点说不清道不明。它不像是 192.168.x.x 那样一目了然的局域网地址,也不像 127.0.0.1 那样张口就能说出“这是本…

2026/10/14 4:25:50

Stata矩阵计算入门:从matrix命令到Mata的进阶指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 5:19:27

Python调用Gemini Structured Outputs实现工单路由门禁

客服工单最怕的不是模型“答错一句话”,而是它给出一段看起来合理的说明,程序却从中猜错优先级。通俗做法是:要求模型只交 JSON(JavaScript Object Notation,轻量数据格式),再让代码验证它。Gem…

2026/10/13 17:09:18

Spring Boot超市进销存系统毕设实战:从需求拆解到答辩通关

最近带的一个学生项目组里,有A同学跑来问我:选什么毕设题目最稳妥,既能让评审老师觉得工作量够,又不会在答辩时被问到语无伦次。我第一反应就是推荐基于Spring Boot的超市仓库管理系统——也就是超市进销存系统。这个题目乍一看平…

2026/10/14 2:32:55

Flutter StatefulWidget 生命周期核心解析

很多刚开始接触 Flutter 的朋友,在看完一堆“Hello World”和基础组件之后,大概率都会撞上同一堵墙:StatefulWidget 里那堆 initState、build、dispose 方法,到底什么时候被调用?为什么顺序是那样?在里面到…

2026/10/14 0:00:33

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:33

macOS/iOS高精度计时:mach_absolute_time原理与实战

1. 项目概述:为什么mach_absolute_time是 macOS/iOS 时间测量的“黄金标准”在 macOS 和 iOS 开发中,我见过太多人用CFAbsoluteTimeGetCurrent()或NSDate.timeIntervalSinceReferenceDate做性能打点,结果在高精度场景下被系统时钟跳变、NTP 同…

2026/10/14 0:00:33

SCORM课件演示与测试全解析:从API通信到自动化验证

简介:这是一套遵循SCORM标准的交互式课件演示与测试资源,面向E-Learning课程开发者、LMS平台测试人员及在线教学从业者,用于验证课件在不同学习管理系统中的识别、传递与跟踪能力。压缩包共28个文件,约12.07MB,以swf动…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑