論文主要介紹了一種在圖結(jié)構(gòu)上進(jìn)行卷積操作的一種方法,簡稱為ECC梅垄“蓿總結(jié)而言餐屎,ECC的卷積操作和常規(guī)的二維圖像卷積操作都是一種加權(quán)平均操作,不同之處在于ECC可以作用在任何圖結(jié)構(gòu)上玩祟,并且其權(quán)重由節(jié)點(diǎn)間的邊權(quán)所決定腹缩。
Edge-Conditioned Convolution(ECC)
ECC是一種對一個圖的局部信息進(jìn)行卷積的方法。Edge-Conditioned的意思是其卷積核由圖上的邊來決定空扎。
概念與符號定義
- 對于一個有向圖或者無向圖G=(V,E) 藏鹊,|V|=n ,|E|=m ,設(shè)l \in \{0,...,l_{max} \} 為前饋神經(jīng)網(wǎng)絡(luò)的層數(shù)索引转锈。
- 設(shè)圖G的頂點(diǎn)和邊上都有標(biāo)簽(label)盘寡。記第l層的每個頂點(diǎn)的標(biāo)簽(也稱信號或特征)維度為d_l, 則通過矩陣X^l \in \mathbb{R}^{n \times d_l }來表示這n個頂點(diǎn)上的標(biāo)簽。同理以L \in \mathbb{R}^{m \times s}表示邊上的標(biāo)簽(也稱屬性)撮慨。注意到這里竿痰,頂點(diǎn)上的標(biāo)簽維度會隨著層數(shù)的改變而改變,而邊上的標(biāo)簽維度s不隨著網(wǎng)絡(luò)層數(shù)而變化甫煞。記X^0為輸入信號菇曲。
- 頂點(diǎn)i的鄰居被定義為與i直接相連的頂點(diǎn)(在有向圖中則為i的先輩節(jié)點(diǎn))以及i本身,即:
N(i) = \{j; (j,i) \in E\} \cup \{i\}
ECC具體方法
對于一個頂點(diǎn)抚吠,ECC的作用域?yàn)槠渌朽従印?/p>
第l層的第i個頂點(diǎn)的特征值X^l(i) \in \mathbb{R}^{d_l}為是由第l-1層i的所有鄰居的特征值X^{l-1}(j) \in \mathbb{R}^{d_{l-1}}加權(quán)求和得到的。
若要解決頂點(diǎn)無序性以及鄰居節(jié)點(diǎn)數(shù)目不確定的問題弟胀,顯然以常規(guī)的方法定義權(quán)重是行不通的(比如二維矩陣上的卷積核定義)楷力。ECC的做法:定義一簇可學(xué)習(xí)的(learnable)函數(shù)F^l: \mathbb{R}^s \mapsto \mathbb{R}^{d_l \times d_{l-1}} 喊式,其輸入是一條邊e_{ji}上的標(biāo)簽值L(j,i),輸出則是一個權(quán)重矩陣\Theta_{ji}^l \in \mathbb{R}^{d_l \times d_{l-1}}萧朝。那么ECC則可表示為:
X^l(i) = \frac{1}{N(i)} \sum_{j \in N(i)}F^{l}(L(j,i); \omega^l)X^{l-1}(j) + b^l
= \frac{1}{N(i)} \sum_{j \in N(i)}\Theta_{ji}^l X^{l-1}(j) + b^l
其中b^l \in \mathbb{R}^{d_l}是一個learnable的偏置岔留,\omega^l是函數(shù)F^l的learnable的參數(shù)。文中使用多層感知機(jī)mlp來表示函數(shù)F^l检柬。在訓(xùn)練階段献联,b^l ,\omega^l在每一次迭代時都會被更新何址。測試階段里逆,b^l ,\omega^l都不會再變化用爪,而\Theta_{ji}^l的具體值仍依賴于給定的邊e_{ji}上的標(biāo)簽值L(j,i)原押。因此ECC是一種使用了動態(tài)卷積核的方法。
點(diǎn)云上的應(yīng)用
點(diǎn)云(PointCloud)也可以被視為一種圖結(jié)構(gòu)偎血。論文介紹了在原始點(diǎn)云數(shù)據(jù)結(jié)構(gòu)上進(jìn)行構(gòu)圖以及對其進(jìn)行下采樣的方法诸衔。
點(diǎn)云構(gòu)圖 Graph Construction on point cloud P
用點(diǎn)云中每個點(diǎn)p作為圖G中的每個頂點(diǎn)v
每個頂點(diǎn)v的初始取值為相應(yīng)的p的特征值(密度、RGB值等)
頂點(diǎn)v_i的空間鄰域內(nèi)的所有頂點(diǎn)v_j被認(rèn)為是v_i的鄰居颇玷”颗空間領(lǐng)域可以有多種取法,可以用knn取帖渠,也可以在固定半徑的范圍內(nèi)取磁餐,實(shí)驗(yàn)中固定半徑的方法更好
將v_i與其所有鄰居v_j以有向邊e(j,i)相連
每條邊的label以一個6維向量來表示:
L(j; i) = (δx, δy, δz, ||δ||, arccos( δz/||δ||) ,arctan(δy/δx) ).
其中\delta=p_j - p_i , 即p_j,p_i 兩點(diǎn)在歐氏空間下的向量偏移。上式中前三個分量為\delta 在笛卡爾坐標(biāo)系下的坐標(biāo)值阿弃,后三個分量為其在球坐標(biāo)系下的坐標(biāo)值
點(diǎn)云下采樣 Graph Coarsening on point cloud P
使用VoxelGrid方法對點(diǎn)云進(jìn)行粗粒度化(也即pooling)诊霹。具體做法:
- 使用一個分辨率為r^h的3d網(wǎng)格框住整個點(diǎn)云P^{h-1}
- 對于網(wǎng)格中的每個voxel, 用該voxel中的中心點(diǎn)來表示該voxel內(nèi)的所有點(diǎn)
- 用上一節(jié)的方法對新的點(diǎn)云P^h進(jìn)行圖的構(gòu)造,得到更粗粒度的圖G^{h}
按論文中的說法,對于每一個輸入圖G渣淳,都事先使用Graph Coarsening方法為其建立一個h^{max}層的圖金字塔脾还,金字塔的層數(shù)越高,對應(yīng)的圖具有更粗的粒度入愧。然后在網(wǎng)絡(luò)的pooling層鄙漏,則根據(jù)金字塔中對應(yīng)的相鄰層的結(jié)點(diǎn)映射關(guān)系來執(zhí)行pooling操作。