【VALSE 前沿技术选介17-02期】
https://mp.weixin.qq.com/s/Ulu8Kw4FDty-dMOu7qNxxQ【VALSE 前沿技术选介17-02期】可形变的神经网络
作者 Winsty
今天给大家介绍的是上周出现在arxiv上的一篇文章“Deformable Convolutional Networks”。这篇文章个人很喜欢,是一篇处理Deep Learning基础问题,逻辑清晰干净,且结果合理有效的工作。简单总结下来,文中通过改进CNN中基础的Convolution和Pooling操作,达到解析图像中不规则目标的目的。具体的介绍如下。
首先,我们将conv操作形式化表示为以下的形式。对于每个输出在p_0位置的卷积操作,其定义为:
其中R为这个卷积核的区域。例如,3×3的卷积覆盖以下9个区域:
Deformable Conv操作并没有改变卷积的计算操作,而是在卷积操作的作用区域上,加入了一个可学习的参数\delta p_n,如下所示:
这样原本只能处理规则3×3大小区域的卷积操作,就有了各种可能。下面展示了几个特例。其中在Segmentation类问题中经常用到的dilation conv (a.k.a atrous conv) 也可以作为deformable conv的一个特例出现了。
然而,这样的操作引入了一个问题,即需要对不连续的位置变量求导。作者在这里借鉴了之前Spatial Transformer Network和若干Optical Flow中warp操作的想法,使用了bilinear插值将任何一个位置的输出,转换成对于feature map的插值操作。这样虽然对于\delta仍然不光滑,但是最起码是连续的,对于神经网络的训练而言足够使用了。同理,类似的想法可以直接用于 (ROI) Pooling中改进,具体细节就不再重复,有兴趣的同学可以具体查阅paper。
下面来看一些具体例子中的结果吧。第一个是堆积了3层3×3 kernel的deformable conv的结果,这样每层会选取9个点,连续3层一共有729个点。作者将这样729个点映射回原图,可以发现不同的filter可以有效地focus在不同区域和类型的关注点上。
同理,对于deformable ROI pooling,也可以得到类似于DPM的效果,结果非常合理。
至于定量的结果,我在这里就不再贴图了。在detection和segmentation任务上都在目前主流的模型上取得了显著的提升,符合预期。
另外关于这篇文章,来自地平线的ALAN Huang同学在知乎上给出了一个很精辟的回答(https://www.zhihu.com/question/57493889/answer/153369805)。 在这里跟大家分享,同时加入个人的一些comments。
conv,pooling这种操作,其实可以分成三阶段: indexing(im2col) ,reduce(sum), reindexing(col2im). 在每一阶段都可以做一些事情。 用data driven的方式去学每一阶段的参数,也是近些年的主流方向。
个人认为,其实可以更细分为四个阶段,每个阶段其实都值得深入思考:
Indexing (im2col):这也就是本篇文章关注的部分。
Computation (gemm):在im2col之后,conv就被转化为了一个dense matrix multiplication的问题。本质上,conv还是一个线性模型就是因为在这一步还是一个线性变化。有若干工作试图增强计算步骤的表示能力。从最开始的Network In Network到后来的Neural Decision Forest,再到最近我们的Factorized Bilinear Layer,都是在这一步试图做出一些变化。
Reduce (sum):最简单的reduce操作就是求和,但是这个步骤还是有大量变化的余地。例如,是否可以通过类似于attention一样的机制做加权求和?是否可以通过random projection引入随机性?
Reindex (col2im):这步骤是第一步的逆操作。
综上,这是一篇很有兼顾启发性和实用性的paper,很值得大家认真思考。希望大家都能从我的分析中有所收获~
页:
[1]