| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 【Transformer 相关理论深入理解】注意力机制、自注意力机制、多头注意力机制、位置编码 -> 正文阅读 |
|
[人工智能]【Transformer 相关理论深入理解】注意力机制、自注意力机制、多头注意力机制、位置编码 |
目录前言最近在学DETR,看源码的时候,发现自己对位置编码的理解很肤浅,只知道公式是这样的,但是深入的一些原理完全不懂。所以打算重新学习一下transformer相关的理论。然后推荐一个b站up: 去钓鱼的程序猿,和他的个人博客: 二十三岁的有德,他讲transformer讲的太好了。 这一节从头梳理一下Attention、Self-Attention、Muti-Head Self-Attention、Positional Encoding的原理。 一、注意力机制:Attention人体视觉注意力:人眼的视野是比较开阔的,但是我们关注的焦点只有一个小范围,通常会更关注于更重要的区域,更感兴趣的区域; 不同角度理解注意力机制:
如何做注意力:
一些需要注意的点:
二、自注意力机制:Self-AttentionSelf-Attention 的关键点在于,Q、K、V是同一个东西,或者三者来源于同一个X,三者同源。 Attention和Self-Attention的区别:
如何做自注意力:
自注意力机制的意义? 总结:self-attention整个过程 Self-Attention和RNN、LSTM的比较 RNN 无法并行,只能串行。 LSTM
Self-Attention 解决长序列依赖问题:self-attention可以计算句子中每个词向量和所有词向量的相关性,再长的单词也没关系(一般50个左右的单词最好 因为太长的话计算量过大)。 缺点:计算量变大了。位置编码问题。 三、多头注意力机制:Multi-Head Self-AttentionMulti-Head Self-Attention得到的新的词向量可以比Self-Attention得到的词向量有进一步提升。 什么是多头?(一般是使用8头)
源码:
为什么多头?有什么作用? 机器学习的本质:y = σ ( w x + b ) \sigma(wx+b) σ(wx+b),其实就是在做非线性变换。把数据x(它是不合理的),通过非线性变换,变成数据y(合理)。 非线性变换的本质:空间变换,改变空间上的位置坐标。 self-attention本质,通过非线性变换,把原始数据空间上的X点位置映射到新空间上的点Z上。 muti-head self-attention:把输入数据X,再把X通过非线性变换,映射到8个不同的子空间上,然后通过这8个不同的子空间去找最终的新空间上的点Z。这样可以捕捉更加丰富的特征信息,效果更好。 四、位置编码:Positional Encoding为什么需要位置编码? 总结:self-attention不像RNN那样有先后顺序,可以找到每个序列的位置,self-attention只是负责计算每个位置和其他位置的相关性。为了解决这个问题,就提出了位置编码。 怎么做位置编码?
位置编码的生成方式 1、正余弦生成
2、自学习生成 Referenceb站: 09 Transformer 之什么是注意力机制(Attention) b站: 10 Transformer 之 Self-Attention(自注意力机制) b站: 10 Attention 和 Self-Attention 的区别(还不能区分我就真的无能为力了) b站: 11 Self-Attention 相比较 RNN 和 LSTM 的优缺点 b站: 13 Transformer的多头注意力,Multi-Head Self-Attention(从空间角度解释为什么做多头) b站: 14 位置编码公式详细理解补充 b站: 14 Transformer之位置编码Positional Encoding (为什么 Self-Attention 需要位置编码) |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 21:14:42- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |