【稀疏卷积】Submanifold Sparse Convolutional Networks

子流形稀疏卷积网络

出版时间:2019

作者:Benjamin Graham, Laurens van der Maaten。 Facebook AI Research

代码地址

看到最近很多关于点云的网络都用到这个方法,就来读一下。

摘要

卷积处理的数据(比如图片)一般都是很dense的,但是有些数据是sparse的(比如点云数据,在纸上形成的笔画)。在这些稀疏数据上直接用dense的卷积网络是非常没有效率的。本文引入了一种稀疏卷积运算,该运算针对处理稀疏数据而定制,与之前的稀疏卷积网络的工作不同,它严格地在子流形上运行,而不是将观测扩展到网络的每一层。

总之就是一个很适合处理稀疏数据的卷积

为什么不能用一般的卷积操作处理稀疏数据?

【稀疏卷积】Submanifold Sparse Convolutional Networks_第1张图片

“submanifold” dilation 问题

左: 原始输入,是一个手画的圆形, 是嵌入在二维网格(grid)上的一维曲线(curve)。

中:一次3x3卷积之后的结果

右:两次3x3卷积之后的结果

上图的输入是一个手写数字识别的例子,作者把上图表示出来的问题叫做“submanifold” dilation 问题 ,可以看到原始数据是非常sparse的,但是用了传统卷积之后,稀疏性很快就消失了。

如果不是对所有的pixel进行卷积,只对白色的有curve的pixel进行卷积操作会怎么样?

结果就是,会丢失很多信息,没法分类。

注:作者把白色的这些有意义的pixel叫做active site

 

什么是(submanifold)子流形?

We use the term 'submanifold' to refer to input data that is sparse because it has a lower effective dimension than the space in which it lives, for example a one-dimensional curve in 2+ dimensional space, or a two-dimensional surface in 3+ dimensional space.

我们使用术语“子流形”来表示输入数据是稀疏的,因为它的有效维数低于它所在的空间,例如二维空间中的一维曲线,或三维空间中的二维曲面。

稀疏卷积SC和VSC

作者提出两种卷积操作:SC 和 VSC。

(1)SC卷积操作

【稀疏卷积】Submanifold Sparse Convolutional Networks_第2张图片

【稀疏卷积】Submanifold Sparse Convolutional Networks_第3张图片

(2)VSC卷积操作

【稀疏卷积】Submanifold Sparse Convolutional Networks_第4张图片

(3)激活函数和pooling函数

【稀疏卷积】Submanifold Sparse Convolutional Networks_第5张图片

(4)计算和内存开销

下图展示了active site和non-active site在传统卷积C,SC, VSC的计算和内存开销。

Context:filter size为3,对一个d维的single location进行卷积。

【稀疏卷积】Submanifold Sparse Convolutional Networks_第6张图片

传统卷积C,SC, VSC的计算和内存开销

其中, a是active sites number, m是input channel number, m是output channel number。

用提出的卷积构建常用网络

【稀疏卷积】Submanifold Sparse Convolutional Networks_第7张图片

Modules used for building sub-manifold sparse convolutional networks

作者用提出的VSC和SC构建了很流行的几种网络模块:VGGResNetDenseNet模块。

(a) VGG block是2个VSC个一个max pooling组成

(b) 保持输入输出分辨率不变的ResNet block是把两个VSC的输出加在input上

(c) 减小分辨率的ResNet block

(d) 保持输入输出分辨率不变的DenseNet block

(e) 减小分辨率的DenseNet block

 

实现过程

(1)涉及到几个关键的部分:

【稀疏卷积】Submanifold Sparse Convolutional Networks_第8张图片

 

(2)SC的实现过程:

【稀疏卷积】Submanifold Sparse Convolutional Networks_第9张图片

(3)VSC的实现过程

和SC不同的只是rule book的构建。

实验

在ModelNet-40数据集上的结果。

【稀疏卷积】Submanifold Sparse Convolutional Networks_第10张图片

可以看到VSC的精确度不比传统卷积C的精确度差多少,但是速度内存都有极大的提升。

 

最后

结果可视化里面如果有个类似下面这样的图,更能表示使用SC/VSC不会降低数据稀疏性。

然而没有,试着自己可视化看看吧。

【稀疏卷积】Submanifold Sparse Convolutional Networks_第11张图片

这篇文章没有发表,而是作为《3D Semantic Segmentation with Submanifold Sparse Convolutional Networks》的一部分后来发表的。

如果看不懂这篇文章的一些细节,没关系,去读写的更清楚详细的《3D Semantic Segmentation with Submanifold Sparse Convolutional Networks》。我有点吐血,写完这个才读了《3D Semantic Segmentation with Submanifold Sparse Convolutional Networks》,很多我猜出来的细节,在文章中就写明了,去读吧,清晰很多。

https://blog.csdn.net/zcgyq/article/details/83088283

你可能感兴趣的:(论文笔记)