A. 什麼是圖神經網路
圖說的是計算機拓撲裡面的圖
就是那個有邊和節點,有向圖,無向圖的那個。
以這種數據結構為輸入並進行處理的神經網路就是圖神經網路了,結構會不太一樣,但是大同小異了。
B. GNN(一) 圖神經網路基本知識
圖是由點和邊構成的,它可以分為兩種表示方法分別是: 1. 有向圖 2. 無向圖
圖像的度分為兩種:1. 有向圖的度 2. 無向圖的度
①度 可以理解為點之間的連接線 ②入度指向當前節點的連線, 出度當前節點連出去的連線
子圖表示某張圖的子集
對於一個無向圖,如果任意的節點i能夠通過一些邊達到節點j,則稱之為連通圖
其中對於圖中任意兩點都可以 相互 到達,我們稱之為強連通圖,反之稱為弱連通圖。
可以理解為所有的連通在一起的圖算一個連通分量。如上圖左邊連通分量是1, 右邊連通分量是2。
圖中的兩個節點所能達到的最短路徑。
圖中的兩兩節點最短路徑最大的值稱之為圖直徑。
在圖論和網路分析中,中心性(Centrality)是判斷網路中節點重要性/影響力的指標。在社會網路分析中,一項基本的任務就是鑒定一群人中哪些人比其他人更有影響力,從而幫助我們理解他們在網路中扮演的角色。
公式:
重要的節點就是擁有許多連接的節點, 你的社會關系越多, 你的影響力就越強
思想就是與你連接的人越重要,你也就越重要
公式:
中間成員對路徑兩端的成員具有「更大的人際關系影響」。
接近中心性高的節點一般扮演的是八婆的角色(gossiper)。他們不一定是名人,但是樂於在不同的人群之間傳遞消息。
指出去的為hub, 被指的為authority
C. 為什麼有圖卷積神經網路
本質上說,世界上所有的數據都是拓撲結構,也就是網路結構,如果能夠把這些網路數據真正的收集、融合起來,這確實是實現了AI智能的第一步。所以,如何利用深度學習處理這些復雜的拓撲數據,如何開創新的處理圖數據以及知識圖譜的智能演算法是AI的一個重要方向。
深度學習在多個領域的成功主要歸功於計算資源的快速發展(如 GPU)、大量訓練數據的收集,還有深度學習從歐幾里得數據(如圖像、文本和視頻)中提取潛在表徵的有效性。但是,盡管深度學習已經在歐幾里得數據中取得了很大的成功,但從非歐幾里得域生成的數據已經取得更廣泛的應用,它們需要有效分析。如在電子商務領域,一個基於圖的學習系統能夠利用用戶和產品之間的交互以實現高度精準的推薦。在化學領域,分子被建模為圖,新葯研發需要測定其生物活性。在論文引用網路中,論文之間通過引用關系互相連接,需要將它們分成不同的類別。自2012年以來,深度學習在計算機視覺以及自然語言處理兩個領域取得了巨大的成功。假設有一張圖,要做分類,傳統方法需要手動提取一些特徵,比如紋理,顏色,或者一些更高級的特徵。然後再把這些特徵放到像隨機森林等分類器,給到一個輸出標簽,告訴它是哪個類別。而深度學習是輸入一張圖,經過神經網路,直接輸出一個標簽。特徵提取和分類一步到位,避免了手工提取特徵或者人工規則,從原始數據中自動化地去提取特徵,是一種端到端(end-to-end)的學習。相較於傳統的方法,深度學習能夠學習到更高效的特徵與模式。
圖數據的復雜性對現有機器學習演算法提出了重大挑戰,因為圖數據是不規則的。每張圖大小不同、節點無序,一張圖中的每個節點都有不同數目的鄰近節點,使得一些在圖像中容易計算的重要運算(如卷積)不能再直接應用於圖。此外,現有機器學習演算法的核心假設是實例彼此獨立。然而,圖數據中的每個實例都與周圍的其它實例相關,含有一些復雜的連接信息,用於捕獲數據之間的依賴關系,包括引用、朋友關系和相互作用。
最近,越來越多的研究開始將深度學習方法應用到圖數據領域。受到深度學習領域進展的驅動,研究人員在設計圖神經網路的架構時借鑒了卷積網路、循環網路和深度自編碼器的思想。為了應對圖數據的復雜性,重要運算的泛化和定義在過去幾年中迅速發展。
D. AlphaGo的神奇全靠它,詳解人工神經網路!
Alphago在不被看好的情況下,以4比1擊敗了圍棋世界冠軍李世石,令其名震天下。隨著AlphaGo知名度的不斷提高,人們不禁好奇,究竟是什麼使得AlphaGo得以戰勝人類大腦?AlphaGo的核心依託——人工神經網路。
什麼是神經網路?
人工神經網路是一種模仿生物神經網路(動物的中樞神經系統,特別是大腦)的結構和功能的數學模型或計算模型。神經網路由大量的人工神經元聯結進行計算。大多數情況下人工神經網路能在外界信息的基礎上改變內部結構,是一種自適應系統。現代神經網路是一種非線性統計性數據建模工具,常用來對輸入和輸出間復雜的關系進行建模,或用來探索數據的模式。
神經網路是一種運算模型,由大量的節點(或稱“神經元”,或“單元”)和之間相互聯接構成。每個節點代表一種特定的輸出函數,稱為激勵函數。每兩個節點間的連接都代表一個對於通過該連接信號的加權值,稱之為權重,這相當於人工神經網路的記憶。網路的輸出則依網路的連接方式,權重值和激勵函數的不同而不同。而網路自身通常都是對自然界某種演算法或者函數的逼近,也可能是對一種邏輯策略的表達。
例如,用於手寫識別的一個神經網路是被可由一個輸入圖像的像素被激活的一組輸入神經元所定義的。在通過函數(由網路的設計者確定)進行加權和變換之後,這些神經元被激活然後被傳遞到其他神經元。重復這一過程,直到最後一個輸出神經元被激活。這樣決定了被讀取的字。
它的構築理念是受到人或其他動物神經網路功能的運作啟發而產生的。人工神經網路通常是通過一個基於數學統計學類型的學習方法得以優化,所以人工神經網路也是數學統計學方法的一種實際應用,通過統計學的標准數學方法我們能夠得到大量的可以用函數來表達的局部結構空間,另一方面在人工智慧學的人工感知領域,我們通過數學統計學的應用可以來做人工感知方面的決定問題(也就是說通過統計學的方法,人工神經網路能夠類似人一樣具有簡單的決定能力和簡單的判斷能力),這種方法比起正式的邏輯學推理演算更具有優勢。
人工神經網路是一個能夠學習,能夠總結歸納的系統,也就是說它能夠通過已知數據的實驗運用來學習和歸納總結。人工神經網路通過對局部情況的對照比較(而這些比較是基於不同情況下的自動學習和要實際解決問題的復雜性所決定的),它能夠推理產生一個可以自動識別的系統。與之不同的基於符號系統下的學習方法,它們也具有推理功能,只是它們是建立在邏輯演算法的基礎上,也就是說它們之所以能夠推理,基礎是需要有一個推理演算法則的集合。
2AlphaGo的原理回頂部
AlphaGo的原理
首先,AlphaGo同優秀的選手進行了150000場比賽,通過人工神經網路找到這些比賽的模式。然後通過總結,它會預測選手在任何位置高概率進行的一切可能。AlphaGo的設計師通過讓其反復的和早期版本的自己對戰來提高神經網路,使其逐步提高獲勝的機會。
從廣義上講,神經網路是一個非常復雜的數學模型,通過對其高達數百萬參數的調整來改變的它的行為。神經網路學習的意思是,電腦一直持續對其參數進行微小的調整,來嘗試使其不斷進行微小的改進。在學習的第一階段,神經網路提高模仿選手下棋的概率。在第二階段,它增加自我發揮,贏得比賽的概率。反復對極其復雜的功能進行微小的調整,聽起來十分瘋狂,但是如果有足夠長的時間,足夠快的計算能力,非常好的網路實施起來並不苦難。並且這些調整都是自動進行的。
經過這兩個階段的訓練,神經網路就可以同圍棋業余愛好者下一盤不錯的棋了。但對於職業來講,它還有很長的路要走。在某種意義上,它並不思考每一手之後的幾步棋,而是通過對未來結果的推算來決定下在哪裡。為了達到職業級別,AlphaGp需要一種新的估算方法。
為了克服這一障礙,研究人員採取的辦法是讓它反復的和自己進行對戰,以此來使其不斷其對於勝利的估算能力。盡可能的提高每一步的獲勝概率。(在實踐中,AlphaGo對這個想法進行了稍微復雜的調整。)然後,AlphaGo再結合多線程來使用這一方法進行下棋。
我們可以看到,AlphaGo的評估系統並沒有基於太多的圍棋知識,通過分析現有的無數場比賽的棋譜,以及無數次的自我對戰練習,AlphaGo的神經網路進行了數以十億計的微小調整,即便每次只是一個很小的增量改進。這些調整幫助AlphaGp建立了一個估值系統,這和那些出色圍棋選手的直覺相似,對於棋盤上的每一步棋都了如指掌。
此外AlphaGo也使用搜索和優化的思想,再加上神經網路的學習功能,這兩者有助於找到棋盤上更好的位置。這也是目前AlphaGo能夠高水平發揮的原因。
3神經網路的延伸和限制回頂部
神經網路的延伸和限制
神經網路的這種能力也可以被用在其他方面,比如讓神經網路學習一種藝術風格,然後再將這種風格應用到其他圖像上。這種想法很簡單:首先讓神經網路接觸到大量的圖像,然後來確認這些圖像的風格,接著將新的圖像帶入這種風格。
這雖然不是偉大的藝術,但它仍然是一個顯著的利用神經網路來捕捉直覺並且應用在其他地方的例子。
在過去的幾年中,神經網路在許多領域被用來捕捉直覺和模式識別。許多項目使用神經這些網路,涉及的任務如識別藝術風格或好的視頻游戲的發展戰略。但也有非常不同的網路模擬的直覺驚人的例子,比如語音和自然語言。
由於這種多樣性,我看到AlphaGo本身不是一個革命性的突破,而是作為一個極其重要的發展前沿:建立系統,可以捕捉的直覺和學會識別模式的能力。此前計算機科學家們已經做了幾十年,沒有取得長足的進展。但現在,神經網路的成功已經大大擴大,我們可以利用電腦攻擊范圍內的潛在問題。
事實上,目前現有的神經網路的理解能力是非常差的。神經網路很容易被愚弄。用神經網路識別圖像是一個不錯的手段。但是實驗證明,通過對圖像進行細微的改動,就可以愚弄圖像。例如,下面的圖像左邊的圖是原始圖,研究人員對中間的圖像進行了微小的調整後,神經網路就無法區分了,就將原圖顯示了出來。
另一個限制是,現有的系統往往需要許多模型來學習。例如,AlphaGo從150000場對戰來學習。這是一個很龐大額度數字!很多情況下,顯然無法提供如此龐大的模型案例。
E. GNN——圖網路相關知識整理
Due to its performance in non-euclidean spatial data, GNN methods are graally appealing to the attention of researchers. Traditional deep neural networks take Euclidean-structured data as input, which is one of the reasons for its excellent performance in computer vision and other fields. However, in real life, there are many non-euclidean data, such as social network, retail network and biological network. In the field of brain neuroinformatics where the author focuses, one of the most commonly used methods of brain image analysis is voxel-based morphology, but different areas of the human brain are usually correlated and interacting, the brain network constructed based on which can reveal the higher-level brain activity mechanism. Similar to other topological network data, brain network is usually represented in the form of connection matrices, which cannot be directly vectorized and fed into machine learning models. However, the emergence of graph network analysis method breaks the deadlock.
得益於其在非歐幾里得空間數據中的表現,圖網路研究方法正逐漸吸引著研究人員的關注。傳統的深度神經網路將歐幾里得空間結構化數據作為輸入,這也是其在計算機視覺等領域有著優異表現的原因之一。但現實生活中往往存在著各種非歐幾里得結構的數據,例如社交網路數據、零售網路數據以及生物網路數據等。以筆者所處的腦神經信息學領域來說,目前常用的腦神經影像分析手段都是基於體素的形態學分析,但人腦的不同區域往往存在著相互關聯和影響,以此為基礎構建出的腦網路往往能反映出更深層次的大腦活動機理。而正如其他網路拓撲結構數據,腦網路通常以連接矩陣的形式表示,無法通過直觀的手段將其向量化,作為機器學習模型的輸入。而圖網路分析方法的出現打破了這種僵局。
Simply put, a graph is an abstract and irregular data structure that can be used to describe and model complex systems. Different from Euclidean spatial data, graphs in real world usually have complex topological structure and huge data size. Using traditional graph analysis methods would be difficult to achieve the same level of performance as applications of machine learning like computer vision, while existing machine learning algorithms cannot be applied to graph data straightforward. In view of this, how to combine machine learning with graph data analysis method, capture the interactions between data nodes in graphs and mine the information therein, has become a hot trend in the field of machine learning.
簡單來說,圖是一種抽象而不規則的數據結構,可以用於描述和建模復雜的系統。不同於歐幾里得空間數據,現實中的圖往往具有復雜的拓撲結構和龐大的數據量,傳統的圖分析方法難以實現與計算機視覺領域相當的應用水平和模型性能,而現有的機器學習演算法不能直接應用於圖數據中。鑒於此,如何將機器學習與圖數據分析方法結合起來,捕捉圖結構中數據之間的依賴關系,挖掘其中的信息,成為了機器學習領域的一股熱潮。
Generally, before data is fed into machine learning algorithm models, it needs to be processed to extract valuable features, which can not only improve the quality of input data, but also greatly improve the reliability and performance of the model. This process is called feature engineering. Since the quality of feature engineering methods directly determines the performance of models, the research of data mining focuses on the handcrafted design and extraction of valuable features for specific data. For example, neuroimaging data often contains a lot of noise and has very high resolution, which is not suitable for direct input to machine learning models. Therefore, we preprocess the data and calculate the corresponding feature vectors, which are fed into the analysis model.
通常,在將數據輸入到強大的機器學習演算法模型中之前,需要將其進行一定的處理,提取出有價值的特徵,這樣不僅可以提高數據的質量,更能大大提升模型的可靠性和性能,這一處理過程被稱作特徵工程。正因為特徵工程方法的好壞直接決定著模型的性能,數據挖掘的研究都將重心放在了針對特定的數據人工設計有價值的特徵上。舉例來說,神經影像數據通常作為包含著多種噪音,並且解析度極高,不適合直接作為機器學習模型的輸入。因此筆者將數據進行一定的預處理並計算出相應的特徵向量,在輸入到分析模型中。
Deep learning is essentially a kind of "feature engineering", or mostly called "feature learning". This is because the general idea of deep learning is to transform the original data into higher-level features through the nonlinear transformation model of neural network, and these features are usually a vector that can be used as the input of classifiers. The graph convolutional neural network mentioned in this section is a method that can represent the nodes and edges in the graph using feature vectors to serve as the input of high-performance machine learning algorithm model. This method of embedding graph nodes into low-dimensional Euclidean space is also called graph embedding method.
深度學習本質上就是一種「特徵工程」,更多地被稱為「特徵學習」。這是由於深度學習的思想就是將原始數據通過神經網路這一非線性變換模型轉變為更高層次的特徵,而這些特徵通常是一個向量,可以作為分類器的輸入。本節提到的圖卷積神經網路就是一種能夠將圖中的節點和邊使用特徵向量表示出來,以作為高性能機器學習演算法模型的輸入的方法,這種將圖節點嵌入到低維歐幾里得空間中的方法也稱作圖嵌入方法。
上面給出的是圖卷積運算元的計算公式,設中心節點為 , 是節點 在第 層的特徵表達, 是歸一化因子,如取節點度的倒數, 是節點 的鄰節點,包含自身, 是節點 的類型, 表示 類型節點的變換權重參數, 表示激活函數。
According to problems in the field of neuro-informatics, the application of graph neural network in which is mainly graph classification, namely after the construction of brain function network and features are added in the corresponding nodes, using GCN to learn the high-level features of brain networks, using full connection layer to extract vectorized features or directly using global average pooling (GAP) to output the class confidence, which can be gender (e.g. Graph Saliency Maps through Spectral Convolutional Networks: Application to Sex Classification with Brain Connectivity ) or disease group. Currently open source deep learning frameworks based on graph mostly focus link classification and node classification, support for Graph Classification is relatively lacked, and pytorch_geometric is a Deep Learning framework supporting multiple GNN applications, including the support of this article, An End - to - End Deep Learning Architecture for Graph Classification , which makes it qualified to perform graph convolution operations and output feature vectors ready for learning and classification.
根據筆者所處研究領域的痛點,目前圖神經網路在其中的應用主要為圖分類,即在構建腦功能網路並在相應節點添加特徵後,使用GCN對腦網路進行高層特徵學習,使用全連接層提取向量化的特徵或直接使用全局平均池化( GAP )輸出類別置信度,這一類別可為性別(如: Graph Saliency Maps through Spectral Convolutional Networks: Application to Sex Classification with Brain Connectivity ),亦可為疾病。目前基於圖的深度學習開源框架大多注重邊分類和節點分類,對圖分類的支持相對較少,而 pytorch_geometric 是一個支持多種圖深度學習應用的框架,其中對 An End-to-End Deep Learning Architecture for Graph Classification 這篇文章的支持使其能夠勝任圖卷積操作並輸出特徵向量這一工作,以便之後對該特徵進行學習和分類。
F. 圖神經網路是什麼
圖神經網路是一種直接作用於圖結構上的神經網路。GNN的一個典型應用是節點分類。本質上,圖中的每個節點都與一個標簽相關聯,我們希望預測未標記節點的標簽。
G. 圖神經網路是怎麼煉成的:GNN基本原理簡介
此文算是對Google Research這篇 A Gentle Introction to Graph Neural Networks 神作的閱讀筆記.
十多年來,研究人員開發了一種稱之為圖神經網路(Graph Neural Networks,GNNs)的技術,旨在將如今在深度學習的諸多任務中摧枯拉朽的神經網路,應用到圖結構之上,從而讓神經網路捕捉到更錯綜復雜的交叉特徵,以期待在一些任務上取得更佳的效果。鑒於操作圖數據結構的復雜性,盡管已經發展了十幾年,它在實際應用中卻剛剛起步,即時是google也才開始研究將其被應用到葯品研發、物理模擬、假新聞檢測、交通預測和推薦系統等領域。
盡管GNN是一個新興的研究領域,但圖結構的數據其實在我們身邊無處不在。那麼什麼是圖呢?
這個理科生應該都清楚,圖有點(Vertex)和邊(Edge)兩部分組成,一個圖就代表了各個實體節點(node)之間的關系(edge):
每個節點或者邊都可以包含它的一些屬性信息,比如如果一個節點表示一個人,那麼就可以包含這個人的姓名、性別、身高、體重之類的..我們研究需要的信息。
而這些信息,都可以用通用的向量的形式存入其中:
還有別忘了一點,邊是可以有方向的,按此我們還能分為有向圖或是無向圖。邊的方向代表了信息的傳遞方向,例如a是b的微信好友,那b也是a的微信好友,好友關系自然是沒方向的,而比如a是b的爹,那顯然b就不是a的爹,此時叫爹的關系就是有有方向的。
圖結構的構建是非常靈活的,可以根據個人的設計構建出各種不一樣的圖。而作為開發者顯然要結合實際解決的問題來構建合適的圖。
正如前面所提到的,圖無處不在。你可能已經熟悉例如知識圖譜、社交網路之類的圖數據。當時顯然,圖是一種極其強大的通用數據表示,傳統神經網路中用到的歐式空間的數據,同樣可以用圖來表示,例如可以將圖像和文本建模為圖結構數據。
比如,我們可以將一張圖片的每個像素作為圖的節點,再將相鄰的像素用邊連接起來,就構造了一個該圖像的圖。
如上圖展示了一個5*5的圖片的鄰接矩陣表示和圖表示。
我們將每個單詞作為節點,並將每個節點連接到下一個節點,就得到了一個文本的圖:
當然,在實踐中我們並不會這樣來編碼文本和圖像,因為所有的圖和文本都是非常規則的結構,表示成圖就多此一舉了。
我們再來看一些例子,這些數據的結構更加復雜,除了圖之外很難用其他方式來表達。
分子是構成物質的基石,我們可以用節點來表示它的原子和電子,用邊來表示共價鍵,這樣便將一個分子表示成了一個圖:
不同的圖可以表示出不同的分子結構:
都說社會是一個大熔爐,身處其中的人和事物之間會發生極其復雜的關系。這種關系的表示用普通的表格數據是很難表示的,而圖卻能很好的展現。
下圖是將莎士比亞歌劇《奧賽羅》中的任務關系表示成圖:
怎麼樣,如果沒看過歌劇能推測出那些是主角嗎?
下面是將一個空手道競標賽的對戰關系構建為圖:
類似的可以表示為圖的數據還有很多很多,比如論文的引用之類統統都可以表示為圖,下面是現實世界中不同規模的數據圖表示的統計數據:
可見,各種各樣規模的數據都可以輕松的用圖來表示。
在上面我們列舉了這么多的圖,那麼我們該對這些圖數據執行什麼任務呢?
圖上的預測任務一般分為三類:
下面我們通過具體的示例來說明GNN怎麼來解決上述的三個級別的預測問題。
在圖級別的任務中,我們的目標是預測整個圖的屬性。例如我們通過分子圖,來預測該分子的氣味或是者它是否是與某些疾病有關的受體。
它的輸入是完整的圖:
輸出是圖的分類:
節點級任務一般就是預測每個節點的類型。
一個經典的例子就是Zach的空手道俱樂部。該數據集市一個單一的社交網路圖,猶豫政治分歧,講師Hi先生和管理員John之間不和導致空手道俱樂部分裂,其中的學員一部分效忠於Hi先生,一部分效忠於John。每個節點代表空手道聯系著,邊代表空手道之外這些成員的互動,預測問題就是判斷這些節點是效忠於誰的。
邊級任務其實就是預測每個邊的屬性.
在目標檢測的語義分割任務中,我們也許不止要識別每個目標的類型,還需要預測各個目標之間的關系.我們可以將其描述為邊級別的分類任務:給定表示圖像中的對象的節點,我們希望預測哪些節點共享一條邊,或者該邊的值是多少。如果我們希望發現實體之間的連接,我們可以考慮圖是完全連通的,並根據它們的預測值修剪邊來得到一個稀疏圖。
用圖表示就是這樣的過程:
那麼我們要如何使用神經網路來處理上述各種類型的任務呢?
首先要考慮的是如何將圖結構數據適配到神經網路.
回想一下啊,傳統的神經網路輸入的往往是矩陣形式的數據,那麼要如何把圖作為輸入呢?
圖表示有四種類型的信息:節點(nodes),邊(edges),全局上下文(global-context),聯通性(connectivity).對於前三種信息,有一個非常簡單的方案,比如將節點排序,然後每個節點表示為一個向量,所有節點就得到了一個節點的矩陣,同理,邊和上下文也可以這么搞.
但是要標識連通性就沒有這么簡單了,也許你會想到用臨街矩陣來表示,但是這樣表示會有明顯的缺陷,因為節點數的規模往往是巨大的,對於一個數百萬節點的圖,那將耗費大量的空間,而且得到的矩陣往往也十分的稀疏,可以說空間利用率會很低.
當然,你也許會想,可以用稀疏矩陣來存儲,這樣就只需要存儲連通的情況,空間利用率將大大提升,但是我們還要考慮到一點,就是稀疏矩陣的高性能計算一直是個艱難的,尤其是在用到GPU的情況.
並且,使用鄰接矩陣還有一個問題就是各種不同的鄰接矩陣可以標識相同的連通性,而這些矩陣並不能保證在神經網路中取的相同的效果.比如,同樣的連通性,通過調換列的順序,就能得到不同的鄰接矩陣:
現在,我們成功的將圖結構成功表示成了置換不變的矩陣格式,終於可以使用圖形神經網路(GNN)來做圖形預測任務了。
GNN是對保持圖對稱性(置換不變性)的圖的所有屬性(節點、邊、全局上下文)的可優化變換。
我們將使用Gilmer等人提出的「消息傳遞神經網路」框架構建GNN,並使用Battaglia等人介紹的圖網路網路架構示意圖。GNNS採用「圖輸入,圖輸出」架構,這意味著這些模型類型接受圖作為輸入,其中包含節點,邊和全局上下文的信息,並逐步地轉換這些圖嵌入,而不會更改輸入的連接圖結構。
我們使用最開始提到的那個圖來構建一個最簡單的GNN,輸入的圖是相應節點,邊,全局信息的向量,我們針對每個向量使用一個MLP層來作變換,於是得到一個新的圖.
針對上述構建的最簡單的GNN,我們如何在上面描述的任何任務中進行預測呢?這里我們僅僅考慮二進制分類的情況,但這個框架可以很容易地擴展到多類或回歸的情況。
如果是對節點分類,我們只要在最後一層接一個線性類器就可以了:
但是上面的預測過程有點過於簡單了,完全沒有用到圖的結構信息,我們在此基礎上增加一個pooling操作,以增加它的邊緣信息:
具體操作是把待預測節點的鄰居節點以及全局的信息進行聚合再做預測,即將這些embedding向量加到一起得到一個新的向量,再輸入到最後的線性分類器.
同理,如果我們只有節點相應邊的信息的話,也可以用類似的方式pooling,然後得到節點的向量表示再輸入分類器:
反之,如果我們只有節點的信息,那麼也可以用邊所連接的兩個節點來pooling出邊的向量,然後將器輸入到分類器預測邊的類型:
顯然,不管是哪種任務,整個GNN的推理過程都是一樣的,可以表示為這樣一個端到端的過程:
不過,顯而易見的,這個簡單的GNN在分類前只是對每個向量進行了一個變換,而沒有用到圖結構的任何信息,雖然在最後做預測的時候做了一些pooling的聚合,但也始終沒有用到adjacency的信息,因此這個GNN的作用相當有限,但是它為我們提供了一個圖結構層變換和堆疊的基本思路.
針對上面最簡單GNN的不足,我們可以在其中根據連通性增加更加復雜的變換從而引入整個圖結構的信息,我們將這個過程稱之為信息傳遞.
信息傳遞包含三個步驟:
這個過程有點類似於卷積操作,每個節點匯聚了其鄰居的節點,經過多個層的變換,它將涵蓋全圖的信息.
於是我們可以將這個節點信息傳遞應用到上述的圖變換過程中:
然後,我們發現它並沒用用上邊的信息,於是可以把邊信息也加上,變成這樣:
既然把邊的信息加上了,那怎麼可以漏掉全局信息呢,於是完整的信息傳遞就可以表示成這樣:
以上,我們梳理了最簡單的GNNs是怎麼完成的,你應該已經對GNN有了一個基本的了解,就像學會了傳統神經網路中最簡單的全連接網路類似,關於GNN還有更多不同種類的更復雜的圖需要取了解和學習,但你只要掌握了以上的思想,學習起來也是十分容易的.
H. 腦皮層神經網路是什麼樣的 腦皮層神經網路示意圖
所謂神經網路演算法顧名思義是模擬生物神經網路而產生的一種演算法,首先需要用一些已知的數據輸入到神經網路中,使它知道什麼樣的數據屬於哪一類(訓練),然後將未知的數據輸入進去,神經網路通過已知的數據對其進行判斷來完成分類(分類)。可以用來進行圖像識別、分類;數據預測;曲線擬合等。推薦找本機器學習,人工智慧方面的書看。
I. 圖神經網路是大數據時代發展的必然(原創)
大數據的核心是數據智能。數據智能的本質是在大量樣本中發現、評估若干概念之間的關聯性,歸納形成數學表達,再利用數學表達進行推理運算,從而完成對未知樣本的判斷決策。這就需要發現海量數據背後的規律,解決數據表徵問題。數據智能先後經歷了專家系統、傳統機器學習和神經網路三個階段,輸入的知識從具體到抽象,從規則到特徵再到模式,越來越宏觀,智能化處理效率越來越高,對底層的感知和模型的可解釋性越來越弱化。隨著專家系統逐漸淡出,傳統機器學習和神經網路成為數據智能的兩大常見技術。實踐證明,隨著數據集樣本的增多,傳統機器學習的性能不及神經網路(見圖一)。這主要歸結於前者的表達能力不如後者。Goodfellow在2013年ICML(國際機器學習大會)上發表了論文《MaxoutNetworks》(最大輸出網路)。在這篇論文中證明了MaxoutNetworks能夠無限逼近任意連續函數。也即是說,神經網路能夠擬合任意連續函數,與傳統機器學習相比,神經網路具有突出的表達能力優勢。
(上圖):橫軸代表數據量,縱軸代表演算法精度
我們看到幾個趨勢:行業數據量指數級增長、以GPU為代表的專業晶元算力增長、新型演算法層出不窮、學術界的前沿研究、投資界的資金投入、工商業的多種場景,這些因素都促進了神經網路快速發展。神經網路的發展形態有兩種方向:一是以DNN深度全連接和CNN卷積神經網路為代表的縱向發展,即層數增多的縱向迭代,典型應用是CV計算機視覺;二是以RNN循環神經網路為代表的橫向發展,即神經元之間的橫向迭代,典型應用是以NLP自然語言理解為代表的序列處理。神經網路技術同時呈現兩種發展形態,並在多個領域有廣泛應用,就說明這個技術已經進入成熟期了。下一步往哪個方向發展?很有可能是:將縱向發展和橫向發展進行結合,滲透到更多的應用領域。這看似順水推舟的事情。事實證明,這個判斷是正確的,圖神經網路就是二者的結合。
縱觀技術圈的發展歷史,可以總結出這樣的事實:一個理論技術能否在更多的領域推廣,關鍵取決於它能否真實地刻畫現實世界的實體特徵和關系。如果它刻畫得越真實,那麼它的應用場景就越多。比如馬爾科夫鏈這個理論,就真實地刻畫了現實世界中的時序對象的特徵和依賴關系,因此它廣泛應用在語音理解、機器翻譯、國民經濟、事件預測等領域;再如概率圖理論,用圖來表示事件概率的依存關系,也是真實刻畫了現實世界中的實體關系,因此它也廣泛應用在反欺詐、圖像理解、事件預測等領域。從方法論看,要刻畫現實世界的實體,就必須在模型中置入代表這個實體的節點,並且設計出實體之間的依賴關系轉化。但無論是馬爾科夫鏈還是概率圖等方法,都弱化了嵌入表示,從而丟失了一些隱語義信息,是有缺憾的。
圖神經網路(GraphNeural Networks,GNN)的問世,使事情出現了轉機。在圖神經網路中,存在兩種網路。一種是拓撲結構網路,通常描述眾多實體及其關系;另一種是特徵變換神經網路,通常用於節點、邊、圖或子圖的特徵轉化。前者完成信息橫向傳播,實現圖信號的拓撲關系傳遞,理論依據是圖論;後者完成信息縱向傳播,實現原始特徵向嵌入表示的轉化,理論依據是深度學習。圖神經網路是圖論與深度學習的完美結合,它既考慮了實體關系,又考慮了實體特徵。與傳統圖方法和傳統深度學習相比,圖神經網路具有明顯的優勢:建模來源數據更充分,更能反映現實世界中實體之間的真實關系,它既能從圖結構代表的非歐式空間數據中學習到語義表示,又能讓學習到的語義表示最大限度地符合圖結構的實體關系。
現實世界中80%以上的數據更適合用圖結構來刻畫,比如交通數據、社交數據、分子結構數據、行業經濟數據等。圖神經網路能適應這樣的數據,在分布式學習架構下,圖神經網路能處理的數據規模非常龐大,非常適合處理數億節點的產業數據。因此圖神經網路的應用場景更為廣泛。近三年來,各種國際頂會關於圖神經網路的論文頻頻發布,眾多互聯網科技公司(如阿里、網路、位元組跳動)花重金在這一領域布局,並取得重大進展,廣泛應用於關聯搜索、實時推薦、風險防控、異常檢測、行為預測、模式識別等。這些現象無疑說明了圖神經網路是未來技術發展的重要領域方向。
綜上所述,在行業數據、演算法理論、算力支持、市場需求、資本湧入等背景下,圖神經網路的迅速崛起是大數據時代發展的必然。
J. 圖神經網路讀博好嗎
好。圖神經網路將深度學習的預測能力應用於豐富的數據結構中,這些數據結構將物體及其對應關系描述為圖中用線連成的點,圖神經網路讀博好。在圖神經網路中,被稱為「節點」的數據點通過被稱為「邊」的線連接,各種元素均以數學形式表達,這使機器學習演算法可以在節點、邊或整個圖的層面做出有用的預測。