參考博客:https://blog.csdn.net/weixin_43450885/article/details/105296033
https://www.zhihu.com/question/54504471
1.引言
傳統的CNN由於具有平移不變性(即每個節點的鄰居結點數都是固定的),經過訓練可以很好的提取一些高層次的語義信息,但是對於一些社交網絡,腦連接這些高維不規則型網格數據CNN並不能很好的工作,或者說沒有辦法去工作。文章考慮這種情況,擴展了CNN在更一般域上信號的可能推廣,提出了空間域和頻域上卷積操作的推廣算法。一種是基於域的層次聚類(空間域),一種是基於圖的拉普拉斯譜(頻域,較為復雜,不是太懂)。最后對minst數據集進行測試,baseline為knn。
2.傳統CNN
在傳統的歐式空間中(以圖像為例),在卷積時需要設置一定大小的步長,如stride = (3,3),假設input_image.shape = (18,18),kernel = (3,3),out_image.shape = (6,6),這個操作相當於在18×18個像素點中找到了6×6個聚類中心,將其進行聚類操作,每個類中的元素為中心點的鄰域元素。將每個類與卷積核對應項相乘求和,得到輸出的一個像素點。這是傳統的卷積操作,可以看作一個聚類的操作。
傳統的卷積操作相比於一般的線性映射有權重共享等優勢,其次還有多尺度二進聚類允許子采樣,即分層次表達信息並綜合考量;再者也支持緊密連接的濾波器可以自動提取圖像特征。
3.改良的卷積操作--深度局部連接網絡(空間域上的改良)
3.1鄰域的概念
在傳統的歐式空間中(以圖像為例),在卷積時需要設置一定大小的卷積核,如 kernel = (3,3),就是相當於中心像素點的鄰域為周圍的8個像素點。
在圖中,利用WWW來確定每個節點的鄰域。論文中給出公式:
表示以δ為閾值,大於它的才是j結點的鄰域
3.2深度局部連接網絡構造原理--(空間域)
上述公式中,k表示第k個尺度,可以理解為第k個卷積層,定義Ωk表示第k層的輸入節點數目,dk-1表示第k-1層的聚類類數,即第k層的輸入數目,即Ωk=dk-1
每層輸出的Xk公式如下:
其中,fk-1表示k-1層的濾波器個數,也是k層中每個節點的特征維數。Xk表示輸入數據,他的大小跟上一層的輸出數據相同,上一層的輸出數據與該層聚類類數和濾波器個數有關,所以,Xk的shape為(dk-1,fk-1)。Fk,i j表示第k層第j個濾波器的第i個值,若x和y節點不是鄰域關系,Fk,i j(x,y)的值為0.
上述意思是h為非線性激勵函數,L為池化操作,h括號中的相當於卷積操作。
4.頻域意義上的卷積操作結果公式分析
4.1公式推導過程---(我也不清楚。。)
對於上述推導我並不是太明白,但我們只需明白公式11的含義及其表達意義即可
在公式(11)中,等式表示由Xk,i經過一系列變換為Xk+1,j,其中Xk,i可以理解為輸入信號,由傅里葉和拉普拉斯定義的卷積操作對每個輸入信號進行卷積操作后進行累加,得出一個值,該值可以理解為Feature maps,由擴展卷積操作后提取的Feature maps,Xk,i的具體含義是第K層上所有結點的第i個特征拼接形成的向量,Fk,i,j可以理解為濾波器,VT起到一個發現到底有沒有相鄰節點的作用。最后做一個非線性映射激活。
5.小結
該論文提出了一種處理非結構數據的方法,最大程度保留CNN在提取特征時的好處和優點,將其運用在非結構數據提取特征的渠道上,並具有較強的可解釋性。論文的其他部分類似於一些優化操作的部分,我覺得這種思想是最重要的,所以后續可能會更新些其他小的部分。自己太菜了。。。。。嗚嗚嗚
最后附一個GitHub的該文章代碼實現(轉):
https://github.com/Ivan0131/gcn_demo/blob/master/graph_convolution_network.ipynb
6.補充
直觀理解圖卷積網絡-----------https://mp.weixin.qq.com/s/sg9O761F0KHAmCPOfMW_kQ
數學角度理解圖卷積網絡-----https://blog.csdn.net/lijunweiyhn/article/details/87926425