圖卷積網絡GCN理解

圖卷積網絡(Graph Convolutional Network,GCN)是近年來逐漸流行的一種神經網絡結構。不同於只能用於網格結構(grid-based)數據的傳統網絡模型 LSTM 和 CNN,圖卷積網絡能夠處理具有廣義拓撲圖結構的數據,並深入發掘其特徵和規律,例如 PageRank 引用網絡、社交網絡、通信網絡、蛋白質分子結構等一系列具有空間拓撲圖結構的不規則數據。相比於一般的拓撲圖而言,人體骨骼拓撲圖具有更加良好的穩定性和不變性,因此從2018年開始,就有許多學者嘗試將圖卷積網絡應用到基於人體骨骼的行爲識別領域來,也取得了不錯的成果。下面就讓我們來深入瞭解一下什麼是圖卷積網絡,以及它在行爲識別領域的最新工作進展吧!

什麼是圖(graph)?爲什麼要研究GCN?

我們知道,CNN 在處理圖像數據時具有很強的特徵抽取能力和整合能力,這得益於卷積核(kernel ,or filter)的參數共享機制和加權平均機制。卷積本質上就是一種加權求和的過程,而卷積核的參數就是不同像素點對應的權重,並且不同的圖片都共享同一個卷積核,這使得CNN能夠通過對卷積核參數的迭代更新來隱式的學習圖像中具有的像素排列規律,進而學習到不同的形狀特徵和空間特徵。

但值得注意的一點是,CNN 所處理的數據都具有規則的網格結構,也就是排列很整齊的矩陣,具有 Euclidean Structure,例如 RGB 圖片(圖1)。如果要將CNN應用於非圖像領域,就必須將數據組合爲規整的網絡結構,才能作爲CNN的輸入。例如在 18 年之前的行爲識別研究中,常用的方法就是以一定的順序將一個動作的關節座標序列轉換爲一張 RGB 圖片,從而將動作識別工作轉化爲圖像識別工作。

大家都在談的圖卷積網絡是什麼?——行爲識別領域一顆新星

圖1 規則空間結構數據

然而現實生活和科學研究中有很多數據都不具備完整的矩陣結構,相反,更多的是以一定的連接關係聚合在一起,如圖2所示。社交網絡,通信網絡,互聯網絡等都具有類似的結構。

大家都在談的圖卷積網絡是什麼?——行爲識別領域一顆新星

圖2 社交網絡拓撲圖

類似這樣的網絡結構就是圖論中所定義的拓撲圖。更一般的,圖就是指圖論中用頂點和邊建立相應關係的拓撲圖。我們可以用一個點和邊的集合來表示圖:G=(E,V);其中E表示邊的集合,V表示頂點的集合。

那麼對於這種具有拓撲圖結構的數據而言,CNN 處理起來是非常困難的(但也不是沒有辦法哦),而且通常不能很好的抽取節點與節點之間的連接關係信息(是否相連),這也是我們研究 GCN 的重要原因。當然,根本的原因還是在於數據的多樣性,廣義上來講,任何數據在賦範空間內都可以建立拓撲關聯,譜聚類就是應用了這樣的思想。所以說拓撲連接是一種廣義的數據結構,GCN 有很大的應用空間。

圖卷積操作如何進行呢?

目前有兩種類型的圖卷積操作,一種是基於空域的圖卷積,另一種是基於譜域的圖卷積,這裏着重介紹第一種。

前面我們提到,卷積操作的本質意義就是對一個範圍內的像素點進行加權求平均,這能有助於提取空間特徵,那麼如何將這種思想應用到拓撲圖上呢?我們可以換一種方式來理解卷積操作,如圖3,對於feature map(藍色部分)中的一個點(紅色),其特徵值實際上是周圍所有像素點將特徵值傳播到中心點後進行加權平均,這種操作等效於傳統的卷積操作,只不過我們人爲的爲特徵添加了一個傳播方向(邊),將每個像素點當成頂點,從而在圖結構上再次定義了卷積操作。

大家都在談的圖卷積網絡是什麼?——行爲識別領域一顆新星

圖3 卷積操作的另一種理解

進一步的,對於廣義拓撲圖結構的數據,也可以按照這種思想來定義卷積操作,如圖4所示,將每個節點的鄰居節點的特徵傳播到該節點,再進行加權平均,就可以得到該點的聚合特徵值,只不過在 CNN 中,我們將這個聚合特徵值當做了 feature map 中的一個點,而在 GCN 中沒有 feature map 的概念,我們直接將這個聚合特徵值作爲傳播到下一層的特徵值。藍色部分就是圖卷積操作對應的 kernel,這裏是爲了理解才畫出這個藍色區域,在 GCN 中也沒有 kernel 的概念,這也是因爲圖是不規則的。

類似於 CNN,圖卷積也採用共享權重,不過不同於 CNN 中每個 kernel 的權重都是規則的矩陣,按照對應位置分配,圖卷積中的權重通常是一個集合。在對一個節點計算聚合特徵值時,按一定規律將參與聚合的所有點分配爲多個不同的子集,同一個子集內的節點採用相同的權重,從而實現權重共享。例如對於圖4,我們可以規定和紅色點距離爲 1 的點爲 1 鄰域子集,距離爲 2 的點爲 2 鄰域子集。當然,也可以採用更加複雜的策略,例如按照距離圖重心的遠近來分配權重。權重的分配策略有時也稱爲 label 策略,對鄰接節點分配 label,label 相同節點的共享一個權重。

到這裏想必你已經發現了,其實圖卷積操作就是傳統的卷積操作在拓撲圖上的概念延伸和轉移,通過對比二者,你能更好的學習到圖卷積網絡的精髓。

大家都在談的圖卷積網絡是什麼?——行爲識別領域一顆新星

圖4 拓撲圖上的卷積操作

特徵在層與層之間的傳播方式可以用公式表示如下:

 

大家都在談的圖卷積網絡是什麼?——行爲識別領域一顆新星

 

其中 Hi 是第 i 層的特徵矩陣,當 i=0時,H0 就表示輸入圖的節點特徵矩陣。A是輸入圖的鄰接矩陣,Wi表示第i層的權重矩陣。σ表示激活函數。通過鄰接矩陣左乘特徵矩陣,可以實現特徵的聚合操作,然後再右乘權重矩陣,可以實現加權操作。權重矩陣W和鄰接矩陣H是用圖卷積做行爲識別工作時的重點研究對象。鄰接矩陣的示例如下圖:

大家都在談的圖卷積網絡是什麼?——行爲識別領域一顆新星

圖5 鄰接矩陣示例

如果兩個節點相鄰,那麼在矩陣中對應位置爲1,否則爲0。這是一種非常基礎的定義,不同的行爲識別工作會在此基礎上設計不同的變體定義。

概括的來說,圖卷積操作就是將每個節點的特徵與其鄰居節點的特徵加權平均後傳播到下一層。這種圖卷積操作稱爲在空域上的圖卷積,有如下幾個特點:

1. 隨着層數的加深,每個節點能聚合到的特徵越遠,也就是感受野越大。

2. 權重是共享的,不會具體到每個節點,這和傳統CNN相同。(直觀的理解,如果權重是因節點而不同的,那麼一旦圖結構發生變化,權重就會立刻失效)

3.每個頂點的鄰居節點數可能不同,這導致鄰居節點多的頂點的特徵值更顯著。

4.鄰接矩陣在計算時無法將節點自身的特徵包含到聚合特徵值中。

此外,爲了克服空域圖卷積的缺點,學者們提出了譜域上的圖卷積,大概思想是利用圖的拉普拉斯矩陣和傅里葉變換來進行卷積操作。基於譜域的圖卷積目前在行爲識別中應用較少,並且原理非常複雜,這裏不做詳細介紹,有興趣的同學可以閱讀相關文章。

 

 

 

 

其他:

如何理解 Graph Convolutional Network(GCN)?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章