机器学习(李宏毅)——self-Attention

一、前言

本文章作为学习2023年《李宏毅机器学习课程》的笔记,感谢台湾大学李宏毅教授的课程,respect!!!

二、大纲

  • 何为self-Attention?
  • 原理剖析
  • self-Attention VS CNN、RNN、GNN

三、何为self-Attention?

2014年就提出,但发扬光大是在2017年的Transformer 论文《Attention Is All You Need》。广泛应用在seq2seq模型中,这里就不得不举几个seq2seq的应用场景。

  • seq2seq(sequence to sequence)
    顾名思义就是输入是序列,输出也是序列,简言之输入是一排向量,输出是另外一排向量,例如:

在这里插入图片描述

四、原理剖析

  • 划重点:self-attention的精髓就是考虑上下文语义信息。

那如何考虑上下文语义信息呢? 对,就是计算相关性。
在这里插入图片描述
例如输入是一个句子,那就不单单考虑一个词了,而是和句子中不同位置的词语计算相关性,对应输出得分。

那如何计算相关性呢?
那就有百百中做法,现在举两种常见方法:
在这里插入图片描述
1、Dot-product
设有两个矩阵Wq和Wk,输入经过它们得到输出,再做点乘能够计算成输入的相关性a,具体这两个矩阵长啥样就是我们要训练出来的。

2、Additive
设有两个矩阵Wq和Wk,输入经过它们得到输出,然后相加并送入激活函数tanh,再经过W得到输出a。

感觉抽象的话,就只需要记住这步操作就是要把计算相关性的矩阵参数学出来,这是目的。

知道怎么计算了,那就实做一下。
在这里插入图片描述
说明: 要计算a1和a2、a3、a4的相关性,那就采用上述的dot-product方法两两计算,再送入softmax。q常称为query,k称为key。

接下来,再找一个v矩阵,可以理解v这个矩阵是输入的资讯,根据q和k内积的相关性得分来抽取资讯。
在这里插入图片描述
位置咨询(Positional Encoding)
在这里插入图片描述
位置资讯就是在输入时候加入e,是人为设置的。

以上就是self-attention的原理了。

小结
self-attention就是找三个矩阵q、k、v,前两个用于计算相关性,后一个的资讯信息。一言以蔽之就是根据相关性把资讯抽出来。优点是平行计算,加快速度。

变种(Multi-head Self-attention)

  • multi-head Self-attention
    就是q,k,v可以分成多个,相互独立进行运算
    在这里插入图片描述

五、self-Attention 对比

self-Attention VS CNN
self-attention 应用在目标检测、CNN上,CNN的感受野考虑的是周围8个像素的资讯,self-attention则计算整图并动态生成感受野,其实就是挑选与当前像素相关的像素。
在这里插入图片描述

self-Attention VS RNN
RNN一步步往下,并不是并行化,而self-attention并行给出输出,一次到位速度取胜。
在这里插入图片描述

self-Attention VS GNN
因为图有边相接,所以self-attention与哪个节点有关可以直接表达出来。
在这里插入图片描述

六、小结

至此,self-attention的技术介绍完毕,整体理解运算过程,记住q,k,v三个主要的矩阵,重点应用于seq2seq模型,尤其是现在爆红的chatGPT也是用的Transformer,而transformer的核心就是self-attention。

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

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

相关文章

RagFlow + Docker Desktop + Ollama + DeepSeek-R1本地部署自己的本地AI大模型工具

前期准备 首先,我们需要下载 Ollama 以及配置相关环境。 Ollama 的 GitHub仓库 (https://github.com/ollama/ollama)中提供了详细的说明,简单总结如下: Step1:下载 Ollama 下载(https://ollama.com/dow…

【数据结构】双向链表(真正的零基础)

链表是一种物理存储单元上非连续、非顺序的存储结构。数据元素的逻辑顺序是通过指针的链接来实现的!在上篇我们学习了单向链表,而单向链表虽然空间利用率高,插入和删除也只需改变指针就可以达到!但是我们在每次查找、删除、访问..…

网络编程-day5-sqlite3数据库

思维导图 服务器 #include <stdio.h> #include <string.h> #include <unistd.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <pthread.h> #include <semaphore.h>…

Spring AI 介绍

文章来源&#xff1a;AI 概念 (AI Concepts) _ Spring AI1.0.0-SNAPSHOT中文文档(官方文档中文翻译)|Spring 教程 —— CADN开发者文档中心 本节介绍 Spring AI 使用的核心概念。我们建议仔细阅读它&#xff0c;以了解 Spring AI 是如何实现的。 模型 AI 模型是旨在处理和生成…

【Elasticsearch】监控与管理:集群监控指标

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…

黑马Redis详细笔记(实战篇---短信登录)

目录 一.短信登录 1.1 导入项目 1.2 Session 实现短信登录 1.3 集群的 Session 共享问题 1.4 基于 Redis 实现共享 Session 登录 一.短信登录 1.1 导入项目 数据库准备 -- 创建用户表 CREATE TABLE user (id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT 用户ID,phone …

大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡

大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡 背景 前端开发接口请求&#xff0c;调试&#xff0c;联调&#xff0c;接入数据&#xff0c;前端必不可少工具&#xff0c;postman是一个非常好…

开源身份和访问管理方案之keycloak(一)快速入门

文章目录 什么是IAM什么是keycloakKeycloak 的功能 核心概念client管理 OpenID Connect 客户端 Client Scoperealm roleAssigning role mappings分配角色映射Using default roles使用默认角色Role scope mappings角色范围映射 UsersGroupssessionsEventsKeycloak Policy创建策略…

java项目之直销模式下家具工厂自建网站源码(ssm+mysql)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的直销模式下家具工厂自建网站源码。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 直销模式下家具…

C基础(十)动态内存分配和结构体

动态内存分配 堆区与栈区空间&#xff1a;申请堆区空间需手动操作&#xff0c;使用完要手动释放&#xff1b;栈区空间由系统自动分配和释放。相关函数与概念 malloc&#xff1a;从堆区申请指定字节数的空间&#xff0c;返回首地址&#xff0c;需搭配头文件#include <stdlib.…

图7.1-7.6《分析模式》第7章使用会计模型-原图和UML图对比

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 图7.1 TT示例的包。 账户包持有抽象的会计类型&#xff0c;电话服务包为这个特定领域扩展这些类型。 图7.2 TT的账户模型。 7.3 电话服务的结构模型。 图7.4 创建新电话服务的事件图。…

大模型基本原理(四)——如何武装ChatGPT

传统的LLM存在几个短板&#xff1a;编造事实、计算不准确、数据过时等&#xff0c;为了应对这几个问题&#xff0c;可以借助一些外部工具或数据把AI武装起来。 实现这一思路的框架包括RAG、PAL、ReAct。 1、RAG&#xff08;检索增强生成&#xff09; LLM生成的内容会受到训练…

Qt监控设备离线检测/实时监测设备上下线/显示不同的状态图标/海康大华宇视华为监控系统

一、前言说明 监控系统中一般有很多设备&#xff0c;有些用户希望知道每个设备是否已经上线&#xff0c;最好有不同的状态图标提示&#xff0c;海康的做法是对设备节点的图标和颜色变暗处理&#xff0c;离线的话就变暗&#xff0c;有可能是加了透明度&#xff0c;而大华的处理…

数据结构-栈和队列的应用

目录 前言一、栈的应用二、队列的应用&#xff08;农夫过河问题&#xff09;2.1 问题描述2.2 算法选择2.3 算法精化2.4 算法实现2.5 问题结果 总结 前言 本篇文章使用两个例子说明栈和队列的应用&#xff0c; 对于迷宫问题&#xff0c;使用栈实现深度优先策略解决迷宫问题&…

Acwing-基础算法课笔记之基础算法(差分)

Acwing-基础算法课笔记之基础算法&#xff08;差分&#xff09; 一、一维差分1、差分的概念2、差分思想 二、二维差分操作流程 一、一维差分 1、差分的概念 对于一个给定的序列a&#xff0c;它的差分序列b定义为&#xff1a; b [ 1 ] a [ 1 ] b[1]a[1] b[1]a[1]&#xff0c…

SkyWalking 10.1.0 实战:从零构建全链路监控,解锁微服务性能优化新境界

文章目录 前言一、集成SkyWalking二、SkyWalking使用三、SkyWalking性能剖析四、SkyWalking 告警推送4.1 配置告警规则4.2 配置告警通知地址4.3 下发告警信息4.4 测试告警4.5 慢SQL查询 总结 前言 在传统监控系统中&#xff0c;我们通过进程监控和日志分析来发现系统问题&…

【动态规划】风扫枯杨,满地堆黄叶 - 9. 完全背包问题

本篇博客给大家带来的是完全背包问题之动态规划解法技巧. &#x1f40e;文章专栏: 动态规划 &#x1f680;若有问题 评论区见 ❤ 欢迎大家点赞 评论 收藏 分享 如果你不知道分享给谁,那就分享给薯条. 你们的支持是我不断创作的动力 . 王子,公主请阅&#x1f680; 要开心要快乐顺…

MyBatis的工作流程是怎样的?

大家好&#xff0c;我是锋哥。今天分享关于【MyBatis的工作流程是怎样的&#xff1f;】面试题。希望对大家有帮助&#xff1b; MyBatis的工作流程是怎样的&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 MyBatis 的工作流程可以分为几个主要的步骤&…

python-leetcode 25.环形链表

题目&#xff1a; 给定一个链表的头节点head,判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪next指针再次到达&#xff0c;则链表中存在环。为了表示给定链表中的环&#xff0c;评测系统内部使用整数pos来表示链表尾连接到链表中的位置&#xff08;…

瑞芯微开发板/主板Android调试串口配置为普通串口方法 深圳触觉智能科技分享

本文介绍瑞芯微开发板/主板Android调试串口配置为普通串口方法&#xff0c;不同板型找到对应文件修改&#xff0c;修改的方法相通。触觉智能RK3562开发板演示&#xff0c;搭载4核A53处理器&#xff0c;主频高达2.0GHz&#xff1b;内置独立1Tops算力NPU&#xff0c;可应用于物联…