关注到旷视最近发表(2021.09.15)的一篇目标检测论文,把NLP领域常用的transformer应用到目标检测方向,与以前基于CNN的anchor-based和anchor-free网络不同,这是一种完全不同的模块结构。查阅相关文献发现,这并不是第一次将transformer应用到目标检测,于是对这一应用进行了学习(目前还没有学习原始的transformer):
1、最早进行目标检测应用的论文:End-to-End Object Detection with Transformers

贡献:提出了一种新的目标检测方法DETR,比常用的目标检测方法流程更为简单,无锚框产生和NMS过程,检测效果可与Faster RCNN相媲美,还可很容易推广到全景分割。
DEtection TRansformer or DETR, are a set-based global loss that forces unique predictions via bipartite matching, and a transformer encoder-decoder architecture.
DETR是一种基于集合的全局损失,通过二分匹配强制进行唯一预测,一种transformer的编解码结构。

输入图片经过CNN得到 特征图集合,通过transformer处理后得到的数据集合直接并行预测。训练时,通过与GT boxes二分匹配分配预测结果,没有匹配上的则无目标,把目标检测看作集合预测问题。总体结构如下:

经过CNN提取的特征图集合加上位置编码后将数据展平(flatten)进入编码器(encoder),编码器处理后的输出进入解码器,解码器处理后进入检测头进行分类和位置获取,没有目标输出为空。

关于transformer的结构和处理过程(只限于理论,未上代码):
transformer结构是google在17年的Attention Is All You Need论文中提出,在NLP的多个任务上取得了非常好的效果,可以说目前NLP发展都离不开transformer。最大特点是抛弃了传统的CNN和RNN,整个网络结构完全是由Attention机制组成。
在CV领域的探索应用,典型的如目标检测领域的detr和可变形detr,分类领域的vision transformer等,可以结合目标检测应用做一次学术讨论

Transformer的核心模块Self-Attention:



输入input处理成embedding vector分别经过线性变换(提升模型拟合能力)得到Q、K、V,QKT是两种X的线性变换的内积,即作投影,表示Q、K两个向量的相关程度,经softmax函数作归一化,得到两个向量之间的相关性权重,再与V相乘,相当于X经过注意力加权之后的表示(Z),即得到与各量之间的相关性后乘以V重新编码表示输入,输入后续Add &Normalize、FFN、Add &Normalize操作

Layer Normalization 会将每一层神经元的输入都转成均值方差都一样,可以加快收敛。
其中,在FFN(两层全连接层,第一层有激活函数Relu)中:

至此完成一个Encoder block,后续Encoder block输入为前一个block的输出。
一般一个block的self-Attention有多层,Multi-Head Attention,这时得到的矩阵Z会进行concat,最终完成ENCODERS后得到 编码信息矩阵C

Multihead attention怎么理解?本用来防止输入个体被实际的单词所支配,如it的指代,而不是关注it本身。每个head是否输入相同的内容?还是输入总共输入到multihead, 每个head只含部分输入信息?

输出结果进行concat,应该是每个head输出内容对应的输入不同,如果对应的输入不同,那q,k,v如何运算,每个head一个q,k,v?各head之间的相关性学习?

编码的目标是什么?首先是把实际输入转化为vector进行表示,带有位置信息的向量进行编码,按算法功能来看,编码可以获得各向量之间的相关性,若有指代时,相关性可辅助找出正确指代内容,不需指代的向量根据位置权重进行顺序解译。

红色字体内容是我刚开始看的时候不太熟悉提出的一些疑问。
①对于multihead attention,这个多头机制每个head输入的内容是一样的,但是线性变换会使每个head的关注点存在一些区别,最后通过矩阵变换,所有的head的输出转变成了一个,这就使得输入的信息更加丰富,不会太片面,结果包含更全面的信息。
②至于编码的目的,首先是把输入统一成向量表示,在机器翻译中,输入可以是多种语言的文字,所以需要一种编码方式进行表示,便于网络统一处理以及学习各个量之间的相关性



接下来是Decoders部分,

第二个 Multi-Head Attention 层的K, V矩阵使用 Encoder 的编码信息矩阵C进行计算,而Q使用上一个 Decoder block (第一个block用X)的输出计算

输入X计算得到Q、K、V,在QKT进行softmax前需要做掩膜操作(为了按顺序翻译,按顺序遮挡后面的信息),经过掩膜归一化后的矩阵(即含mask操作的注意力机制权重)与V相乘得到矩阵Z(后续与Encoder类似),得到mask操作后线性变换后的X,作为Q与Encoder的编码信息矩阵C进入第二层attention head。

后续仍在学习中

transformer学习相关推荐

  1. 计算机视觉算法——Transformer学习笔记

    算机视觉算法--Transformer学习笔记 计算机视觉算法--Transformer学习笔记 1. Vision Transformer 1.1 网络结构 1.2 关键知识点 1.2.1 Self ...

  2. ViT(Vision Transformer)学习

    ViT(Vison Transformer)学习 Paper:An image is worth 16×16 words: transformers for image recognition at ...

  3. transformer学习之多头注意力机制

    文章目录 题目 注意力机制 多头注意力机制 为什么要使用多头注意力机制 代码实现 题目 transformer学习之多头注意力机制 注意力机制 详细了解 ➡️ 注意力机制 之前我们也学习过了Seq2S ...

  4. Transformer学习总结附TF2.0代码实现

    Transformer学习总结附TF2.0代码实现 Transformer 1.Transformer详解 1.1 transformer总体架构 1.2 输入部分 1.3 Multi-Head At ...

  5. 如何将二维空间先验注入到ViT中? UMA港理工阿里提出SP-ViT,为视觉Transformer学习2D空间先验知识!...

    关注公众号,发现CV技术之美 本篇分享论文『SP-ViT: Learning 2D Spatial Priors for Vision Transformers』,曼海姆大学&香港理工& ...

  6. Transformers与图神经网络的关系,我们能从transformer学习到什么?

    1.导读 这个观点的目的是构建Transformer结构背后的NLP上的直觉,以及与图神经网络的联系. 图深度学习"听起来很厉害,但有什么大的商业成功的故事吗?它有没有被部署在实际app中? ...

  7. ICCV2021 | TransFER:使用Transformer学习关系感知的面部表情表征

    前言  人脸表情识别(FER)在计算机视觉领域受到越来越多的关注.本文介绍了一篇在人脸表情识别方向上使用Transformer来学习关系感知的ICCV2021论文,论文提出了一个TransFER模型, ...

  8. 语言模型(五)—— Seq2Seq、Attention、Transformer学习笔记

    按:三个月前的一篇笔记,先发出来,后面还会有第二次学习的笔记,两者结合起来看,更加爽口. 本篇笔记5000余字,可细嚼,亦可跳阅. 机器翻译 本篇笔记中要开始介绍的Encoder-Decoder模型最 ...

  9. transformer学习笔记:Feed-Forward Network

    transformer结构在Muli-Head Attention层之后还添加了一层Feed-Forward层.Feed-Forward层包括两层全连接层以及一个非线性激活函数ReLu. 注意到在Mu ...

最新文章

  1. mysql连接出现Unknown system variable ‘tx_isolation‘异常
  2. Android的MediaPlayer
  3. Web 设计:实现干净代码的12条定律
  4. 手把手教你--JAVA微信支付(H5支付)
  5. java程序员应该掌握的技术才算得上熟练Java开发
  6. 双11个性化推荐背后,阿里云“舜天”如何应对百亿次挑战? 1
  7. c 服务器传输大文件,cend.me:不须经过服务器,直接点对点的文件传输免费服务...
  8. 在Linux中使用matplotlib进行科学画图
  9. ib课程计算机科学教材,热门课程:IB计算机科学的评估方式
  10. 完美C++(第5版)(双色)
  11. 攻击防御实例——SQL注入
  12. 2020考研数学一大纲之完全解析(四)
  13. 7个黑科技搜索网站,啥都能搜到!
  14. 基于罗格里德矩阵的坐标转换7参数求取
  15. BasicRF学习心得
  16. 治疗“实火”引起的急性口腔溃疡及清新口气的方法
  17. On the Effectiveness of Visible Watermarks 利用AI技术去除图像水印
  18. 解释相机中的弥散现象
  19. AAAI2020 A pre-training based personalized dialogue generation model with persona-sparse data
  20. linux面板切换快捷键,Fedora 25 Gnome常用快捷键、快捷操作

热门文章

  1. Apache2.2.21安装图解
  2. jeecg-framework-3.3.2-RELEASE 最新版本发布
  3. 《JEECG_v3 开发手册》文档发布通知
  4. 对Url Schemes的简单了解
  5. 软件工程敏捷开发01
  6. react让我怀疑自己没有当程序员的天分怎么破?
  7. error_logs
  8. nagios-3种报警方式–声音–email/邮件—短信
  9. [PAL规范]SAP HANA PAL演绎推理算法Apriori编程规范APRIORIRULE
  10. postgresql集群方案hot standby 安装和测试