Non-local Neural Networks | 论文笔记

    最近几次组会讲的论文都有用到non-local,所以对此进行记录。

一、简述
    文中提到,卷积和循环算子都是对局部区域进行操作,而本文收到NL-means的启发,提出一种非局部计算方式来获取长距离依赖,这种依赖可以是图片中有一定距离的两个像素,可以是视频中的两帧,也可以是某段文字中的两个词语,所以他的计算是考虑特征图中所有信息的加权,时间或空间。

二、思想
    本文的提出是受到NL-means的启发,所以对NL-means进行简要介绍。
    NL-means:
    非局部均值在图像中一般用于去噪,对一个确定的像素点,计算这个像素点和其他所有像素点的加权求和结果,其中权重就是这个像素点与其他像素点的相似度。
    从思想中可以看出,如果逐点计算,不仅会计算效率低下,而且抗干扰能力不强,所以采用block的思想,计算块与块之间的相关性。而且观察过程可以发现这个方法可以看作是一个自注意力机制。下图可以明显看出经过非局部均值操作后的变化,观察b、c都能看出,由于目标点在边缘上,因此计算后获得的结果突出了全部边缘。
在这里插入图片描述
三、公式
    按照非局部均值的定义,本文定义深度神经网络中的non-local操作如下:
在这里插入图片描述
    式中,i表示输出特征图的其中一个位置,j是所有可能的位置的索引,x是输入信息,通常为特征图,y与x的尺度相同,也就是输入与输出尺度相同,f是用于计算两位置之间相关性的函数,g是用于计算输入信号在j位置的特征值。C(x)是归一化函数。
    这里面f、g都是通式,需要根据不同的网络特定,不唯一,归一化函数C根据f的不同有不同的计算方式。
    其中g可以采用1×1卷积代表线性嵌入,形式为:
在这里插入图片描述
    对于f,文中给了很多方式:
    如高斯(Gaussian ,点乘,通过指数映射放大差异):
在这里插入图片描述
    嵌入式高斯(Embedded Gaussian):
在这里插入图片描述
    这里文中提到self-attention模块就是这一版本的一种特殊情况,对于给定的i, 1 C ( x ) f ( x i , x j ) \dfrac{1}{C\left( x\right) }f\left( x_{i},x_{j}\right) C(x)1f(xi,xj)变为计算所有j的softmax,即 y = s o f t m a x ( x T W θ T W ϕ x ) g ( x ) y=softmax\left( x^{T}W_{\theta }^{T}W_{\phi }x\right) g\left( x\right) y=softmax(xTWθTWϕx)g(x),这就是目前常用的注意力机制的表达式。

    Dot product:
在这里插入图片描述
    Concatenation:
在这里插入图片描述
四、实例
    文中给了嵌入式高斯版本的实例,如下图:
在这里插入图片描述
    对于non-local blocks的运算过程,文中还提到了一个高效策略,设置 W g , W θ , W ϕ W_{g},W_{\theta },W_{\phi } Wg,Wθ,Wϕ的通道数为x输入的一半,这样内部计算就能减少一半的计算量,到了Z再用1×1卷积恢复即可。同时文中还提出可以使用下采样,可以在θ和Φ后面加一个max pooling实现,这样不会改变non-local的行为,使计算更加稀疏了,也可以减少计算量。

五、本算法优势
    对于RNN和CNN,都是在时空上的局部操作,长范围的依赖的获取是通过重复堆叠并且反向传播得到,这存在三个问题:
    1、捕获长范围依赖的效率太低
    2、由于网络很深,需要小心的设计模块和梯度
    3、对于比较远的位置传递信息对于局部操作来说是困难的
    针对以上问题,作者基于非局部均值的思想提出了非局部计算方法(non-local),这种算法的优势在于:
    1、相较于不断堆叠卷积模块和RNN,非局部操作直接计算两个位置之间的关系,可以快速捕捉长范围依赖
    2、非局部操作的效率高,只需要更少的堆叠层就可以达到同样的效果
    3、通过实例也可以看出,输入和输出的尺度是保持不变的,这样更易于嵌入到目前的网络框架中。

对于实验部分本文不再记录,论文中实验十分详细,对各种情况都进行了实验,附原文链接:https://arxiv.org/abs/1711.07971

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值