深度学习attention机制中的Q,K,V分别是从哪来的?
提问:找了各种资料,也读了论文原文,都是详细介绍了怎么把Q,K,V通过什么样的运算得到输出结果,始终没有一个地方有解释Q,K,V是从哪来的?一个layer的输入不就是一个tensor吗,为什么会有Q,K,V这三个tensor?
IIIItdaf回答:
我一做CV的,因为在了解Transformer,今天看Self-Attention中的QKV,也产生了此疑惑,为什么非要定义三个tensor,故搜到此问题。感觉各位都讲得不错,但还可以说得更直白一点。我大概意会了一下,因为写答案做图很麻烦也没什么经验,就简单说说我的理解,不一定准确,见谅。
注意力机制说白了就是要通过训练得到一个加权,自注意力机制就是要通过权重矩阵来自发地找到词与词之间的关系。因此肯定需要给每个input定义tensor,然后通过tensor间的乘法来得到input之间的关系。那这么说是不是给每个input定义1个tensor就够了呢?不够啊!如果每个input只有一个相应的q,那么q1和q2之间做乘法求取了a1和a2的关系之后,这个结果怎么存放怎么使用呢?而且a1和a2之间的关系是对偶的吗?如果a1找a2和a2找a1有区别怎么办?只定义一个这模型是不是有点太简单了。
一个不够就定义两个,于是有了q和k。q你可以理解为代表自己用的,用q去和别的输入找关系;k理解为给别人用的,专门对付来跟你找关系的输入。这样子,用自己的q去和别人的k(当然和自己的k也行)做乘法,就可以得到找出的关系:权重 α 了。
仅定义q和k两个够吗?可能也还是不够的。找出来的关系是要用的,不用等于白找。权重α是要对输入信息做加权,才能体现找到的关系的价值的。那跟输入直接加权行吗?这么做也不是不行,就是显得直接和生硬了点。所以又定义了个v。要知道,v和q、k一样,都是通过系数矩阵对输入a做乘法得到的。所以定义了个v大概等于又对a加了一层可以学习的参数,然后对经过参数调整后的a再去做加权、把通过注意力机制学到的关系给用上。所以,通过α和v的乘法进行加权操作,最终得到输出o。
综上,我的感觉是,定义这3个tensor,一方面是为了学习输入之间的关系、找到和记录谁和谁的关系权重,一方面也是在合理的结构下引入了可学习的参数,使得网络具有更强的学习能力。底下这个图把他们之间的关系画得挺好了,来源于“极市平台《搞懂 Vision Transformer 原理和代码,看这篇技术综述就够了》”,侵删。
个人粗浅解读,如有不妥请指教。我继续学习注意力去了……
文章转载自知乎,著作权归属原作者,侵删
建议阅读:
高考失利之后,属于我的大学本科四年
【资源分享】对于时间序列,你所能做的一切.
【时空序列预测第一篇】什么是时空序列问题?这类问题主要应用了哪些模型?主要应用在哪些领域?
【AI蜗牛车出品】手把手AI项目、时空序列、时间序列、白话机器学习、pytorch修炼
公众号:AI蜗牛车保持谦逊、保持自律、保持进步个人微信
备注:昵称+学校/公司+方向
如果没有备注不拉群!
拉你进AI蜗牛车交流群
深度学习attention机制中的Q,K,V分别是从哪来的?相关推荐
- 《Attention Is All You Need》注意力机制公式中Q,K,V的理解
一.概述 <Attention Is All You Need>是一篇关于注意力机制里程碑的文章,从2017年发表至今2020年7月已经获得了上万的引用.该文的两大亮点一是提出了一个几乎仅 ...
- Attention机制中 Q、K、V分别从哪里来?
在深度学习中,尤其是自然语言处理领域,Attention 机制已经成为一种非常重要的方法.它的核心思想是根据输入序列中的每个元素与当前元素的相关性来分配不同的权重,从而实现对输入序列的动态聚焦.在 A ...
- 深度学习——attention机制
一.序列编码 目前主流的处理序列问题像机器翻译,文档摘要,对话系统,QA等都是encoder和decoder框架, 编码器:从单词序列到句子表示 解码器:从句子表示转化为单词序列分布 1.第一个基本的 ...
- [深度学习] Attention机制,一文搞懂从实例到原理
一 人类的视觉注意力 扩展阅读: Attention and Augmented Recurrent Neural Networks[译文] 不用看数学公式!图解谷歌神经机器翻译核心部分:注意力机制 ...
- 深度学习attention原理_深度学习Anchor Boxes原理与实战技术
深度学习Anchor Boxes原理与实战技术 目标检测算法通常对输入图像中的大量区域进行采样,判断这些区域是否包含感兴趣的目标,并调整这些区域的边缘,以便更准确地预测目标的地面真实边界框.不同的模型 ...
- 神经网络 注意力机制 Q K V 理解
注意力机制 公式 为了简单假定 Q矩阵 K矩阵一样 Q K转置 ...
- fme扫描件处理终章,深度学习和fme的极致结合,自动分户,分类,并提取宗地代码作为户档案文件名
目录 前言 一.需求 二.实际操作 1.图像分类 2.图像分户 3.成果输出 总结 前言 本文将主要体现再深度学习的计算模型搭建好只有如何使用fme来将其功能发挥到极致,图像分类模型如何搭建和使用我上 ...
- 通俗理解注意力机制中的Q、K和V表示的具体含义
https://www.jianshu.com/p/7a61533fd73b 通俗理解讲解一 以翻译为例 source:我 是 中国人 target: I am Chinese 比如翻译目标单词为 I ...
- 注意力机制中的Q、K和V的意义
以翻译为例: source:我 是 中国人 target: I am Chinese 比如翻译目标单词为 I 的时候,Q为I 而source中的 "我" "是&qu ...
最新文章
- python的列表的remove()方法、判断if xxx in xx条件比较耗时问题
- 前端每周清单第 49 期:Webpack 4 Beta 尝鲜,React Windowing 与 setState 分析
- Android实训日志:基于外部存储的音乐播放器V05
- 从零开始Code Review
- jQuery构建路由
- 哈哈哈,程序员没有女朋友的原因,我终于找到了!
- esxi服务器与虚拟机时间不符,vsphere6.7-虚拟机与ESXI时间同步
- 真格量化-历史波动率
- pku1063 Flip and Shift严格证明
- 初步认识lodash.js
- Android MediaCodec硬编码H264文件(四)
- android so库放在哪,Android开发中so文件放置的位置
- JavaScript 常见安全漏洞和自动化检测技术
- 安卓模拟器配置了摄像头还是显示黑白棋盘
- 解决word转PDF文件时图片位置改变和字体格式改变的问题
- 网页上跳转直接添加QQ好友、加入QQ群
- 这是我见过最好的JVM笔记,拿到阿里offer后我哭了
- PVE安装ros系统
- 了解JavaScript语言--如何在HTML中使用JavaScript
- 【转】编写高质量代码改善C#程序的157个建议——建议64:为循环增加Tester-Doer模式而不是将try-catch置于循环内...