• transformer笔记


    基础结构:

    输入:[batch_size,sequence_length,embedding dimension]

    batch_size:句子的个数

    sequence_length:句子的长度

    embedding dimension:

    vocab_size:总字数

    embedding_size:字向量维度的大小

    什么是位置嵌入?

    位置嵌入提供了每个字的位置信息。位置嵌入的维度是:

    [max sequence_length,embedding dimension]

    max sequence_length:超参数,限定句子的最大长度

    初始化字向量:[vocab_size,embedding dimension]

    其中pos是指句中字的位置,取值范围是[0,max sequense length] ,i是指字向量的维度,取值范围是[0,embedding dimension],d_model是指字向量维度大小。

    什么是自注意力机制?

    也就是初始输入:[batchsize,sequence length] 

    位置信息:[batchsize,sequence length,embedding dimension]

    初始输入+位置信息(利用了广播机制?)

    然后使用Q,K,V进行线性变换。

    多头自注意力?

    放缩点积注意力:

    Query,Key,Value首先进过一个线性变换,然后输入到放缩点积attention,注意这里要做h次,其实也就是所谓的多头,每一次算一个头。而且每次Q,K,V进行线性变换的参数W是不一样的。然后将h次的放缩点积attention结果进行拼接,再进行一次线性变换得到的值作为多头attention的结果。 

    什么是attention mask?

    超出当前句长的句子需要padding到最大句长。一般情况下使用的是0填充 ,但是在进行softmax时,e0=1。为了让无效的区域不参与计算,需要做一个mask让这些区域无效,一般会对无效的区域加一个很大的负数的偏置:

    其他的操作?

    (1)残差连接

    (2)Layer Norm。

    阿尔法和贝尔塔用来弥补归一化过程中损失掉的信息。

    整体结构?

    参考:

    https://www.bilibili.com/video/BV1sE411Y7cP?from=search&seid=360256464200193261 

    https://blog.csdn.net/NeilGY/article/details/88721545 

  • 相关阅读:
    uiatuomator如何调试
    uiatuomator提示shortMsg=java.lang.RuntimeException
    uiatuomator命令启动apk,与查找多个相同控件
    uiautomator日志文件转换为xml格式文件
    uiautomator做自动化的过程
    uiautomator的坑和AAPT命令方式启动一个应用程序
    ADB无线连接
    用fiddler工具做接口测试
    简单的monkey使用
    疯狂学习java web2(css)
  • 原文地址:https://www.cnblogs.com/xiximayou/p/13339835.html
Copyright © 2020-2023  润新知