Transformer笔记

        Transformer 是⼀种完全基于注意⼒机制(Self Attention)的神经⽹络模型,由 Vaswani 等⼈在
2017 年提出 标志着⾃然语⾔处理领域的⼀个 重要突破 。Transformer 解决了 RNN(循环神经
⽹络)和 CNN(卷积神经⽹络)在处理⻓序列时 的效率和性能问题,特别是在 捕捉全局依赖关 系、并⾏计算以及克服梯度消失等⽅⾯表现出⾊
        与 RNN 不同,Transformer 摒弃了序列顺序的递 归处理⽅式,避免了序列⻓度增⻓带来的信息传 递瓶颈。在 RNN 中,信息依赖于时间步⻓逐步传 递,导致序列过⻓时早期信息容易衰减,且⽆法 并⾏处理 ,训练时间较⻓。 CNN 虽然可以通过卷积核来捕捉局部特征,但它的感受野有限 ,很难处理序列中的远程依赖。
        相⽐之下, Transformer 通过全局的注意⼒机 制,允许每个位置的词语直接关注序列中的其他 所有位置,实现了更⾼效的⻓程依赖捕捉 。这样不仅提升了模型处理⻓序列的能⼒,还有效减少 了序列信息丢失问题。 另外,Transformer 的架构⽀持⼤规模并⾏计 算,因为它不需要像 RNN 那样逐步处理序列数 据,⽽是可以同时处理整个输⼊序列。这⼤⼤提 ⾼了训练效率,尤其在处理海量数据和复杂任务 时表现优异。

编码器部分

Step1 分词成x个Token

Step2 对每个Token向量化,并进行位置编码。组成10*512的向量。

Step3  Token与Token间相互进行相似度计算。计算方式:根据W_Q W_K W_V,让每个词向量与这三个相乘计算各自的Q,K,V。其中Q表示当前词需要关注什么,K表示其他词能提供什么,V表示该词实际包含的结果。

Step4 用每个词的Q向量与每个词的K向量做点乘,算出词与词间的关系。

Step5 第四步得到的结果乘上各自的V,再求和获取该词在整个句子中的关系。

Step6 为进一步让模型理解输入,将一个句子分解成8各部分即,由10*512 变成 10*64 。各自进行各自的自注意力计算。最后再把这8个结果进行拼接回10*512.可以从多个角度整合复杂的语义信息。这个过程就说多头注意力机制。

Step7 多层结构学习输入信息。

解码器部分

Step1 为了确保模型 在预测下⼀个词时,只能利⽤之前⽣成的词,加⼊了掩码机制(Masking) 。掩码.操作将未来词的注意⼒权重置为负⽆穷,防⽌模型获取不应访问的信息。

Step2 编码器-解码器注意⼒层(Encoder-Decoder Attention Layer): 该层作⽤是通过编码器输出的上下⽂向量,关注输⼊序列中的相关部分,来帮助解码器⽣成与输⼊相对应的⽬标序列。其中Q是掩码多头自注意力机制的输出,K,V是解码器的输出。

Step3 输出向量映射为一个单词,Y×vocab矩阵,softmax获取每个词的概率,拿出最大的那一个,循环一直到输出截至符为止。

学习来源:B站小坛AI13分钟带你Transformer,从零揭秘Transformer的真面目_哔哩哔哩_bilibili

八股文

1、交叉熵损失函数

2、Positional Encoding原理

Transformer论文中,使用正余弦函数表示绝对位置,通过两者乘积得到相对位置。因为正余弦函数具有周期性,可以很好地表示序列中单词的相对位置。

3、BatchNorm和LayerNorm的区别,为什么不用BatchNorm

 BatchNorm

        BatchNorm是从某一特征维度,以批次为标准进行归一化,适合CV任务,同时受Batch的大小影响。沿着批次(Batch)维度进行归一化。

         BatchNorm核心思想:让一个批次内所有样本的某个特征维度的分布稳定(均值为0,方差为1)。

        优点
        非常有效,尤其是在计算机视觉(CV)的卷积网络中,成为标配。
        有一定的正则化效果(因为一个样本的激活值依赖于同一批次中的其他样本),可以减少过拟合。

        缺点
        对批次大小敏感:如果批次很小(比如1或2),计算的均值和方差噪声会很大,导致性能急剧下降。不适合小批量或在线学习场景。
        不适合序列模型:在RNN或Transformer中,序列长度是变化的,不同批次的计算图可能不同,导致均值和方差的估计不稳定

LayerNorm

        LayerNorm是对于一个样本整体进行归一化,适合序列样本。对于单个样本,针对该样本的所有特征维度计算均值和方差。

         LayerNorm核心思想:让单个样本所有特征维度的分布稳定(均值为0,方差为1)。

         优点
       不依赖于批次大小:它的计算完全在单个样本内部进行,因此无论批次大小是1还是1000,其行为都是一致的。这使得它非常适合小批次训练序列模型(如RNN, Transformer)。
        适合变长输入:每个样本独立计算,序列长度不同也没关系。

        缺点
        在卷积网络上的效果通常不如BatchNorm。        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值