【PyTorch][chapter 26][李宏毅深度学习][attention-1]

前言:

          attention 在自然语言处理,声音处理里面是一个很重要的技巧.

   attention 要解决的是输入的向量长度不定.

  

   根据输入输出的不同,分为三种场景:

        输入N个向量,输出N个向量,这是本章的重点

        输入N个向量,输出向量不定

        输入N个向量, 输出M个向量


目录:

  1.     相关方案
  2.    self-attention
  3.    code实现


一   相关方案

    1.1  全连接网络

      输入: N个向量

      模型: N个全连接网络,每个FC模型对应一个向量

       输出: N个向量

       缺点:

       是当前向量无法获得其他向量的信息

    

   1.2 问题

       输入: N个向量

       模型: N个全连接网络,每个全连接网络,输入N个向量.

       输出:  N个向量

       缺点:

                    向量的个数定义Windows窗口.如果窗口特别大,计算量特别大。

如果windows 窗口特别小,无法采集到整个Input sequence Labeling 

     

    需要开的窗口特别大


二 self-attention

     3.1   模型架构

      

      输入   N个向量

       输出:  N 个向量

      模型: Self-attention

  3.2  主要流程

    

   1.1 计算相关系数\alpha

        两个向量的相似度有很多表达方式,例如余弦

   attention 是通过self-attention 来计算,比如要计算a^1,a^2之间的相似度

   

   q^1=a^1W_Q

  k^2=a^wW_k

  \alpha_{1,2}=q^1 \odot k^2

其中:W_Q,W_k 是代表query,key 矩阵通过训练出来的

Query:查询向量,表示要关注或检索的目标

Key:    键向量,表示要与查询向量进行匹配或比较的源

      还有种Additive 结构

2.2   通过相关系数 \alpha,计算attention-score

            同理依次算出来跟其它向量之间的相似度

       

      对相似度矩阵,通过softmax 归一化后,得到attention-score.

     

    attention-score,本质上是代表权重系数

2.3  根据attention-score , 重新计算向量

      Value:值向量,表示要根据查询向量和键向量的匹配程度来加权求和的信息

      v^1=a^1W_v 

     通过attention-score 加权求和得到b^1


三  代码

  • Query:查询向量,表示要关注或检索的目标 W_{Q}
  • Key:键向量,表示要与查询向量进行匹配或比较的源W_K
  • Value:值向量,表示要根据查询向量和键向量的匹配程度来加权求和的信息W_V
# -*- coding: utf-8 -*-
"""
Created on Tue Jul  9 21:15:05 2024@author: cxf
"""# -*- coding: utf-8 -*-
"""
Created on Thu Jul  4 10:37:27 2024@author: chengxf2
"""import torch
import torch.nn.functional as F
import torch.nn as nnclass Attention(nn.Module):def __init__(self, in_features,query_features,out_features):super(Attention, self).__init__()self.QUERY = nn.Linear(in_features,  query_features)self.KEY  =  nn.Linear(in_features,  query_features)self.VALUE = nn.Linear(in_features,  out_features)def forward(self,inputs):Q = self.QUERY(inputs)K = self.KEY(inputs)     V = self.VALUE(inputs)#计算attentiond_k= Q.shape[-1]alpha = torch.matmul(Q, K.T)/d_k**0.5attention_score =F.softmax(alpha,dim=1)print("\n attention_score:",attention_score)out = torch.matmul(attention_score, V)row_index =1row_sum = torch.sum(attention_score[row_index,:])print("\n row_sum ",row_sum)return outseq_len =5
in_features = 7
query_features =4
out_features = 3X = torch.randn((seq_len, in_features))
net =Attention(in_features, query_features, out_features)out = net(X)

参考:

Transformer终于有拿得出手得教程了! 台大李宏毅自注意力机制和Transformer详解!通俗易懂,草履虫都学的会!_哔哩哔哩_bilibili

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

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

相关文章

施罗德数列SQL实现

在组合数学中,施罗德数用来描述从(0,0)到(n,n)的格路中,只能使用(1,0)、(0,1)、(1,1)三种移动方式,始终位于对角线下方且不越过对角线的路径数 DECLARE n INT 10 DECLARE i INT DECLARE rst INT DECLARE old INT1CREATE TABLE #rst (i INT ,rst int )INSERT INTO #rst values(…

3-7 使用深度学习解决温度即示数问题

3-7 使用深度学习解决温度即示数问题 直接上代码 %matplotlib inline import matplotlib.pyplot as plt import numpy as np import torch torch.set_printoptions(edgeitems2, linewidth75)设置Jupyter Notebook在单元格中内嵌显示图像,导入所需库并设置PyTorch的…

阿里发布大模型发布图结构长文本处理智能体,超越GPT-4-128k

随着大语言模型的发展,处理长文本的能力成为了一个重要挑战。虽然有许多方法试图解决这个问题,但都存在不同程度的局限性。最近,阿里巴巴的研究团队提出了一个名为GraphReader的新方法,通过将长文本组织成图结构,并利用…

2,区块链、数字货币及其应用场景(react+区块链实战)

2,区块链、数字货币及其应用场景(react区块链实战) 一、什么是区块链?1 ibloackchain(1)安装ibloackchain(2)Blance查询余额(3)Mine挖矿(4&#x…

JavaScript中的拷贝技术探秘:浅拷贝与深拷贝的奥秘

最新技术资源(建议收藏) https://www.grapecity.com.cn/resources/ 前言 JavaScript中的浅拷贝和深拷贝是非常重要的概念,它们在处理对象和数组时具有不同的作用。在编程中,经常需要复制数据以便进行各种操作,但必须注…

小波与傅里叶变换的对比(Python)

直接上代码,理论可以去知乎看。 #Import necessary libraries %matplotlib inline import numpy as np import matplotlib.pyplot as plt import seaborn as snsimport pywt from scipy.ndimage import gaussian_filter1d from scipy.signal import chirp import m…

基于 sftp 的 NAS (局域网文件存储服务器)

局域网 NAS (文件存储服务器) 的基本功能有: 能够存储文件, 同时能够通过多个设备访问 (上传/下载) 文件. 这些功能通过 sftp 可以实现. sftp 是基于 SSH 的文件传输协议, SSH 全程加密传输, 使用 公钥 认证 (不使用密码/口令), 能够提供很高的安全性. 上文说到, 在 LVM 和 bt…

谷粒商城-个人笔记(集群部署篇三)

前言 ​学习视频:​Java项目《谷粒商城》架构师级Java项目实战,对标阿里P6-P7,全网最强​学习文档: 谷粒商城-个人笔记(基础篇一)谷粒商城-个人笔记(基础篇二)谷粒商城-个人笔记(基础篇三)谷粒商城-个人笔记(高级篇一)谷粒商城-个…

古建筑倾斜在线监测系统:科技守护历史的创新实践

​ ​​在文化遗产保护的广阔领域中,古建筑的健康监测占据着举足轻重的地位。然而,传统的监测方法往往受限于布线复杂、安装难度大以及对古建筑本体可能造成的伤害等问题。近年来,一种新型的古建筑倾斜在线监测系统应运而生,它…

Halcon 模糊圆边的找圆案例

Halcon 模糊圆边的找圆案例 基本思路 1.将图像转成灰度图像 2.再观察要找到的区域的灰度值变化,找到前景与背景的具体数值。 3.根据找到的前景与背景的具体数值,增强图像对比度。(使图像变成黑白图片) 4.使用灰度直图工具进行阈值…

用Vue3和Plotly.js绘制交互式3D散点图

本文由ScriptEcho平台提供技术支持 项目地址:传送门 使用 Plotly.js 创建 2D 密度图 应用场景介绍 密度图是一种可视化数据分布的图表,它显示了数据点的密度在不同区域的变化情况。在许多科学和工程领域中,密度图被广泛用于探索和分析数据…

5G(NR) NTN 卫星组网架构

5G(NR) NTN 卫星组网架构 参考 3GPP TR 38.821 5G NTN 技术适用于高轨、低轨等多种星座部署场景,是实现星地网络融合发展的可行技术路线。5G NTN 网络分为用户段、空间段和地面段三部分。其中用户段由各种用户终端组成,包括手持、便携站、嵌入式终端、车…

git撤销/返回到某次提交(idea工具 + gitbush)

不多说废话,直接展示使用。 方法一:使用idea工具进行返回 准备某次过度提交 使用idea打开git log 找到要回去的版本 点击右键选到reset 模式选hard,强制回滚 这个时候本地代码已经回归你指定的版本了。 这个时候再进行强制推送&#xff0c…

Drools开源业务规则引擎(三)- 事件模型(Event Model)

文章目录 Drools开源业务规则引擎(三)- 事件模型(Event Model)1.org.kie.api.event2.RuleRuntimeEventManager3.RuleRuntimeEventListener接口说明示例规则文件规则执行日志输出 4.AgentaEventListener接口说明示例监听器实现类My…

09 docker 安装tomcat 详解

目录 一、安装tomcat 1. tomcat镜像的获取 2. docker创建容器实列 3. 访问测试 404错误 4. 解决方案 5. 使用免修改版容器镜像 5.1. 运行实列的创建 5.2. 出现问题及解决: 6. 验证 OK 一、安装tomcat 1. tomcat镜像的获取 docker search tomcat #docker …

SCI二区TOP|蜘蛛黄蜂优化算法(SWO)原理及实现【免费获取Matlab代码】

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献5.代码获取 1.背景 2023年,M Abdel-Basset受到蜘蛛黄蜂优化社会行为启发,提出了蜘蛛黄蜂优化算法(Spider Wasp Optimizer, SWO)。 2.算法原理 2.1算法思想 S…

视频监控技术在食品安全监管中的关键应用

视频监控技术在食品安全监管中的关键应用 1、视频监控技术在食品安全监管中的作用 在食品安全监管中,视频监控技术发挥着不可替代的作用。通过安装视频监控系统,可以实现对食品生产、运输、储存等各个环节的实时监控和录像存储。这不仅有助于监管部门及…

Linux的前世今生

Unix的起源和发展 1969年,AT&T贝尔实验室的Ken Thompson和Dennis Ritchie等人开发了Unix操作系统。Unix的设计理念强调小而简洁的工具,文本流和系统模块化,这些理念后来成为Linux开发的重要基础。1973年,Unix用C语言重新编写…

深度学习-数学基础(四)

深度学习数学基础 数学基础线性代数-标量和向量线性代数-向量运算向量加和向量内积向量夹角余弦值 线性代数-矩阵矩阵加法矩阵乘法矩阵点乘矩阵计算的其他内容 人工智能-矩阵的操作矩阵转置(transpose)矩阵与向量的转化 线性代数-张量(tensor…

卷技术还是卷应用?李彦宏给出了明确答案

如何理解李彦宏说的“不要卷模型,要卷应用” 引言 7月4日,2024世界人工智能大会在上海世博中心召开。百度创始人兼CEO李彦宏在产业发展主论坛上呼吁:“大家不要卷模型,要卷应用!”这句话引起了广泛讨论。李彦宏认为&a…