码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 读transformer的笔记


    参考:Transformer模型详解(图解最完整版) - 知乎

    如何理解attention中的Q,K,V? - 知乎

    注意力机制到底在做什么,Q/K/V怎么来的?一文读懂Attention注意力机制 - 知乎

    核心思想:Q K V,维度特征,然后通过矩阵的点乘计算出二者的相似性!

    0.为什么使用三个可训练的参数矩阵生成Q  K V因为,他们可以增强模型的拟合能力呗!

          其中,WQ,WK和WV是三个可训练的参数矩阵。输入矩阵X分别与WQ,WK和WV相乘,生成Q、K和V,相当于经历了一次线性变换。Attention不直接使用X,而是使用经过矩阵乘法生成的这三个矩阵,因为使用三个可训练的参数矩阵,可增强模型的拟合能力。

     

    1.嵌入向量方面

    就是词嵌入和位置嵌入的加和。

    2.将向量矩阵传入N个编码块(N可以为6!),之后得到句子所有单词的编码信息矩阵 C。如下图。单词向量矩阵用 Xn×d 表示, n 是句子中单词个数,d 是表示向量的维度 (论文中 d=512)。每一个 Encoder block 输出的矩阵维度与输入完全一致。

    3.如下图:【目前不太理解!】 

    4.自注意力机制

     

    5. 

     

    上图是 Self-Attention 的结构,在计算的时候需要用到矩阵Q(查询),K(键值),V(值)。在实际中,Self-Attention 接收的是输入(单词的表示向量x组成的矩阵X) 或者上一个 Encoder block 的输出。而Q,K,V正是通过 Self-Attention 的输入进行线性变换得到的。

    6.Softmax归一化指数函数:是对矩阵的每一行进行 Softmax,即每一行的和都变为 1.

    Softmax(QK)就是求权重的体现:如何理解attention中的Q,K,V? - 知乎

    注意力机制到底在做什么,Q/K/V怎么来的?一文读懂Attention注意力机制 - 知乎

    Q、K可以求出注意力权重配比值!

    我们知道,向量点积的值可以表征词与词之间的相似性,而此处的“整个序列”包括The这个词自己(再一次强调这是Self-Attention)。

    所以最后输出的词的表示,其“主要成分”就主要地包含它自身和跟它相似的词的表示,其他无关的词的表示对应的权重就会比较低。

     

    7.Add指 X+MultiHeadAttention(X),是一种残差连接,通常用于解决多层网络训练的问题,可以让网络只关注当前差异的部分,在 ResNet 中经常用到:

     

    Add指 X+MultiHeadAttention(X),是一种残差连接,通常用于解决多层网络训练的问题,可以让网络只关注当前差异的部分,在 ResNet 中经常用到:

    8.组成Encoder

     

     9.MASK掩码操作

    注意 Mask 操作是在 Self-Attention 的 Softmax 之前使用的,下面用 0 1 2 3 4 5 分别表示 " I have a cat "。

    下图,就是单词0只能使用单词0的信息,单词1可以使用单词0,1的信息;

    也就是只能使用之前的信息。

     

     10.softmax预测输出单词

     

    end:

    Transformer 总结

    • Transformer 与 RNN 不同,可以比较好地并行训练。
    • Transformer 本身是不能利用单词的顺序信息的,因此需要在输入中添加位置 Embedding,否则 Transformer 就是一个词袋模型了。
    • Transformer 的重点是 Self-Attention 结构,其中用到的 Q, K, V矩阵通过输出进行线性变换得到。
    • Transformer 中 Multi-Head Attention 中有多个 Self-Attention,可以捕获单词之间多种维度上的相关系数 attention score。

    还是不太懂呀!!

  • 相关阅读:
    选择SSL证书的理由以及优势
    Qml 实现星级评分组件 已发布
    python核心编程|一本书,玩转python!让你从入门到大牛!
    【从零开始学习 SystemVerilog】7.16、SystemVerilog 类—— Randomization(随机化)
    Android Kotlin Paging3 Flow完整教程
    打卡中国人民大学与加拿大女王大学金融硕士项目,读研梦想从这里起飞
    十八、商城 - 规格管理-模板管理(6)
    Vue中动态绑定class和style
    基于web在线餐饮网站的设计与实现——仿Coco线上订奶茶饮料6个页面(HTML+CSS+JavaScript)
    牛客网刷题篇
  • 原文地址:https://blog.csdn.net/weixin_42859280/article/details/126917459
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号