Transformer及其改进型总结

探讨Transformer模型的局限性及Transformer-XL的创新,包括Segment-Level Recurrence和Relative Position Encodings,以及XL-Net引入的排列语言模型和双流注意力机制,深化理解NLP中的序列建模。

Transformer是Google提出的用来解决LSTM建模长期依赖乏力的问题全新架构模型,同时其网络架构的设计全部考虑如何并行化,包括self-attenion机制、multi-head self-attention机制、FFW全部都是可以并行计算的,Add&Norm中Add类似预ResNet的shortcut,是为了解决深层模型梯度消失的问题,LayerNorm可以加速计算,这全部都是在为后面的大规模预训练模型做准备。Transformer的提出在NLP中具有里程碑式的意义,现在取得成功的Bert系列基于Transforner Encoder,GPT系列基于Transformer Decoder。这篇文章将不再赘述Tranformer的架构,想必大家应该已经跟熟悉了,这方面有大量的文章可供阅读。本篇博客聚焦于Transformer的改进路线,也是NLP面试常见问题。

Transformer

Attention is all you need
完全图解GPT-2:看完这篇就够了(一)
BERT大火却不懂Transformer?读这一篇就够了

Transformer-XL

Transformer作为一种特征提取器,在NLP中有广泛的应用。但Trm需要对序列设置一个固定长度,如果序列超过该长度,需要将句子划分成多个segment,训练的时候每个segment单独处理,各segment之间没有联系,最长的依赖关系长度就取决于segment长度。

预测的时候会对固定长度的segment做计算,一般取最后一个隐向量作为输出,为了充分利用上下文关系,每做一次预测,就对整个序列向右移动一个位置,在做一次计算,这导致效率非常低。
在这里插入图片描述

  • Segment-Level Recurrence
    为了解决上面提到的问题,Transformer-XL提出一个改进,对当前Segment进行处理的时候,缓存并利用上一个segment中所有layer的隐向量序列,这些隐向量序列只参与前向计算,不再进行反向传播,这就是所谓的Segment-Level Recurrence。
    在这里插入图片描述

  • Relative Position Encodings
    Vanliia Trm使用position embedding或者正弦/余弦函数来对位置进行编码,这是一种绝对距离位置编码,而Transformer-XL使用相对位置编码。
    A t t e e n t i o n ( Q , K , V ) = s o f t m a x ( Q K T d k V ) Atteention(Q, K, V) = softmax(\frac{QK^T}{d_k}V) Atteention(Q,K,V)=softmax(d

### 基于Vision Transformer的目标检测改进方法研究 #### 当前进展概述 基于Transformer的目标检测算法近年来取得了显著进步,尤其是谷歌在ICLR2020上提出的ViT(Vision Transformer)开创了将Transformer引入视觉领域的新纪元[^1]。然而,在实际应用中,直接使用原始ViT进行目标检测面临诸多挑战,例如计算复杂度高、对输入数据敏感等问题。 为了应对这些问题,研究人员提出了多种改进方案,主要包括以下几个方面: --- #### 1. **优化Attention机制** 传统的全局自注意力机制计算量较大,尤其是在处理高分辨率图像时会带来巨大的内存开销。因此,许多工作致力于设计更高效的注意力机制: - **稀疏化注意力**:通过仅关注图像中有意义的区域来减少不必要的计算。例如,DETR及其后续版本采用了多头注意力机制,并结合object query的设计,使得模型能够聚焦于潜在的目标位置[^3]。 - **局部窗口注意力**:类似于卷积神经网络中的感受野概念,Swin Transformer提出了一种分层结构,利用滑动窗口的方式限制注意力范围,从而降低计算成本并提高效率[^5]。 ```python class SwinWindowAttention(nn.Module): def __init__(self, dim, window_size, num_heads): super().__init__() self.dim = dim self.window_size = window_size self.num_heads = num_heads def forward(self, x): # 实现局部窗口内的自注意力计算逻辑 pass ``` --- #### 2. **增强特征提取能力** 尽管ViT具有强大的表示学习能力,但在低层次特征捕获方面可能不如传统CNN表现优异。为此,可以通过以下方式改善其特征表达力: - **混合架构**:融合CNN与Transformer的优点,构建混合型框架。例如,ConvNeXt系列模型展示了即使不完全依赖Transformer组件也能取得良好效果;同样地,在YOLOv8基础上集成Dual Vision Transformer也是一种尝试[^2]。 - **多层次特征交互**:借鉴FPN(Feature Pyramid Network)的思想,促进不同尺度间的信息交流,有助于捕捉从小到大的各类物体实例[^4]。 --- #### 3. **引入先验知识** Object Query作为连接编码器与解码器的关键环节之一,在无锚框设定下起到重要作用。合理设置初始Query向量可以帮助加速收敛过程并提升最终精度。目前已有不少关于如何更好地初始化这些Queries的研究成果被报道出来。 --- #### 4. **探索新型训练策略** 除了调整网络本身外,改变训练流程也是提高性能的有效途径之一: - 自监督预训练技术的应用可以缓解标注数据不足带来的影响; - 动态标签分配法则如OTA (Optimal Transport Assignment),能有效解决固定IoU阈值所引发的一系列问题。 --- ### 总结 综上所述,针对Vision Transformer用于目标检测场景下的若干改进建议涵盖了多个维度——从核心运算单元改造至整体系统搭建均有所涉及。未来随着硬件条件持续升级以及理论层面深入挖掘,相信会有更多创新性的解决方案涌现出来。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值