几何深度学习
重點收藏,轉載自: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)到底指什么?有能在哪些應用中體現價值呢?
在信息快速發展的現代社會,最具有價值的、最核心的寶藏是數據,可以說沒有數據就沒有機器學習的興起和發展。
但是,另一方面讓人頭痛的也是數據:
一是海量數據的清理本身就是一件非常痛苦的事情,特別是在有監督學習的框架下,數據和標簽缺一不可。大多數情況下,好的數據集通常需要通過人為打標簽或者通過人力的檢驗,這是一件費力不討好的工作,但也是必不可少的環節;
二是有很多數據的底層結構并不是基于歐幾里得空間的,而我們熟悉的表現優良的各類算法,他們通常只能處理歐式空間的數據,比如CNN處理的圖片時,圖片必須被表示成以一個規則的網格數據。
但是現實生活中,我們能夠通過目前的測量手段獲得的數據,它們的底層結構是非歐幾里得空間的,這類數據我們暫且稱為非歐幾何數據,最典型的兩種非歐幾何數據是圖和流形。
圖和流形
圖(Graph)是指的節點、連邊組成的網絡結構數據,比如社交網絡;流形(Manifold)則通常用于描述幾何形體,比如雷達掃描返回的各類物體表面的空間坐標。值得一提的是,這些幾何數據通常具有恐怖的數量級,就拿社交網絡來說,它的規模輕輕松松就能超過10億,如果還妄想用傳統的統計方法去分析和預測,那就過于天真和浪漫了。這就是為什么深度學習在幾何數據領域有了用武之地。
那么下面就以該領域的兩大類問題為主,介紹一些幾何深度學習的應用場景和已有技術。第一類是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] 的文章,文章提出了一種利用深度學習技術生成網絡結構的新框架,他的適用范圍可以應用在制藥、自然語言生成等領域。說不定再過幾年,機器人就可以在制藥領域大展身手,生成更有效的化學分子結構,從而治療疑難雜癥喲~
以上就是幾何深度學習的一些梳理和整理,這個分支的發展可以讓我們大膽的幻想一下未來的智能世界,無人駕駛使得路上交通更規范而有序,也消除了醉酒駕駛、疲勞駕駛等一些了人為的安全隱患;智能機器人代替單調而重復的人力勞動,甚至可以參與制藥等高精端領域將大數據的價值發揮到最大。盡管在科技的發展中,不會一帆風順,總有艱難險阻,但是人類的智慧從來不止步于不可能,反正就是日常做做夢,科技萬歲~
[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
總結
- 上一篇: K8S kube-proxy- ipta
- 下一篇: ubuntu安装ROS进行到rosdep