技術思辨:GCN和CNN到底有什麼差別?
寫在前面
之前偶然在一本書中了解到19世紀末在美國很流行的一種成人教育叫「肖托誇」運動。人們通過這種運動,交流思想,分享知識。隨著電視、電影、廣播的興起,這種運動沒落了。
隨著互聯網的興起,它演變成了很多其他的形式。比如通過線上的社群...
很感謝願意參與我們技術交流的夥伴們,希望能夠有更多的交流和思想碰撞。
圖卷積神經網路和圖信號處理的聯繫在哪裡?
拉普拉斯矩陣的特徵向量就是基函數,這相當於把網路的結構信息嵌入神經網路,那學習的是基函數前面的權係數,不知道這樣理解對不對?
原始GCN論文中,很多內容是為了簡化計算,對譜方法作一階近似,這一塊我覺得不必理會,GCN本質就是個Message Passing的過程,通過堆疊層數來獲得全局信息,相比譜方法有工程上的極大優勢而已,和特徵向量也沒有關係。
Message Passing到底是個什麼過程?
感覺和圖卷積神經網路的介紹有點脫節。可能做大數據或者人工智慧的覺得GNN並沒有什麼特殊,但個人覺得對於有明確物理結構的研究對象,GNN比CNN的結果可能更有實在的物理意義。
可以通過Graphsage來理解。一個節點的特性是由它所在位置的鄰居節點給塑造出來的,所以在對一個節點表示學習時就要把這些周圍的鄰居節點的信息給聚集到中心節點上。這樣我就有了Message Passing的過程,就是從鄰居節點到中心節點。
這個過程好理解,但是跟GNN的聯繫是什麼呢?是在優化過程中體現的還是?
工程上都是效率為先,對於大數據而言,n^2的複雜度是承受不起的,所以GCN只是找到了一個實際可行的計算路徑來學習結構信息。
思辨:
個人感覺一味的強調鄰居節點的影響有失偏頗,顯然很多個體特徵是源於外界的環境(並非鄰居,而這種外界的環境我們無法建模,甚至不知道存不存在),過分強調關聯而忽視了個體自身的特點,一個簡單的例子是,多個彈簧用繩子連在一起組成的系統,且這些彈簧下均掛有重物,如果簡單看彈簧的連接關係,而忽視彈簧下重物的特點,似乎不太合理。
過分強調關聯而忽視自身的現象稱為Over Smooth,GCN的確存在,但也有解決的法子,原GCN論文裡面闡述個這個現象。
參考論文:
1. Semi-Supervised Classification with Graph Convolutional Networks
https://arxiv.org/abs/1609.02907
2. Representation Learning on Graphs with Jumping Knowledge Networks
http://proceedings.mlr.press/v80/xu18c/xu18c.pdf
「GCN只是找到了一個實際可行的計算路徑來學習結構信息」這個具體是什麼意思,感覺如果是求基前面的係數,利用梯度下降計算就可以了呀?
GCN跟基向量沒有關係,在理解GCN的時候不用和譜方法類比。
那論文中推導的拉普拉斯矩陣的特徵向量的目的是?
我的理解是作者是想給GCN找了個理論解釋:GCN的是譜方法的一階近似。
神經網路學習的是權重,CNN學習的是核,那GCN到底學習的是啥?這麼一說好像又和圖的拓撲沒有關係?
CNN也不符合嚴格數學意義上的卷積定義,CNN和GCN都只是比較契合數據本身的拓撲結構在進行計算。gcn雖然解釋的時候是用譜方法解釋的,但是已經簡化太多了。
作者博客:
https://tkipf.github.io/graph-convolutional-networks/
質疑:
https://www.inference.vc/how-powerful-are-graph-convolutions-review-of-kipf-welling-2016-2/
理論到底是如何得來的呢?包括GNN里的權值共享也不明白。Message Passing是說明GNN怎麼求權重的么?
Message passing 是說明怎麼做forward計算,權重通過BP來學習。
另有:這個graph的卷積操作我就當做拓撲空間上的濾波器。說白了就是距離的計算,我這個點跟誰比較近。在Graph上面就是有邊的距離近。像CNN呢,就是我們說的坐標空間,歐式空間,天生可以判斷距離。所以,我理解的就是CNN就不需要那個鄰接矩陣了。GCN就需要鄰接矩陣告訴你誰比較近。如果沒有,只有點沒有變,變成非歐式空間的流形,我覺得還需要自己定義距離矩陣。
鄰接矩陣的信息怎麼用的?
公式如下:
我的粗淺的理解下:H這裡如果對比成圖像的話,就是把圖像展開。每一個像素點,排列,先先變成一維向量。這個時候要做卷積,就需要通過A來控制你要拿哪些點出來了。就比如說一個像素點c周圍的卷積,由於展開了,你不能做操作了。但你還想做以前的那種卷積操作,你需要A來控制。
可是還是有問題,他這個是在頻域內(拉普拉斯特徵向量張成的域內)卷積,實際上做的是時域的乘積,不能只看卷積,而是要看時域乘積到底在幹什麼?
這是簡單做一個非歐空間和歐式空間對比,非專業CNN。圖像上歐式空間自帶空間卷積,Graph這種非歐空間的情況下想要知道每個節點的鄰居是誰,就需要用到鄰接矩陣(空間的相似度矩陣)來控制了,乘以它。這樣一看CNN是個特例,自帶相似度矩陣。這是大致的CNN與GCN的關係。


TAG:極驗 |