首页 > 其他分享 >思考|卷积、注意力

思考|卷积、注意力

时间:2024-08-04 23:29:14浏览次数:7  
标签:思考 相似 卷积 Attention token embedding 注意力 tensor

参考链接:
卷积:https://www.bilibili.com/video/BV1Vd4y1e7pj/?spm_id_from=333.999.0.0&vd_source=fa1d778abbb911d02be7ac36f2b2e32a
Transformer:
https://www.bilibili.com/video/BV1TZ421j7Ke/?spm_id_from=333.999.0.0&vd_source=fa1d778abbb911d02be7ac36f2b2e32a
https://www.cnblogs.com/zhubolin/p/17156347.html

关于卷积的一点思考
数字图像处理中设计各种卷积核对图像进行处理,比如模糊、锐化、检测横向和纵向边缘等
卷积神经网络则是根据目标(需要提取图像的哪些特征从而完成相应任务)去学习卷积核(不同卷积核用于捕捉不同特征)的内容。需要人为设置的参数包括kernal_size, stride, padding等

Attention
token——embedding(高维空间表示,比如女儿这个词,我们看到这个词会用一些复杂的表述来表示,这就相当于embedding)
*如何操作?全连接层(linear layer)增加output_dim即可

一开始,token的embedding仅有本义+position信息。我们要做的是,更新embedding,使其还包含与上下文相关的信息。比如“一斤+苹果”和“苹果+手机”的“苹果在高维空间中的tensor不应是同一个,前一个“苹果”应该和“水果”等词在高维空间中更靠近,后一个“苹果”应该和“手机”“乔布斯”等词在高维空间中更靠近
如何实现更新embedding以考虑上下文?计算token之间的相似度,用其更新embedding
如何计算相似度?把每个token的embedding映射至Q空间和K空间,计算Q空间中的每个embedding和K空间中的每个embedding的相似度,相似度大,则说明两个token越相关
为什么要先映射到Q、K空间再算相似度?如果直接算相似度,永远是同样的token相似度最大。而映射到Q、K空间后,Q=Query,\(W_Q\)乘某个token的embedding,得到一个低维的tensor,相当于在问“谁是和我相关的token”。K=Key,\(W_K\)乘某个token的embedding,也得到一个低维的tensor,相当于在回答“我是和...相关的token”【attend to】。这样,匹配上(相关度高)的两个tensor点乘的结果就会大(相似度大)。
因此,我们得到了一个Matrix,每个值为对应两个token的相似性(可正可负),然后做softmax(值0-1,和为1)和归一化,得到的matrix为Attention Pattern
*除以一个标量
*掩码:Attention Pattern的左下三角形强制为0(实际上是在进行softmax前强制为负无穷,这样softmax之后满足和为1),因为在生成next word时,不能让后面的token影响当前的生成,也就是说,进行当前生成时不能偷看后面的内容以帮助当前生成

把每个token的原embedding映射到V空间,V=Value。此tensor与Attention Pattern相乘,相当于用Attention Pattern的每列的每个值作为权重与V的每个向量相乘,然后相加,以更新V中的每个向量,从而得到各个\(\Delta{E_i}\),分别加在每个token原来的embedding上。能想到的是,\(\Delta{E_i}\)中与当前token越相似的token的向量占比重越大,这样加在原embedding上时,使其越靠近与当前token相似的token的embedding
【计算过程李宏毅和3B1B是一个思路,把embedding作为列向量,推荐这种。而Attention is all you need原文是把embedding作为行向量】

计算复杂度是上下文长度的平方\(O(n^2)\)

Multi-head Attention
多头注意力:待补充

Self-attention

Cross-attention

标签:思考,相似,卷积,Attention,token,embedding,注意力,tensor
From: https://www.cnblogs.com/xjl-ultrasound/p/18342074

相关文章

  • 卷积全家桶
    卷积全家桶FFT快速傅里叶变换应用场景:有\(2^n-1\)次多项式\(f(x),g(x)\),求多项式\(f(x)g(x)\)的各项系数.换言之,有长为\(2^n\)数组\(f,g\),(下标从\(0\)开始),求长为\(2^{n+1}-1\)数组\(h\)满足\(h_i=\sum_{j=0}^{i}f_jg_{i-j}\)(超出\(f,g\)下标范围的地方用\(0\)补全).......
  • Pytorch笔记|小土堆|P16-22|神经网络基本骨架、卷积层、池化层、非线性激活层、归一化
    torch.nnContainers是神经网络骨架,含6个类,最常用的是Module——BaseclassforallNNmodulesModule所有神经网络模型(子类)都必须继承Module(父类),Module相当于给所有的神经网络提供了模板,但可进行修改官方示例:importtorch.nnasnnimporttorch.nn.functionalasFclass......
  • 项目负责人视角:结构化思考在竞赛中的力量
    项目负责人视角:结构化思考在竞赛中的力量前言结构化思考的定义与重要性结构化思考的五个关键步骤1.明确问题2.问题分解3.优先级排序4.制定行动计划5.执行与监控结构化思考的实际应用案例结语前言  在这个充满挑战和机遇的时代,项目管理已成为企业和个人成功的......
  • 深入探索EPSA:提升卷积神经网络性能的新式注意力模块
     原论文地址:https://arxiv.org/abs/2105.14447摘要摘要部分提出了一种新的注意力模块——金字塔分割注意力(PSA)模块,该模块通过替代ResNet瓶颈块中的3x3卷积,显著提升了模型性能。PSA模块能够作为即插即用组件,增强网络的多尺度表征能力,使EPSANet在多个计算机视觉任务上超越了......
  • 数据权限的设计与思考
    什么是数据权限?权限控制是一个系统的核心功能,可以分为两类,一类是功能权限,一类是数据权限。数据权限又可以进一步分为行级权限和列级权限。功能权限,是指系统用户能进行哪些操作,通常是菜单和按钮权限,如打开订单菜单,查询订单列表,创建新订单。对于功能权限,有标准化的解决方案,也即RBAC......
  • 【眼疾病识别】图像识别+深度学习技术+人工智能+卷积神经网络算法+计算机课设+Python+
    一、项目介绍眼疾识别系统,使用Python作为主要编程语言进行开发,基于深度学习等技术使用TensorFlow搭建ResNet50卷积神经网络算法,通过对眼疾图片4种数据集进行训练('白内障','糖尿病性视网膜病变','青光眼','正常'),最终得到一个识别精确度较高的模型。然后使用Django框架开发Web网......
  • 通过颜色反卷积进行组织化学染色的定量分析
    颜色反卷积(ColorDeconvolution)是免疫组织化学(Immunohistochemistry,IHC)和其他组织染色技术中常用的一种图像分析方法。它被用来从复合染色图像中分离出单独的染色成分,以便进行更精确的定量分析。这种方法特别适用于多重染色实验,其中不同的染色标记使用不同的颜色,如DAB(二氨基......
  • 架构演化学习思考(3)
    架构演化学习思考(3)接上一篇我们继续对命令模式进行学习。在这节内容中,我们聊一下经典的命令模式,还记得上一篇文章开头我们实现的简单的命令模式吗?来看代码,非常简单易解。publicinterfaceICommand{voidExecute();}publicclassPlayMusicCommand:ICommand{......
  • 洛谷P3161 [CQOI2012] 模拟工厂 贪心策略的思考
    P3161[CQOI2012]模拟工厂传送门:模拟工厂问题描述:初始的生产力和商品分别为1和0。每一个时刻可以选择两个动作:生产力+1或者生产生产力数量的商品。现在有很多个订单,每个订单有三个部分:时间t,需要多少商品p,可以获得的价值v。现在需要决定各个时刻的动作选择,以及订单是否接取,以期......
  • C++对象析构顺序问题——由QObject::desroyed展开的思考
    C++对象析构顺序问题——由QObject::desroyed展开的思考C++析构函数执行的顺序是最先执行继承链最末端的子类的,最后执行顶层的基类的。而QObject::destroyed(QObject*obj=nullptr)信号在Qt文档中说是“在obj被完全析构时之前立即触发,并且不会被阻塞”。这里的“完全析......