几何深度学习前沿
几何深度学习前沿
转载于:http://www.yidianzixun.com/article/0J3c2xqi
随着深度学习的发展,人们已经不满足于将深度学习应用于传统的图像、声音、文本等数据上,而是对更一般的几何对象如网络、空间点云、曲面等应用深度学习算法,这一领域被称为几何深度学习(Geometric deep learning)。人们尝试在不规则的非欧氏的数据上扩展卷积神经网络模型,这便有了图卷积神经网络(Graph Neural Network)、PointNet等新的技术。
本文提到的文献,文末均附有下载地址
2016年,Bronstein的一篇名为《Geometric deep learning: going beyond Euclidean data》[1] 的文章来势汹汹,该文的后两位作者分别是Facebook前人工智能团队博士后成员Joan Bruna和现人工智能负责人Yann LeCun,这也算得上是全明星阵容,因此这篇文章的含金量和参考性就得以保证。
那么几何深度学习(Geometric deep learning)到底指什么?有能在哪些应用中体现价值呢?
1、为什么要把几何和深度学习结合起来
在信息快速发展的现代社会,最具有价值的、最核心的宝藏是数据,可以说没有数据就没有机器学习的兴起和发展。
但是,另一方面让人头痛的也是数据:
-
一是海量数据的清理本身就是一件非常痛苦的事情,特别是在有监督学习的框架下,数据和标签缺一不可。大多数情况下,好的数据集通常需要通过人为打标签或者通过人力的检验,这是一件费力不讨好的工作,但也是必不可少的环节;
-
二是有很多数据的底层结构并不是基于欧几里得空间的,而我们熟悉的表现优良的各类算法,他们通常只能处理欧式空间的数据,比如CNN处理的图片时,图片必须被表示成以一个规则的网格数据。
但是现实生活中,我们能够通过目前的测量手段获得的数据,它们的底层结构是非欧几里得空间的,这类数据我们暂且称为非欧几何数据,最典型的两种非欧几何数据是图和流形。
图和流形
图(Graph)是指的节点、连边组成的网络结构数据,比如社交网络;流形(Manifold)则通常用于描述几何形体,比如雷达扫描返回的各类物体表面的空间坐标。值得一提的是,这些几何数据通常具有恐怖的数量级,就拿社交网络来说,它的规模轻轻松松就能超过10亿,如果还妄想用传统的统计方法去分析和预测,那就过于天真和浪漫了。这就是为什么深度学习在几何数据领域有了用武之地。
那么下面就以该领域的两大类问题为主,介绍一些几何深度学习的应用场景和已有技术。第一类是3D图像的识别和分割,第二类是图信号的处理和预测。
2、3D模型的识别和分割
随着图像处理结束的飞速发展,特别是卷积神经网络(CNN)的提出,让2D图像识别的精度超越了人类,仔细想想这是一件非常不可思议的事,冰冰凉凉的计算机真得能够模仿人类大脑学习如何看一张图片。
在这里,一定要吹捧一下CNN卷积神经网络构架的针对图像特征学习的有效性,在下面将要提到的文章中,要么是把CNN直接应用到网络模型中,要么就是模仿CNN提取特征的模式设计出心的非欧数据特征提取的框架,因此在图像处理这个领域,CNN功不可没。基于2D图像的深度学习技术,我们见识了五花八门的应用,比如人脸识别、机器看图说话(结合RNN)、物体检测(比如地铁安检扫描背包)、包括视频中的物品追踪等。
深度学习在大多是1D(声波信号)、2D以及3D等欧几里得结构化数据中表现不俗,其应用也方便了人们的生活,但是有很多问题仍然是现有技术无法处理的,其中一个很重要的问题就是如何进行空间中的物体探测和识别,也就是3D模型的识别和分割问题。
这个技术最直接的应用就是机器人操控和无人驾驶,以无人驾驶为例,车内的雷达系统会对车身周围的环境进行扫描,传回周围物体的空间坐标,接着片判断障碍物和行人的位置,然后进行合理的路线规划。我们需要建立一套网络输入是类似于空间坐标的非欧几里得数据,输出是对物体的探测或者分割。下面我们就介绍一下几种现有的能够完成3D模型分类和分割任务的技术。
无人驾驶
2.1基于三维数据立体栅格化(voxel-based)技术
该技术的核心思想是把输入的3D形状数据表示(比如基于从视觉上与场景的表面的距离构建的Depth Maps深度图)转化为标准的3D立体数据表示(volumetric representation),并且提出一种对规则的、固定大小的3D立方体(voxel grids)进行卷积的网络构架去进行模型的识别和分割任务。其中,比较具有代表性的一种网络构架是普利斯顿大学2015年提出的ShapeNet[2]。
其实这种方法的思路可以说看作模拟CNN处理二维图片的方法,那么第一步就是把3D图形表示成一种标准的可处理的单位格式,于是就有了voxel的概念,类似于CNN处理pixel的信息一样。
这样的方法存在的问题是,计算过程中内存的占用将会很大,也需要较长的时间去学习。与此相关的其他工作,比如:
-
3D-CNN:3D Convolutional Neural Networks for Landing Zone Detection from LiDAR[3]
-
VAE:Generative and Discriminative Voxel Modeling with Convolutional Neural Networks[4]
-
VoxNet:A 3D Convolutional Neural Network for Real-Time Object Recognition[5]
-
ORION: Orientation-boosted Voxel Nets for 3D Object Recognition[6]
2.2基于多视角的神经网络架构(multi-view)技术
区别于立体删格化的方法,多视角神经网络在处理3D图像的分类和分割任务中的中心思想是,用多张不同角度2D的图像来提取3D图像的表面特征,直接处理相应的2D图片信息从而进行3D物体的识别和探测,这样就可以直接利用二维图像上成熟的CNN技术。具有代表性的工作是2015年,马萨诸塞大学在2015年发表的工作Multi-view CNN[7]。
这种技术的思想并不难理解,跟人类肉眼识别物体类似,如果从一个角度上无法分别,可以试着从不同角度去辨别,多视角解析3D模型技术也正是利用了这点。这项技术可以用在三维模型的重建工作中。
当然该方法的缺点是因为物体自遮挡的问题,在拍摄图片是会损失一些表面信息,并且角度的选择通常具有人工的痕迹,这样的操作不一定是完成任务必须的操作。相关工作如下:
-
GIFT: A Real-time and Scalable 3D Shape Search Engine[8]
-
ShapePFCN:3D Shape Segmentation with Projective Convolutional Networks[9]
-
Spherical Projections:3D Object Classification via Spherical Projections[10]
-
Local Shape Descriptors:Learning local shape descriptors with view-based convolutional neural networks.[11]
当然除此之外,还有作者比较了两类方法,进行了分别的改进,并测试了不同的网络结构对结果的影响。值得一提的是下文的作者Charles R. Qi,也正是最新的基于点云识别3D图形的技术的提起人。
-
Volumetric and Multi-View CNNs for Object Classification on 3D Data[12]
2.3基于点云的神经网络框架(point-based)技术
无论是基于立体删格化技术,还是基于多视角技术,它们都需要对原始的3D数据进行一些了的重新切割或者是映射到2D空间,而点云技术与他们最大的不同,在与他可以直接处理原始的三维图形表面的空间坐标。
如果输入数某物体三维空间的点云则输出对该点云的预测;在场景分割任务中,则分别预测出每一个点的分类。该技术相比以上两种技术更新,并且可以结合网络的表征学习在节点分类、图分类领域提供新的思路。开篇之作是斯坦福大学(Charles R. Qi)2017年发布的PointNet[13]构架。
接着2017年底作者在原有框架中,模仿CNN中层级性的特征提取思想,提出了PointNet++[14]构架,再一次提高了分类和分割任务的精度。
当然这种方法最大的问题根据三维点提取的物体表面的信息可能与真是情况存在偏差,点云的采集和取样方法都会影响结果。因此也有不少针对该类型方法的改进:
-
Frustum PointNets:Frustum PointNets for 3D Object Detection from RGB-D Data[15]
-
Neighbors help:Neighbors Do Help: Deeply Exploiting Local Structures of Point Clouds[16]
-
PU-Net:Point Cloud Upsampling Network[17]
-
Recurrent Slice Networks:Recurrent Slice Networks for 3D Segmentation on Point Clouds[18]
-
SPLATNet:SPLATNet: Sparse Lattice Networks for Point Cloud Processing[19]
3、图信号的处理和预测
另一类非欧几何数据就是图,这类数据最大的特点是他们底层结构是一个由节点和连边组成的网络,比如社交网络中人是节点、用户之间的互动比如关注、喜欢等就构成了连边。这样的抽象方法可以解决很多真实世界中信号传播的问题。
比如在传感器网络中,图像模型是由分布式互连传感器构成,其读数即为网络中的信号,这个信号是分布在网络中每一个节点上;在遗传学中,我们知道基因控制这蛋白质的表达,而基因组成的网络成为基因调控网络,每个基因节点都有一个信号值,在不同时间步这个信号值可能会发生变化,进而指挥不同蛋白质的形成。
基因调控网络
对于这样的图信号,由于它底层的数据结构的特殊性,以往的信号处理方式是失效的,于是在2011年左右诞生了以图傅里叶变换(Graph Fourier Transform)为基础的图信号处理(Graph Signal Processing)理论,其思想类似于普通的信号处理,将实域上的信号转化为谱域表示,然后在谱域上完成其他工作。而进一步,计算机科学家们套用CNN的思想定义了图上的卷积(Graph Convolution)操作,搭配深度学习框架,逐渐我们能够实现图结构数据表征学习以及图上信号的预测等图结构的几何深度学习。
当然目前来说,该方法最大的弊端在于数据的底层结构,也就是图的拓扑结构对数据的谱域表达影响比较大(因为在图傅里叶变换中用到了图的拉普拉斯矩阵,它与网络的邻接矩阵有关,邻接矩阵定义了图的底层结构),因此它无法迁移到不同图结构的网络模型中。
就现目前的发表的工作来说,大多数基于图结构的深度学习,都是为了进行图上节点的表征学习,也就是把节点表示成一个高维的向量,在此基础上将进行网络上节点的分类任务或者聚类任务等。下面我们介绍几篇有代表性的工作。
图卷积神经网络的首次提出:将CNN中的卷积、池化等操作拓展到了图结构数据中,输入是图以及图上的信号,输出是对每一个图上的节点的分类(信号的分类)。
GCN:Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering[20]
图卷积网络中的半监督学习:用了一种半监督学习的方法去近似在原先图卷积操作中的卷积核,改良了原先的图卷积算法
Semi-supervised GCN: Semi-Supervised Classification with Graph Convolutional Networks[21]
图卷积网络在推荐系统中的应用:Geometric Matrix Completion with Recurrent Multi-Graph Neural Networks[22]
图注意力模型:将自然语言处理中注意力机制结合到图结构数据的新型图几何数据学习,或者说它考虑了底层网络结构中节点的一阶邻和二阶邻的重要程度,因此得到的特征表示更有效。
GAT:Graph Attention Networks[23]
事实上DeepMind团队也开始关注图上的深度学习,在前不久发表了一篇名为《Learning Deep Generative Models of Graphs 》[24] 的文章,文章提出了一种利用深度学习技术生成网络结构的新框架,他的适用范围可以应用在制药、自然语言生成等领域。说不定再过几年,机器人就可以在制药领域大展身手,生成更有效的化学分子结构,从而治疗疑难杂症哟~
以上就是几何深度学习的一些梳理和整理,这个分支的发展可以让我们大胆的幻想一下未来的智能世界,无人驾驶使得路上交通更规范而有序,也消除了醉酒驾驶、疲劳驾驶等一些了人为的安全隐患;智能机器人代替单调而重复的人力劳动,甚至可以参与制药等高精端领域将大数据的价值发挥到最大。尽管在科技的发展中,不会一帆风顺,总有艰难险阻,但是人类的智慧从来不止步于不可能,反正就是日常做做梦,科技万岁~
4、参考文献
[1]Geometric deep learning: going beyond Euclidean data:https://arxiv.org/pdf/1611.08097.pdf
[2]ShapeNet:http://3dshapenets.cs.princeton.edu/paper.pdf
[3]3D-CNN:3D Convolutional Neural Networks for Landing Zone Detection from LiDAR:https://www.ri.cmu.edu/pub_files/2015/3/maturana-root.pdf
[4]VAE:Generative and Discriminative Voxel Modeling with Convolutional Neural Networks:https://arxiv.org/pdf/1608.04236.pdf
[5]VoxNet:A 3D Convolutional Neural Network for Real-Time Object Recognition:https://www.ri.cmu.edu/pub_files/2015/9/voxnet_maturana_scherer_iros15.pdf
[6]ORION: Orientation-boosted Voxel Nets for 3D Object Recognition:https://arxiv.org/pdf/1604.03351.pdf
[7]Multi-view CNN:http://vis-www.cs.umass.edu/mvcnn/docs/su15mvcnn.pdf
[8]GIFT: A Real-time and Scalable 3D Shape Search Engine:http://suo.im/4rNPZi
[9]ShapePFCN:3D Shape Segmentation with Projective Convolutional Networks:http://suo.im/5irmbO
[10]Spherical Projections:3D Object Classification via Spherical Projections:http://suo.im/4GQgv6
[11]Local Shape Descriptors:Learning local shape descriptors with view-based convolutional neural networks.:https://arxiv.org/pdf/1706.04496.pdf
[12]Volumetric and Multi-View CNNs for Object Classification on 3D Data:http://suo.im/53szCy
[13]PointNet:https://arxiv.org/pdf/1612.00593.pdf
[14]PointNet++:https://arxiv.org/pdf/1706.02413.pdf
[15]Frustum PointNets:Frustum PointNets for 3D Object Detection from RGB-D Data:https://arxiv.org/pdf/1711.08488.pdf
[16]Neighbors help:Neighbors Do Help: Deeply Exploiting Local Structures of Point Clouds:https://arxiv.org/pdf/1712.06760v1.pdf
[17]PU-Net:Point Cloud Upsampling Network:https://arxiv.org/pdf/1801.06761.pdf
[18]Recurrent Slice Networks:Recurrent Slice Networks for 3D Segmentation on Point Clouds:https://arxiv.org/pdf/1802.04402.pdf
[19]SPLATNet:SPLATNet: Sparse Lattice Networks for Point Cloud Processing:https://export.arxiv.org/pdf/1802.08275
[20]GCN:Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering:https://arxiv.org/pdf/1606.09375.pdf
[21]Semi-supervised GCN: Semi-Supervised Classification with Graph Convolutional Networks:http://arxiv.org/abs/1609.02907、
[22]Geometric Matrix Completion with Recurrent Multi-Graph Neural Networks:https://arxiv.org/pdf/1704.06803.pdf
[23]GAT:Graph Attention Networks:https://openreview.net/pdf?id=rJXMpikCZ
[24]Learning Deep Generative Models of Graphs: https://arxiv.org/pdf/1803.03324.pdf
推荐阅读
系列课程:非欧氏数据的几何深度学习