DETR论文,基于transformer的目标检测网络 DETR:End-to-End Object Detection with Transformers

transformer的基本结构:

  • encoder-decoder的基本流程为:

1)对于输入,首先进行embedding操作,即将输入映射为向量的形式,包含两部分操作,第一部分是input embedding:例如,在NLP领域,称为token embedding,即将输入序列中的token(如单词或字符)映射为连续的向量表示;在CV领域,可以是将每个像素或者每个patch块映射为向量形式,例如,patch embedding层

2)另一个embedding操作为positional encoding:即位置编码,即一组与输入经过embedding操作后的向量相同维度的向量(例如都为N, HW, C),用于提供位置信息。位置编码与input embedding相加得到transformer 编码器的输入。

3)transformer encoder:是由多个编码模块组成的编码器层,每个编码模块由多头自注意力机制+残差add+层归一化LayerNorm+前馈网络FFN+残差add+层归一化LayerNorm组成

多头自注意力机制:核心部分,例如,在CV领域,经过embedding层后的输入为N, HW, C,N为Batch num,HW为像素个数,每个像素映射为一个维度为C的向量;然后通过QKV的自注意力机制和划分为多头的方式,得到输出为N, HW, C

要除以​的原因:查询(Query)与键(Key)之间的点积,然后将这个点积除以一个缩放因子,最后应用softmax函数来获得注意力权重。如果不进行缩放,当键的维度dk很大时,点积的结果可能会非常大,这会导致softmax函数的梯度非常小,从而引起梯度消失问题。通过除以根号dk,提高训练的稳定性。

add+LayerNorm:经过多头自注意力机制后再与输入相加,并经过层归一化LayerNorm,即在最后一个维度C上做归一化,详见https://blog.csdn.net/m0_48086806/article/details/132153059

前馈网络FFN:是由两个全连接层+ReLu激活函数组成

4)transformer decoder:是由多个解码模块组成的解码器层,每个解码模块由Masked多头自注意力机制+残差add&层归一化LayerNorm+多头cross attention机制+add&LayerNorm+前馈网络FFN+add&LayerNorm。

5)此外需要注意的是,第一个解码模块的输入为output(可以初始化为0或者随机初始化)经过embedding操作后的结果,之后各个解码模块的输入就变为前一个解码模块的输出了;第二个cross attention机制的QKV输入分别为:KV键值对都是等于编码器最终的输出;Query为Masked多头自注意力的输出

Masked多头自注意力机制:一个通俗解释为:一个词序列中,每个词只能被它前面的词所影响,所以这个词后面的所有位置都需要被忽略,所以在计算Attention的时候,该词向量和它后面的词向量的相关性为0。因此为Mask

6)最后通过Linear层+Softmax得到最终的输出

相关推荐
一碗白开水一1 小时前
入门实践工程九:基于 BERT 的中文情感分类微调~附:安装依赖库及工程源码
人工智能·深度学习·机器学习·自然语言处理·分类·bert
xiaoxiaoxiaolll2 小时前
AI赋能复合材料力学:神经网络与” 多尺度仿真
人工智能·深度学习·神经网络
科里 Coralyx4 小时前
Transformer、BERT、GPT-3:大模型时代的三块地基
gpt-3·bert·transformer
过期的秋刀鱼!6 小时前
公平性偏见与伦理
人工智能·python·深度学习·神经网络·机器学习
想会飞的蒲公英7 小时前
PyTorch 学习率实战:从零理解衰减策略与调度器
人工智能·pytorch·python·深度学习·机器学习
John jj8 小时前
拆解 Telegram 群组频道收录市场:三类方案,一个可运行的评分模型,目前TG中文人工评分加模型评分机制——LetsTG收录“快速”、“无门槛”
大数据·后端·python·深度学习·搜索引擎·django·全文检索
又折桃枝换酒钱8 小时前
CycleChart:一个统一的基于一致性学习的双向图表理解与生成框架(翻译与解读)
人工智能·深度学习·学习
卡梅德生物科技小能手10 小时前
卡梅德生物科普 TSLP(胸腺基质淋巴细胞生成素)
经验分享·深度学习·生活
方品10 小时前
【无标题】
服务器·人工智能·深度学习·nlp