自注意力机制(self-attention)

视频链接:https://www.bilibili.com/video/BV1v3411r78R/?spm_id_from=333.337.search-card.all.click&vd_source=8de64249f3698ea673fe42aabb025b29

请添加图片描述

输入:
Vector Set: 句子、声音信号、Graph(consider each node as a vector)

输出:

  • Each vector has a label: 词性标注、推荐商品
  • whole sequence has a label : 情感分析(正面/负面)、语音辨识(演讲人),分子亲水性
  • Model decides the number of labels itself(seq2seq) : 翻译,语音辨识

1 Sequence Labeling(Each vector has a label)

请添加图片描述

第一个saw :看到; 第二个saw:锯子
仅仅通过FC无法获取对应的信息,可以通过考虑相邻的向量(window),window的缺点:1、开的太大开销会变大,并且会过拟合;2、开的小效果不好
解决办法:self-attention(self-attention考虑整个sequence)

2 Self-Attention

请添加图片描述

请添加图片描述

每个 b i b_i bi都考虑了所有的 a i a_i ai,下面以如何产生 b 1 b_1 b1举例:

  1. 在sequence中找出跟 a 1 a_1 a1相关的其他向量,做self-attention的目的就是要考虑整个sequence但是又不希望将整个sequence的资料都包含在里面,所以采用机制——根据 a 1 a^1 a1这个向量找出整个sequence哪个向量是重要的,哪个向量对判断 a 1 a^1 a1的label是有关系的。每个向量与 a 1 a^1 a1的关系程度用 α \alpha α来表示
    请添加图片描述

  2. self-attention如何决定两个向量之间的关联性(如何求 α \alpha α?)
    请添加图片描述
    计算关联性有很多方法,但是 D o t − p r o d u c t Dot-product Dotproduct最常用,且transformer用到该model,下面均使用该model

  3. 如何套用在self-attention中?
    请添加图片描述

得到 α 1 , i ′ \alpha_{1,i}^{\prime} α1,i 可以知道哪些向量和 a 1 a^1 a1最有关系,接下来根据得到的分数( α ′ \alpha^{\prime} α)来抽取重要咨询,
4. 如何抽取重要的咨询
请添加图片描述

3 self-attention —— 矩阵乘法

3.1 求Q、K、V

请添加图片描述

3.2 计算Attention Score

请添加图片描述

3.3 Self-Attention 输出

请添加图片描述

3.4 总结

请添加图片描述

整个模型中只有 W q , W k , W v W^q,W^k,W^v WqWk,Wv是未知的,需要训练的。

4 Mutil-Head Self-Attention

请添加图片描述
在这里插入图片描述

5 Positional Encoding

在这里插入图片描述

  • Each position has a unique positional vector e i e^i ei( i i i 表示位置)
  • hand-crafted
  • even can be learned from data
    请添加图片描述

transformer使用的位置编码

6 Self-Attention for Image

请添加图片描述

7 Self-Attention v.s. CNN

请添加图片描述
请添加图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Transformer发轫于NLP(自然语言处理),并跨界应用到CV(计算机视觉)领域。目前已成为深度学习的新范式,影响力和应用前景巨大。 本课程对Transformer的原理和TensorFlow 2代码进行精讲,来帮助大家掌握其详细原理和具体实现。 原理精讲部分包括:注意力机制和自注意力机制Transformer的架构概述、Encoder的多头注意力(Multi-Head Attention)、Encoder的位置编码(Positional Encoding)、残差链接(Residual Connection)、层规范化(Layer Normalization)、FFN(Feed Forward Network)、Transformer的训练及性能、Transformer的机器翻译工作流程。  代码精讲部分使用Jupyter Notebook对Transformer的TensorFlow 2实现代码进行逐行解读,包括:安装TensorFlow、Transformer的数据集加载与预处理代码解读、Transformer的位置编码与多头注意力代码解读、TransformerTransformer类代码解读、Transformer的优化器与损失函数代码解读、Transformer的训练代码解读、Transformer的推理与权重保存代码解读。相关课程: 《Transformer原理与代码精讲(PyTorch)》https://edu.csdn.net/course/detail/36697《Transformer原理与代码精讲(TensorFlow)》https://edu.csdn.net/course/detail/36699《ViT(Vision Transformer)原理与代码精讲》https://edu.csdn.net/course/detail/36719《DETR原理与代码精讲》https://edu.csdn.net/course/detail/36768《Swin Transformer实战目标检测:训练自己的数据集》https://edu.csdn.net/course/detail/36585《Swin Transformer实战实例分割:训练自己的数据集》https://edu.csdn.net/course/detail/36586《Swin Transformer原理与代码精讲》 https://download.csdn.net/course/detail/37045
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值