Submanifold Sparse Convolutional Networks

转自:https://zhuanlan.zhihu.com/p/97367489

摘要

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

作者的工作就是在不改变稀疏度的基础上,实现稀疏卷积。也就是只对有值的位置坐卷积。采用这种结构,最终可以以减少50%的空间消耗。

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

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

在这里插入图片描述

左: 原始输入,是一个手画的圆形, 是嵌入在二维网格(grid)上的一维曲线(curve)。
中:一次3x3卷积之后的结果
右:两次3x3卷积之后的结果

上图的输入是一个手写数字识别的例子,作者把上图表示出来的问题叫做submanifold dilation (子流形扩张)问题 ,可以看到原始数据是非常sparse的,但是用了传统卷积之后,特征图的稀疏性很快就消失了。特征就不会捕捉到该流型结构。

如果不是对所有的pixel进行卷积,只对白色的有curve的pixel进行卷积操作会怎么样?
结果就是,会丢失很多信息,没法分类。

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

Very Deep Convolutional Networks

在卷积中,一般小的核比较适用于深层的网络结构,比如一些VGG,ResNet等结构,但是作者指出,这些结构都不能适用当前的稀疏卷积去实现,就是因为深度过深导致了感受野更大,随后模糊信息更严重,稀疏性减少,流型结构丢失。

什么是(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卷积操作

稀疏卷积操作sparse convolution,可以表示为SC(m, n, f, s), 其中m是input feature planes,我感觉应该就是输入特征channel数;n是输出特征channel数; f是filter size; s是stride。

其中 f 可以是non-square filter。传统的filter size一般是3x3, 5x5 …这里可以是1x7…可以用于实现inception的结构)
在这里插入图片描述
和一般的卷积最大的区别在于。如果一开始输入的数据中该ground state是 non-active的,那么最后的输出也是non-active的。它假定non-active sites的输入恰好为零,从而丢弃了non-active sites的ground state。

我感觉最关键的部分就是:
在这里插入图片描述

(2)VSC卷积操作

VSC结构是通过SC结构修改过来的,对于SC而言,可以出现输出的fea-map的大小和输入的不一样,但是对VSC来说则是一样的。作者首先是进行的一个padding操作,接着也限制了那些仅仅是只有在输入是active的,输出才能是activate。
在这里插入图片描述

(3)激活函数和pooling函数

在这里插入图片描述

(4)计算和内存开销

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

Context:filter size为3,对一个d维的single location进行卷积。
在这里插入图片描述

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

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

在这里插入图片描述

用于构建子流形稀疏卷积网络的模块
在这里插入图片描述

实现过程

在这里插入图片描述

在这里插入图片描述

(3)VSC的实现过程
和SC不同的只是rule book的构建。

实验

在ModelNet-40数据集上的结果。
在这里插入图片描述

最后

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

然而没有,试着自己可视化看看吧。
在这里插入图片描述

这篇文章没有发表,而是作为《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/weixin_38087692/article/details/107400425?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-2&spm=1001.2101.3001.4242

卷积稀疏编码(convolutional sparse coding)是一种基于深度学习模型的方法,用于学习输入数据的稀疏表示。它在计算机视觉和模式识别领域得到了广泛应用。 与传统的稀疏编码方法不同,卷积稀疏编码利用了卷积层的结构和权值共享的特性。它通过在输入数据上应用卷积操作和非线性激活函数来提取特征,并使用稀疏性约束来学习这些特征的表示。 卷积稀疏编码的一个关键思想是特征共享。通过共享权值,可以减少需要学习的参数量,并使模型具有良好的泛化能力。这种共享的方式使得卷积稀疏编码在处理图像、视频等高维数据时更加有效。 卷积稀疏编码的训练过程可以通过最小化重构误差和稀疏性约束来实现。通过最小化重构误差,模型可以学习到输入数据的低维表示,从而具有压缩和降维的效果。同时,通过稀疏性约束,模型可以选择性地激活少量的特征,从而实现特征的稀疏表示。 卷积稀疏编码在图像处理领域的应用非常广泛。它可以用于图像去噪、图像恢复、图像合成等任务。此外,随着深度学习的发展,卷积稀疏编码也被应用于图像分类、目标检测和语义分割等视觉任务中。 总之,卷积稀疏编码是一种利用卷积层和权值共享的方法,用于学习输入数据的稀疏表示。它具有良好的泛化能力和较好的压缩和降维效果,已在图像处理和计算机视觉领域取得了很好的应用效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值