ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Non-local Network:人类早期在CV驯服Transformer尝试 | CVPR 2018

2022-02-22 12:32:28  阅读:185  来源: 互联网

标签:xj Transformer Network 特征 Non non 操作 local


Non-local操作是早期self-attention在视觉任务上的尝试,核心在于依照相似度加权其它特征对当前特征进行增强,实现方式十分简洁,为后续的很多相关研究提供了参考

来源:晓飞的算法工程笔记 公众号

论文: Non-local Neural Networks

Introduction


  卷积操作通常在局部区域进行特征提取,想要获取范围更广的特征信息需要重复进行卷积操作来获得,这样不仅耗时还增加了训练难度。为此,论文提出高效的non-local操作,将特征图上的特征点表示为所有特征点的加权和,用于捕捉覆盖范围更广的特征信息。non-local操作也可以用于含时序的任务中,如图1的视频分类任务,可综合几帧的特征来增强当前帧的特征。
  non-local操作主要有以下优点:

  • 相对于叠加卷积的操作,non-local可通过特征点间的交互直接捕捉更广的特征信息。
  • 从实验结果来看,简单地嵌入几层non-local操作就能高效地提升网络性能。
  • non-local操作支持可变输入,可很好地与其它网络算子配合。

Non-local Neural Networks


Formulation

  首先定义通用的non-local操作:

i i i为特征图上将要计算特征值的位置坐标, j j j为特征图上的所有位置坐标, x x x为对应位置上的输入特征, y y y为增强后的输出, f f f计算 i i i和 j j j之间的相似性, g g g则用于对 j j j的特征进行转化, C \mathcal{C} C用于对输出进行归一化。
  简而言之,non-local的核心就是计算当前位置的特征与特征图所有特征间的相似性,然后根据相似性对所有特征加权输出。相对于卷积和全连接等参数固定的操作,non-local更加灵活。

Instantiations

  在实现时,函数 f f f和函数 g g g的选择很多。为了简便,函数 g g g选择为线性变换 g ( x j ) = W g x j g(x_j)=W_gx_j g(xj​)=Wg​xj​, W g W_g Wg​为可学习的权重矩阵,一般为 1 × 1 1\times 1 1×1的卷积。而函数 f f f则可以有以下选择(论文通过实验发现函数 f f f的具体实现影响不大):

  • Gaussian

  x i T x j x^T_i x_j xiT​xj​为点积相似度,也可采用欧氏距离, C ( x ) = ∑ ∀ j f ( x i , x j ) \mathcal{C}(x)={\sum}_{\forall j}f(x_i, x_j) C(x)=∑∀j​f(xi​,xj​),归一化类似于softmax操作。

  • Embedded Gaussian

  θ ( x i ) = W θ x i \theta(x_i)=W_{\theta}x_i θ(xi​)=Wθ​xi​和 ϕ ( x j ) = W ϕ x j \phi(x_j)=W_{\phi}x_j ϕ(xj​)=Wϕ​xj​为两个线性变换, C ( x ) = ∑ ∀ j f ( x i , x j ) \mathcal{C}(x)={\sum}_{\forall j}f(x_i, x_j) C(x)=∑∀j​f(xi​,xj​),这个实现与self-attention十分接近。

  • Dot product

  先线性变换,然后通过点积计算相似度, C ( x ) = N \mathcal{C}(x)=N C(x)=N,有助于简化梯度计算。

  • Concatenation

  直接将特征conate起来,通过权重向量 w f T w^T_f wfT​转化为标量输出, C ( x ) = N \mathcal{C}(x)=N C(x)=N。

Non-local Block

  将公式1的non-local操作修改成non-local block,可插入到当前的网络架构中,non-local block的定义为:

  公式6将non-local操作的输出线性变换后与原特征进行相加,类似于residual block的嵌入方式。

  non-local block的一种实现方式如图2所示,首先对 x x x进行3种不同的线性变换,然后按照公式1得到输出特征,再与原特征进行相加,基本上跟self-attention是一样的。

Experiment


  各种对比实验,表2a为函数 f f f的实现对比,可以看到影响不是很大。

  视频分类对比。

  COCO上的分割、检测、关键点对比。

Conclusion


  Non-local操作是早期self-attention在视觉任务上的尝试,核心在于依照相似度加权其它特征对当前特征进行增强,实现方式十分简洁,为后续的很多相关研究提供了参考。



如果本文对你有帮助,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】

work-life balance.

标签:xj,Transformer,Network,特征,Non,non,操作,local
来源: https://blog.csdn.net/lichlee/article/details/123065429

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有