Matroid 論文 Matrix Computations and Optimization in Apache Spark 獲得 2016 KDD Applied Data Science Track 最佳論文(亞軍)。 本文是 Matroid 的最新研究,主要介紹了 FusionNet ,其深度學(xué)習(xí)結(jié)構(gòu)利用可以進(jìn)行三維「思考」的基礎(chǔ)架構(gòu),解決了三維物體的識(shí)別問(wèn)題。該技術(shù)使得 Matroid 在普林斯頓 ModelNet 大賽上排名第一(目前)。
隨著增強(qiáng)現(xiàn)實(shí)和自動(dòng)駕駛汽車的出現(xiàn),3D 數(shù)據(jù)正在爆發(fā)。在不久的將來(lái),處理 3D 數(shù)據(jù)的算法將被用于諸如機(jī)器人導(dǎo)航或基于增強(qiáng)現(xiàn)實(shí)的智能用戶界面之類的應(yīng)用。受此啟發(fā),來(lái)自 Matroid 的新近論文展示了 FusionNet,這款架構(gòu)可在 Princeton ModelNet 標(biāo)準(zhǔn)數(shù)據(jù)集中分類 3D CAD 物體。
FusionNet 核心是一個(gè)用于 3D 物體的新型三維卷積神經(jīng)網(wǎng)絡(luò)(CNN)。在將其用于這里之前,我們不得不從幾個(gè)方面修改傳統(tǒng)的CNN。為了便于解釋,首先,讓我們看一下用于圖像識(shí)別的二維 CNN。想法是這樣的:機(jī)器學(xué)習(xí)研究人員建構(gòu)一個(gè)多層模型,每層以不同的方式處理前一層的連接。在第一層有一個(gè)視窗(window),它可以將一個(gè)片(patch )滑過(guò)一張二維圖像,這張圖像集就變成那一層的輸入。這就是一個(gè)卷積層,因?yàn)檫@個(gè)片是「纏繞的(convolve)」——上述的視窗移過(guò)圖圖像時(shí)會(huì)與自己重疊。接下來(lái)就是幾個(gè)不同類型的層。最后一層的神經(jīng)元被用于潛在輸出;這些神經(jīng)元的每一次激活(activation)都對(duì)應(yīng)于能識(shí)別圖像的不同標(biāo)簽。在 ModelNet40 挑戰(zhàn)賽數(shù)據(jù)集中,有 40 個(gè)分類,因此最后一層有 40 個(gè)神經(jīng)元。對(duì)于該訓(xùn)練數(shù)據(jù)中所包含的所有分類:第一類可能會(huì)是貓,第二類可能會(huì)是汽車等等。如果這 40 個(gè)神經(jīng)元中的第一個(gè)放電最多,那么,輸入就可被認(rèn)定屬于第一類,也就是貓。
在ModelNet40 挑戰(zhàn)賽數(shù)據(jù)集中,有40類,因此最后一層有40個(gè)神經(jīng)元。第一類可能會(huì)是只貓,第二類可能會(huì)是汽車以及等等。如果第一個(gè)神經(jīng)元正在對(duì)四十個(gè)神經(jīng)元放電,那么,輸入就被認(rèn)定屬于第一類,也就是貓。
這一切假定輸入為一張圖像,即二維。如何將之拓展用于三維輸入?一個(gè)辦法就是將物體當(dāng)作圖像一樣處理,將其投影為二維,這和你的顯示器顯示三維物體的方式一樣;然后,在上面運(yùn)行一個(gè)標(biāo)準(zhǔn)二維的 CNN。實(shí)際上,普林斯頓 ModelNet 挑戰(zhàn)賽中,領(lǐng)先參賽者在像素表征上使用了卷積神經(jīng)網(wǎng)絡(luò),其將任何 3D 物體都處理為一個(gè)幾個(gè)視角下的 2D 投影的集合。FusionNet 確實(shí)在像素表征上也使用了 CNN,但是,關(guān)鍵在于,其還混合了一種新型的三維 CNN。
我們沒(méi)有在一張二維圖像上滑動(dòng)一個(gè)二維的片(patch),我們可以在一個(gè)物體上滑動(dòng)一個(gè)三維的體(volume)!在這種表示方法中,我們就不需要投影的步驟了。這種處理物體的方式使用到了物體的體表示(volumetric representation)。
在我們的體表示中,3D 物體被離散化為 30 x 30 x 30 的體素網(wǎng)格。如果該物體的某一個(gè)部分被表示在了一個(gè) 1 x 1 x 1 的體素中,那么該體素就取值 1,否則就取 0。和之前的成果不一樣,我們同時(shí)使用了像素表示和體素表示來(lái)學(xué)習(xí)物體的特征和對(duì) 3D CAD 物體進(jìn)行分類,而且比單獨(dú)使用這兩種表示中的任何一種的效果都好。這里是一些例子:
圖 1,兩種表示方法。左邊:浴缸、凳子、馬桶和衣柜 3D CAD 物體的 2D 投影;右邊:體素化的浴缸、凳子、馬桶和衣柜
我們構(gòu)建了兩個(gè)卷積神經(jīng)網(wǎng)絡(luò)(V-CNN I 和 V-CNN II)來(lái)處理體素?cái)?shù)據(jù),還有另一個(gè)(MV-CNN)用來(lái)處理像素?cái)?shù)據(jù)。下圖表示了這些網(wǎng)絡(luò)結(jié)合在一起然后給出物體標(biāo)簽的最終決策的方式。這和處理 2D 圖像的、只能從圖像中學(xué)習(xí)空間局部特征的標(biāo)準(zhǔn) CNN 不同。
圖 2. FusionNet 是 V-CNN I、V-CNN II 和 MV-CNN(其基于 AlexNet,并在 ImageNet 上進(jìn)行過(guò)預(yù)訓(xùn)練) 三個(gè)不同網(wǎng)絡(luò)的融合。這三個(gè)網(wǎng)絡(luò)在評(píng)分層(scores layers)融合——評(píng)分層在找到類別預(yù)測(cè)前給出分?jǐn)?shù)的線性組合。前兩個(gè)網(wǎng)絡(luò)使用了體素化的 CAD 模型,后一個(gè)網(wǎng)絡(luò)使用了 2D 投影。
作為 2D 網(wǎng)絡(luò) MV-CNN 的基礎(chǔ),我們?cè)谠?3D 物體的 2D 投影上使用了一個(gè)標(biāo)準(zhǔn)的預(yù)訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)(AlexNet)并熱啟動(dòng)了該網(wǎng)絡(luò)。AlexNet 的預(yù)訓(xùn)練在大型 2D 像素圖像數(shù)據(jù)庫(kù) ImageNet 上完成。因?yàn)橛羞@個(gè)預(yù)訓(xùn)練,許多分類 2D 圖像所需的特征都不需要再?gòu)念^開(kāi)始學(xué)習(xí)。下面的圖示說(shuō)明了我們的 Volumetric CNN 的一種架構(gòu)(V-CNN I)。
圖3
V-CNN I 的靈感來(lái)自 GoogLeNet,其使用了 inception 模塊。inception 模塊是來(lái)自不同大小的核的輸出的串聯(lián)。它可幫助網(wǎng)絡(luò)在不同的規(guī)模上學(xué)習(xí)特征,并把它們放在 inception 模塊后下一個(gè)卷積層的同一個(gè)基礎(chǔ)上。
綜上所述,F(xiàn)usionNet 是三個(gè)卷積神經(jīng)網(wǎng)絡(luò)的融合:一個(gè)是在像素表示上訓(xùn)練的,另兩個(gè)是在體素化的物體上訓(xùn)練的。它可利用每個(gè)組分網(wǎng)絡(luò)的優(yōu)勢(shì)來(lái)提升分類表現(xiàn)。FusionNet 的每一個(gè)組分網(wǎng)絡(luò)都會(huì)在分類之前考慮每個(gè)物體的多個(gè)視角或方向。從多個(gè)視角必然比從單一視角能獲得更多信息,盡管這很直觀,但將所有這些信息聚合起來(lái)用以提升準(zhǔn)確度卻并不常見(jiàn)。我們?cè)陬A(yù)測(cè)物體的分類之前使用了來(lái)自像素表示的 20 個(gè)視角的信息和體素表示的 60 個(gè) CAD 方向。在提交給普林斯頓 ModelNet 排行榜的所有設(shè)計(jì)中,F(xiàn)usionNet 在這個(gè)包含 40 個(gè)分類的數(shù)據(jù)集中實(shí)現(xiàn)了當(dāng)前最優(yōu)的表現(xiàn),表現(xiàn)出了其辨別能力。
論文:FusionNet:使用多數(shù)據(jù)表示的 3D 對(duì)象分類
摘要:高質(zhì)量 3D 物體識(shí)別是許多視覺(jué)系統(tǒng)和機(jī)器人系統(tǒng)的重要組件。我們使用兩種數(shù)據(jù)表示(data representation)解決了物體識(shí)別的問(wèn)題,從而在普林斯頓 ModelNet 挑戰(zhàn)賽上得到了領(lǐng)先的結(jié)果。這兩種數(shù)據(jù)表示方法為:
體表示(Volumetric representation):3D 物體被空間離散為二進(jìn)制體素(binary voxel)——如果該體素被占用就取 1,否則就取 0;
像素表示(Pixel representation):3D 物體被表示為一組投影出來(lái)的 2D 像素圖像。
當(dāng)前提交到 ModelNet 挑戰(zhàn)賽的領(lǐng)先設(shè)計(jì)使用了在像素表示上的卷積神經(jīng)網(wǎng)絡(luò)(CNN)。但是,我們擴(kuò)展了這一趨勢(shì),并額外使用 Volumetric CNN(體卷積神經(jīng)網(wǎng)絡(luò))彌合了上述兩種表示方法之間的效率差異。我們結(jié)合了這兩種表示方法,并使用它們來(lái)學(xué)習(xí)新特征,從而實(shí)現(xiàn)了比單獨(dú)使用其中任何一種都更好的分類器。要實(shí)現(xiàn)這一點(diǎn),我們引入了新的 Volumetric CNN (V-CNN) 架構(gòu)。