Transformer的各个块(bottleneck,FFN..)

  • bottleneck
    将信息压缩再放大的神经网络结构,可以有效降低模型参数量
    在这里插入图片描述

  • 左边是对输入进行常规卷积,右边是对输入先进行PW(Pointwise_Convolution,可参考我的上一篇博客),之后用小卷积核进行特征提取,最后同样用PW升维。两边的输出形状一致,但是右边具有更小的参数量

  • 残差网络加上bottleneck,可以训练更小的参数量、更深的模型
    在这里插入图片描述

  • 其中两个1X1fliter分别用于降低和升高特征维度,主要目的是为了减少参数的数量,从而减少计算量,且在降维之后可以更加有效、直观地进行数据的训练和特征提取,对比如下图所示。

在这里插入图片描述



  1. FFN
    在这里插入图片描述
    为什么需要VKQ三个矩阵,直接用输入的特征进行self-attention不可以吗?如果非要用,为什么不是四个五个,而是三个呢?
  1. 三个矩阵将原始输入往不同的向量空间进行投影,如果直接用输入的feature做self-attention和加权的话,其实还是在feature空间做变换(因为整个过程都是矩阵乘法),基本没有可学习的余地,引入三个矩阵后,增大了学习参数,使得学习出来的变换空间更加的通用。
  2. Q(query)代表自身的期望(表示了对哪种feature感兴趣),
    K(key)代表自己是哪种feature,因为别人也要进行self-attention,
    V(value)是给自己打个分,用于后面的加权,其实这个可以不要,直接用输入的feature进行加权,

待续…

Transformer in Transformer(TiT)和Bottleneck Transformer(BoT)都是基于Transformer模型的改进版本,它们在结构和设计上有所不同。 Transformer in Transformer(TiT)是一种层级结构的Transformer模型。它在传统的Transformer模型中引入了一个额外的Transformer层,用于处理输入序列中的每个位置。这个额外的Transformer层被称为内部Transformer层,它负责对每个位置的输入进行编码。然后,内部Transformer层的输出被传递给外部Transformer层,用于对整个输入序列进行编码。通过引入内部Transformer层,TiT可以更好地捕捉输入序列中的局部和全局信息,从而提高模型的表示能力。 Bottleneck Transformer(BoT)是一种通过减少计算和参数量来提高Transformer模型效率的方法。在传统的Transformer模型中,每个位置都需要进行自注意力计算,这会导致计算和存储开销较大。BoT通过引入瓶颈结构来解决这个问题。具体来说,BoT将输入序分成多个子序列,并在每个子序列上自注意力计算。然后,通过一个全局注意力机制将子序列的表示整合起来。这样一来,BoT可以在保持较低计算和参数量的同时,仍然能够有效地捕捉输入序列的信息。 综上所述,Transformer in Transformer(TiT)和Bottleneck Transformer(BoT)都是对传统Transformer模型的改进。TiT通过引入内部Transformer层来增强模型的表示能力,而BoT通过引入瓶颈结构来提高模型的效率。它们都是在Transformer模型的基础上进行的创新,并在不同方面对模型进行了优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值