Outlook Attention

设给定输入为 \(X \in R^{H \times W \times C}\), 首先经过两个线性映射得到两个输出A 和 V,A叫做outlook weight \(A \in R^{H \times W \times K^4}\), V叫做value representation \(V \in R^{H \times W \times C}\). A对应下图绿色虚线框中左侧图形,直观上通道数由C变成了\(K^4\); V是图片中第二排中间那张图形。

outlook attention 模块是考虑\(K \times K\)区域内每个空间位置特征间关系。A经过reshape 得到尺寸为\(R^{H \times W \times K^2 \times K^2}\) ,其中每个空间位置值代表对应原始输入X对应空间位置点的局部\(K \times K\)区域内各个空间点特征之间两两相关性度量,由于区域有\(K^2\)个空间位置点,因此相关度量矩阵是\(R^{K^2 \times K^2}\)

attn = nn.Linear(C, k ** 4)
a = attn(x).reshape(H*W, K*K, K*K)

上述代码即表示绿色虚线框生成过程

v_pj = nn.Linear(C, C)
unfold = nn.Unfold(K, padding)
v = v_pj(x).permute(2, 1, 0)
v = unfold(v).reshape(C, K*K, H*W).permute(2, 1, 0)

上述代码块就是公式3 。是将特征V (value representation )使用\(K \times K\)在其上滑动时,同一平面内特征展开,不同平面特征依次拼接在其后;再将空间X-方向和Y-方向展开成一条。Unfold操作可以参考下面连接理解。可以理解为将原始特征X的局部区域\(K \times K\)内特征平铺开来。由于Unfold操作stride=1,因此unfold(v)的形状为\(R^{CK^2 \times HW}\)

a = a.softmax(dim=-1)
x = mul(a, v).permute(2, 1, 0).reshape(C*K*K, H*W)

此处的\(a \in R^{K^2 \times K^2}, v \in R^{K^2 \times C}\) ,忽略HW。\(a \in R^{K^2 \times K^2}\) 表示某个位置局部区域各个位置点与本区域内其它位置的特征相似性度量,而$v \in R{K2 \times C} $ 表示这个区域的特征,每个位置点的特征长度为C,有 \(K^2\) 个位置,因此二者相乘,每个位置点第i个通道处的特征值是该通道对应的\(K \times K\)区域内特征值的加权平均。

回到最开始关于Outlook Attention初衷/思考:

  • 每个空间位置的特征具有足够的代表性,可以生成注意力权重,用于局部聚合其相邻的特征
  • 密集和局部的空间聚合可以有效地编码更精细信息



参考

[1] Fold/Unfold 操作详解 https://blog.csdn.net/ViatorSun/article/details/119940759

VOLO论文笔记的更多相关文章

  1. Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现(转)

    Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现 zouxy09@qq.com http://blog.csdn.net/zouxy09          自己平时看了一些论文, ...

  2. 论文笔记之:Visual Tracking with Fully Convolutional Networks

    论文笔记之:Visual Tracking with Fully Convolutional Networks ICCV 2015  CUHK 本文利用 FCN 来做跟踪问题,但开篇就提到并非将其看做 ...

  3. Deep Learning论文笔记之(八)Deep Learning最新综述

    Deep Learning论文笔记之(八)Deep Learning最新综述 zouxy09@qq.com http://blog.csdn.net/zouxy09 自己平时看了一些论文,但老感觉看完 ...

  4. Twitter 新一代流处理利器——Heron 论文笔记之Heron架构

    Twitter 新一代流处理利器--Heron 论文笔记之Heron架构 标签(空格分隔): Streaming-process realtime-process Heron Architecture ...

  5. Deep Learning论文笔记之(六)Multi-Stage多级架构分析

    Deep Learning论文笔记之(六)Multi-Stage多级架构分析 zouxy09@qq.com http://blog.csdn.net/zouxy09          自己平时看了一些 ...

  6. Multimodal —— 看图说话(Image Caption)任务的论文笔记(一)评价指标和NIC模型

    看图说话(Image Caption)任务是结合CV和NLP两个领域的一种比较综合的任务,Image Caption模型的输入是一幅图像,输出是对该幅图像进行描述的一段文字.这项任务要求模型可以识别图 ...

  7. 论文笔记(1):Deep Learning.

    论文笔记1:Deep Learning         2015年,深度学习三位大牛(Yann LeCun,Yoshua Bengio & Geoffrey Hinton),合作在Nature ...

  8. 论文笔记(2):A fast learning algorithm for deep belief nets.

    论文笔记(2):A fast learning algorithm for deep belief nets. 这几天继续学习一篇论文,Hinton的A Fast Learning Algorithm ...

  9. 论文笔记:Towards Diverse and Natural Image Descriptions via a Conditional GAN

    论文笔记:Towards Diverse and Natural Image Descriptions via a Conditional GAN ICCV 2017 Paper: http://op ...

  10. 【论文笔记】Malware Detection with Deep Neural Network Using Process Behavior

    [论文笔记]Malware Detection with Deep Neural Network Using Process Behavior 论文基本信息 会议: IEEE(2016 IEEE 40 ...

随机推荐

  1. ArcGIS工具 - 按字段分割图层

    天下大势,合久必分,分久必合.合并.分割在GIS数据处理和管理中也十分常见,例如按行政区划名称导出多个区县行政图层.按地类名称导出多个地类图层. 功能说明 其实,在ArcGIS中除了按属性导出外,最接 ...

  2. 【问题解决】Tomcat启动服务时提示Filter初始化或销毁出现java.lang.AbstractMethodError错误

    问题背景 最近在开发项目接口,基于SpringBoot 2.6.8,最终部署到外置Tomcat 8.5.85 下,开发过程中写了一个CookieFilter,实现javax.servlet.Filte ...

  3. 在Mac OS上将Node.js连接到XAMPP MySQL服务器一直报错error connecting: Error: connect ECONNREFUSED

    以下為通過node.js連線本機mysql資料庫的方法: var mysql = require('mysql'); var connection = mysql.createConnection({ ...

  4. vscode配置rust开发

    需要安装的插件 设置为idea开发的快捷键 设置code fmt为rust

  5. 注解_概念-注解_JDK内置注解

    注解_概念 注解: 概念:说明程序的.给计算机看的 注释:用文字描述程序的.给程序员看的 定义︰注解(Annotation),也叫元数据.一种代码级别的说明.它是J0K1.5及以后版本引久的一个特性, ...

  6. python语法进阶这一篇就够了

    前言 前面我们已经学习了Python的基础语法,了解了Python的分支结构,也就是选择结构.循环结构以及函数这些具体的框架,还学习了列表.元组.字典.字符串这些Python中特有的数据结构,还用这些 ...

  7. 【.NET 8】ASP.NET Core计划 - 支持更完善的AOT发布

    .NET7.0刚发布不久,.NET社区开始了.NET8.0的开发,重心重新回到了新功能的迭代. 我们知道在.NET7.0中一个令人激动的特新就是支持了NativeAOT,我们可以通过NativeAOT ...

  8. petite-vue和Vue的比较

    petite-vue不止是变得更小,它还是渐进式增强的最佳实践. Vue不构建或构建都能使用.当通过构建使用时(例如使用单文件组件),Vue预编译所有的模板,所以运行时没有再处理模板.多亏了树摇(th ...

  9. Pytest插件之pytest-base-url切换测试环境

    Pytest插件之pytest-base-url切换测试环境 安装  pip install pytest-base-url 应用场景 利用参数--base-url或者配置(pytest.ini中ba ...

  10. 【Spring】Bean注册注解

    @Configuration 同@Component,将标注的类作为一个组件,区别是会使用Cglib动态代理,因此使用该注解的类不能是final的 与@Component的区别可见:Configura ...