首页 > 其他分享 >attention学习-课程笔记

attention学习-课程笔记

时间:2023-06-16 17:34:42浏览次数:43  
标签:layer self attention 笔记 课程 计算 query 输入

attention层计算过程:

相似度函数fatt计算输入X和查询向量q之间的相似度e;

相似度e经过softmax计算得到权重 a。  向量e和a的长度与输入X的第一个维度相同。

权重a与输入X相乘,得到输出y。

相似度计算可使用 点积dot prodecut,由于输入X的维度通常较高,q.X值会很大,因此使用sqrt(Dq)进行normailize,Dq是数据的长度。

query vector查询向量可以有多个,即类似下图右部分有多个s0, s1, ...。   这样可以使用矩阵运算 加快计算速度,

 输入X的2种使用方式:1. 计算注意力相似度 每个x与每个q相乘。 2. 计算输出Y,输入x与注意力权重a相乘。上述两个过程由两个function进行计算。

使用的是同一个输入X,可以将上述过程分隔开,分别增加两个可以学习的参数矩阵Wk、Wv,将输入X转成2个不同的矩阵,K=XWk,  V=XWv。好处是可以让模型更加flexibility自由的使用其输入数据X,attention layer层的输出Y和计算相似度时的过程更加独立。

自注意力层self-attention-layer:输入X中各向量xi与其他部分xj的关系。与上图相比 标红的部分是多出来的,即增加了query matrix查询权重矩阵Wq( 同样需要训练更新)。正常注意力层中(上图) query matrix Q是给定的,自注意力层的Q是通过输入X得到的。

self-attention-layer对输入X的顺序不敏感,即改变X1 X2 X3的顺序 并不影响相应Y的值。 self attention layer is doing that you get a set of vectors it compares them all with each other and then gives you another set of vectors, and dosenot know what order of the input X

 

 Masked self-attention layer:比如只想让当前输入xi看到过去的输入x1..xi,不能看到未来的输入xi+1...。 下图中Eij是Qi 与 Kj的乘积。每一行是Ki计算得到的,每一列是Qj计算得到的。E12与Q2有关,E13与Q3有关,将E12、E13进行mask掩盖,这样输入Q1就无法看到Q2 Q3的信息了。

 多头注意力层:两个超参数 query matrix的维度Dq,heads的个数H。

 self-attention计算示例:attention weights: 图像中每个位置ij,与其他位置的关联程度或者叫attention程度。然后将其与 Values矩阵做运算。

 RNN、1D卷积、self-attention三种序列处理方法的对比

 

Transformer架构:

transformer block如下图:layer normalization层独立normalize每个vector,不会对self-attention层输出的vectors做任何interaction处理。

 

标签:layer,self,attention,笔记,课程,计算,query,输入
From: https://www.cnblogs.com/wieneralan/p/17486111.html

相关文章

  • 【阅读笔记】Anchored Neighborhood Regression for Fast Example-Based uper Resolut
    论文信息[AnchoredNeighborhoodRegressionforFastExample-BaseduperResolution]-TIMOFTER,2013,IEEEInternationalConferenceonComputerVision前置内容邻域嵌入(NeighborEmbedding,NE)是“样本-样本”映射,在训练样本中寻找测试样本的相似邻居特征样本,计算量略大。......
  • 打工笔记--------------------------弄了一个还不错的NPOI的helper类
    `usingNPOI.HSSF.UserModel;usingNPOI.SS.UserModel;usingNPOI.SS.Util;usingSystem;usingSystem.Collections.Generic;usingSystem.Data;usingSystem.IO;usingSystem.Linq;usingSystem.Text;namespaceUtils.Public{publicpartialclassNPOIHelper{/......
  • 成为Spring Boot大师:推荐一门精选视频课程
    SpringBoot是Java生态系统中备受追捧的开发框架之一,它简化了Java应用程序的搭建和配置过程,使开发者能够更快速、高效地构建强大的应用程序。如果你希望在SpringBoot领域中迈向专家级水平,并且想要通过一门优质的视频课程来加速你的学习过程,我们向你推荐以下精选课程:链接:https://w......
  • 成为Spring Boot大师:推荐一门精选视频课程
    SpringBoot是Java生态系统中备受追捧的开发框架之一,它简化了Java应用程序的搭建和配置过程,使开发者能够更快速、高效地构建强大的应用程序。如果你希望在SpringBoot领域中迈向专家级水平,并且想要通过一门优质的视频课程来加速你的学习过程,我们向你推荐以下精选课程:链接:https://......
  • Linux终端快捷键笔记
    Linux快捷键: Tab  补全机制,可以补全文件名以及命令 ctrl+c 强制中断当前命令程序 ctrl+x 暂停终端当前运行的程序,fg命令可以恢复暂停的程序 ctrl+a 光标迅速回到行首 ctrl+e 光标迅速回到行尾 ctrl+u 剪切(删除)当前光标前的......
  • 1494. 并行课程 II
    给你一个整数 n 表示某所大学里课程的数目,编号为 1 到 n ,数组 relations 中, relations[i]=[xi,yi] 表示一个先修课的关系,也就是课程 xi 必须在课程 yi 之前上。同时你还有一个整数 k 。在一个学期中,你最多 可以同时上k 门课,前提是这些课的先修课在之前的......
  • mybatis 笔记
    查询结果被合并mapper中定义的sql查询结果有3条,但执行mapper接口方法返回的实体列表只有1条,数据数量不符。这有可能是由于xml中的定义的resultMap有缺陷,如没有明确的定义一个用作主键的列,这分两种情况分别说明。//reusltMap定义<resultMapid="vo"type="ProjectCen......
  • Qt+QtWebApp开发笔记(六):http服务器html实现静态相对路径调用第三方js文件
    前言  前面做了一些交互,网页是直接通过html对response进行返回的,这里QtWebApp与传统的web服务器不同,传统的web服务器可以调用同级目录相对路径或者绝对路径下的js,而QtWebApp的httpserver是response返回当前页面的问题,默认是无法调用的。  为了解决调用一些依赖的如echarts......
  • 整体二分学习笔记
    概念对于一个很多询问的题,假如对于一个询问可以二分处理,同时一次check可以只用\(n\)的时间处理所有询问的check结果,我们可以使用整体二分来做这个题。思想设函数\(\operatorname{solve}(S,L,R)\)为现在正在处理询问序列\(S\)里的询问,答案值域为\([L,R]\)。向下......
  • 【笔记】learning git branching
    git图是由子节点指向父节点(可能有多个父节点)gitcommitgitbranchgitmergegitrebase......