【机器学习300问】132、自注意力机制(Self-Attention)和传统注意力机制(Attention)的区别?

        最近学习注意力机制的时候,发现相同的概念很多,有必要给这些概念做一下区分,不然后续的学习可能会混成一团。本文先区分一下自注意力机制传统注意力机制。我会先直接给出它们之间有何区别的结论,然后通过一个例子来说明。

【机器学习300问】131、什么是Attention机制?简单Seq2Seq模型加上注意力机制为例说明。icon-default.png?t=N7T8https://blog.csdn.net/qq_39780701/article/details/139905142

一、注意力机制和自注意力机制的区别

(1)关注的对象不同

  • 注意力机制通常设计两个不同的序列
  • 自注意力机制则是在单一序列内部操作

(2)应用场景不同

  • 注意力机制常用在跨序列的信息传输任务中,当我们说“传统注意力机制”的时候,其实是指全局注意力机制(Global Attention),比如机器翻译任务。
  • 自注意力机制则多用在需要理解序列内部结构的任务,比如自然语言处理中的句子表示学习任务,Transformer架构通过自注意力机制直接建模句子中所有单词之间的相互依赖关系,生成高质量的句子表示。

(3)计算方式不同

  • 注意力机制涉及跨序列的匹配和权重分配,通常在编码器和解码器之间构建一个注意力分布,强调输入序列中对生成特定输出最相关的部分。

  • 自注意力机制是计算序列内所有元素两两之间的相似性,然后基于这些相关性重新加权序列中的元素,以增强对序列全局上下文的理解。

二、举例说明两者的区别

(1)传统注意力机制的例子

        假设我们正在处理英译法机器翻译任务,源句为"The movie was boring.",在典型的编码器-解码器架构中,源句经过编码器处理,转化为一系列向量表示,每个向量对应英语句子中的一个单词。

        在生成法语句子的第一个词时,解码器会使用注意力机制“看”英语句子的不同部分。比如,如果第一个法语词应该是“Le”,这很可能对应英语的定冠词“The”。此时,解码器(作为查询)会查看英语序列中的各个单词(作为键),并基于它们与“Le”这个目标词的相关性来分配注意力权重。

        最终,它可能会发现“the”这个英语单词与当前输出最相关,于是给予它更高的权重,而其它单词权重较低。这样,解码器就能更加关注与当前翻译任务最相关的输入部分。

(2)自注意力机制的例子

        假设我们在分析一个句子的情感色彩:“The movie was boring but the acting was superb.” 使用自注意力机制,我们不是在不同序列间寻找关联,而是在这个句子内部探索词语之间的相互关系。

        在自注意力的计算过程中,对于句子中的每个词(比如“boring”),模型会计算这个词与句子中所有其他词(包括它自己)的相关性。这意味着“boring”这个词会基于它与“movie”、“was”、“but”等词的上下文关系来重新加权。在这个例子中,“boring”与“movie”关系紧密,因为它修饰“movie”,所以模型可能会给“movie”较高的权重,而像“superb”这样的词由于情感色彩相反,可能获得较低的权重。通过这样的过程,每个词都被赋予了一个基于其在句子中角色和上下文的新表示,从而帮助模型更好地理解整个句子的含义。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024最新!将mysql的数据导入到Solr

Solr导入mysql的数据 如何安装导入数据前准备配置Solr的Jar包以及Mysql驱动包1.1、将solr-8.11.3\dist下的两个包进行移动1.2、将mysql-connect包也移动到该位置1.3、重启Solr项目 配置xml2.1、第一步我们需要创建核心2.2、第二步修改xml(这里是结合19年的教程)2.3、 创建data-…

【力扣】有效的字母异位词

🔥博客主页: 我要成为C领域大神🎥系列专栏:【C核心编程】 【计算机网络】 【Linux编程】 【操作系统】 ❤️感谢大家点赞👍收藏⭐评论✍️ 本博客致力于知识分享,与更多的人进行学习交流 给定两个字符串 s …

嵌入式 Linux 设备刷系统具体组成

嵌入式 Linux 设备刷系统具体组成 1 介绍1.1 概述1.2 嵌入式 Linux 的组成1.3 U-Boot1.4 Linux 内核1.5 设备树1.6 根文件系统 参考 1 介绍 1.1 概述 一个完整的 linux 系统,通常包含了 U-Boot、kernel、设备树以及根文件系统。 1.2 嵌入式 Linux 的组成 1.3 U-…

Java源码实现《植物大战僵尸》

前言 学Java的朋友们,福利来了,今天小编给大家带来了一款 植物大战僵尸源码,看图: 视频演示 环境JDK1.8 类继承UML图 源码实现 我们先从main函数看起,继承了javafx.application.Application。JavaFx是Java图形化界面技术AWT、S…

30分钟速通ROS联合Webots仿真实战

写在前面: 本文是ROS联合Webots仿真实战教程,不包含ROS环境安装配置教程,ROS环境安装配置教程可以参考1.2.4 安装 ROS Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程 另本文所用版本如下: ubuntu版本:20…

Github 2024-06-28 Java开源项目日报Top9

根据Github Trendings的统计,今日(2024-06-28统计)共有9个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Java项目8非开发语言项目1HTML项目1《Hello 算法》:动画图解、一键运行的数据结构与算法教程 创建周期:476 天协议类型:OtherStar数量:63556…

基于 Paimon 的袋鼠云实时湖仓入湖实战剖析

在当今数据驱动的时代,企业对数据的实施性能力提出了前所未有的高要求。为了应对这一挑战,构建高效、灵活且可扩展的实时湖仓成为数字化转型的关键。本文将深入探讨袋鼠云数栈如何通过三大核心实践——ChunJun 融合 Flink CDC、MySQL 一键入湖至 Paimon …

海思SS928/SD3403开发笔记4——u盘挂载

首先一定要将u盘格式化成fat32。 挂载 mkdir /mnt/usb mount /dev/sda1 /mnt/usb成功示意图: 取消挂载 umount /mnt/usb

Python生成图形验证码

文章目录 安装pillow基本用法生成代码 安装pillow pip install pillow 基本用法 特殊字体文字 如下所示,将下载下来的ttf字体文件放到py文件同一文件夹下 分享一个免费下载字体网站:http://www.webpagepublicity.com/free-fonts.html 我选的字体是Baj…

[数据集][目标检测]游泳者溺水检测数据集VOC+YOLO格式4599张2类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):4599 标注数量(xml文件个数):4599 标注数量(txt文件个数):4599 标注…

LearnOpenGL - Android OpenGL ES 3.0 使用 FBO 进行离屏渲染

系列文章目录 LearnOpenGL 笔记 - 入门 01 OpenGLLearnOpenGL 笔记 - 入门 02 创建窗口LearnOpenGL 笔记 - 入门 03 你好,窗口LearnOpenGL 笔记 - 入门 04 你好,三角形OpenGL - 如何理解 VAO 与 VBO 之间的关系LearnOpenGL - Android OpenGL ES 3.0 绘制…

千年织锦:中国古代包文化的辉煌历程与现代传承

追溯至远古,我们的祖先就开始利用自然界的恩赐——皮革、植物纤维等,制作出最原始的包袋。随着时间的推移,技艺的提升,包的材质逐渐丰富起来,从粗糙到精致,从简单到复杂,每一次材质的革新都是人…

【Django】网上蛋糕项目商城-首页

概念 本文在上一文章搭建完数据库,以及创建好项目之后,以及前端静态文件后,对项目的首页功能开发。 后端代码编写 这里我们使用pymysql模块对数据库进行操作,获取数据。因此需要在dos窗口使用以下指令下载该库文件 pip instal…

netconf_h3c_ac

# -*- coding:utf-8 -*- import xmltodict from ncclient import manageripACip地址, mmanager.connect(hostip,port830,username账号,password密码,hostkey_verifyFalse,device_params{name: h3c},allow_agentFalse,look_for_keysFalse,timeout30)data_xml <top xmlns&qu…

数据库管理系统(DBMS)

一.数据库管理系统 1.简介 数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件&#xff0c;用于建立、使用和维护数据库&#xff0c;简称DBMS。它对数据库进行统一的管理和控制&#xff0c;以保证数据库的安全性和完整性。用户通过DBMS访问数据库中…

ASP.NETMVC-简单例子-数据库查询+razor使用+项目发布

环境&#xff1a; win10&#xff0c;SQL Server 2008 R2 参考&#xff1a; asp.net mvc框架之EF的使用 - black娃 - 博客园 https://www.cnblogs.com/fjiqiang/p/11131365.html 目录 数据库查询要求思路操作 razor使用项目发布要求实现 数据库查询 要求 从服务器的数据库中查…

springboot 集成阿里云 OSS

引入依赖 <!-- 阿里云oss依赖 --> <dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.9.1</version> </dependency><?xml version"1.0" encoding"…

OWIN(.NET 开放 Web 接口)的幕后故事

在本文中&#xff0c;我们将了解 OWIN 是什么以及它的创建历史。本文将帮助那些想知道它背后的人。 我们将了解一群人如何为 .NET 社区带来宝贵的想法。同样重要的是&#xff0c;微软已经接受了 OWIN&#xff0c;而 ASP.NET Core 基本上就是建立在这个想法之上的。 简单来说&…

pppd 返回错误码 含义

错误码 00&#xff1a; pppd已经断开&#xff0c;或者已经成功建立连接后请求方又中 断了。 01&#xff1a; 发成了一个严重错误&#xff0c;例如系统调用失败或者访问非法内存。 02&#xff1a; 处理给定操作是检测到错误&#xff0c;例如使用两个互斥的操作。 03&#xff1a;…

live555的核心数据结构值之闭环双向链表

live555是采用单进程,单线程的服务器,能够同时支持多个客户端连接,并且有条不紊的进行媒体流的调度,很大一部分原因在于对数据结构的巧妙应用。 下面介绍live555核心的数据结构:闭环双向链表 什么是闭环双向链表? 描述: 一个节点保存有前一个节点的地址和后一个节点的…