DeepMind今天開源了內部的Graph Nets庫,用于在TensorFlow中構建簡單而強大的關系推理網絡。“圖網絡”由DeepMind、谷歌大腦、MIT等27位研究者提出,由于其支持關系推理和組合泛化的優勢,引起大量關注。
DeepMind提出的簡單而強大的關系推理網絡“graph network”終于開源了!
今年6月,由DeepMind、谷歌大腦、MIT 和愛丁堡大學等公司和機構的 27 位科學家共同發表了一篇論文Relational inductive biases, deep learning, and graph networks,提出了圖網絡(graph network)的概念。“讓深度學習也能因果推理”,這篇論文引起了業內的大量關注。
簡單的說,圖網絡(graph network)是將graph作為輸入,并返回graph作為輸出的神經網絡。輸入圖具有edge-(E), node-(V), 和global-level(u) 的屬性。輸出圖具有相同的結構,但更新了屬性。 Graph networks是更廣泛的“graph neural networks”家族的一部分 (Scarselli et al., 2009)。
這篇論文里,作者詳細解釋了他們的“圖網絡”。圖網絡(GN)的框架定義了一類用于圖形結構表示的關系推理的函數。GN 框架概括并擴展了各種的圖神經網絡、MPNN、以及 NLNN 方法,并支持從簡單的構建塊(building blocks)來構建復雜的結構。
GN 框架的主要計算單元是GN block,即 “graph-to-graph” 模塊,它將 graph 作為輸入,對結構執行計算,并返回 graph 作為輸出。如下面的 Box 3 所描述的,entity 由 graph 的節點(nodes),邊的關系(relations)以及全局屬性(global attributes)表示。
論文中對“graph”的定義
論文作者用 “graph” 表示具有全局屬性的有向(directed)、有屬性(attributed)的 multi-graph。一個節點(node)表示為,一條邊(edge)表示為,全局屬性(global attributes)表示為u。和表示發送方(sender)和接收方(receiver)節點的指標(indices)。具體如下:
Directed:單向,從 “sender” 節點指向 “receiver” 節點。
Attribute:屬性,可以編碼為矢量(vector),集合(set),甚至另一個圖(graph)
Attributed:邊和頂點具有與它們相關的屬性
Global attribute:graph-level 的屬性
Multi-graph:頂點之間有多個邊
GN 框架的 block 的組織強調可定制性,并綜合表示所需關系歸納偏置(inductive biases)的新架構。
論文:Relational inductive biases, deep learning, and graph networks
地址:https://arxiv.org/pdf/1806.01261.pdf
圖網絡為什么重要?
康納爾大學數學博士/MIT博士后Seth Stafford則認為,圖神經網絡(Graph NNs)可能解決圖靈獎得主Judea Pearl指出的深度學習無法做因果推理的核心問題。
Judea Pearl
圖靈獎得主、貝葉斯網絡之父Judea Pearl,在ArXiv發布了他的論文《機器學習理論障礙與因果革命七大火花》,論述當前機器學習理論局限,并給出來自因果推理的7大啟發。Pearl指出,當前的機器學習系統幾乎完全以統計學或盲模型的方式運行,不能作為強AI的基礎。他認為突破口在于“因果革命”,借鑒結構性的因果推理模型,能對自動化推理做出獨特貢獻。
如何解決這個問題?DeepMind認為,要從“圖網絡”入手。
現在,這篇重磅論文的開源軟件庫終于發布了!可以用于在TensorFlow和Sonnet中構建Graph Nets。
在TensorFlow中構建Graph Nets
安裝
Graph Nets庫可以從pip安裝。
此安裝與Linux/Mac OS X以及Python 2.7和3.4+兼容。
要安裝庫,請運行:
1$pipinstallgraph_nets
用例
以下代碼用于構建一個簡單的graph net模塊,并將其與數據連接。
1importgraph_netsasgn 2importsonnetassnt 3 4#Provideyourownfunctionstogenerategraph-structureddata. 5input_graphs=get_graphs() 6 7#Createthegraphnetwork. 8graph_net_module=gn.modules.GraphNetwork( 9edge_model_fn=lambda:snt.nets.MLP([32,32]),10node_model_fn=lambda:snt.nets.MLP([32,32]),11global_model_fn=lambda:snt.nets.MLP([32,32]))1213#Passtheinputgraphstothegraphnetwork,andreturntheoutputgraphs.14output_graphs=graph_net_module(input_graphs)
Jupyter notebooks演示
這個庫包括demos,演示如何在最短路徑查找任務、排序任務和物理預測任務上創建、操作和訓練graph networks,以推理圖結構化數據。每個demo都使用相同的graph network架構,突出了該方法的靈活性。
在瀏覽器 Colaboratory 中嘗試演示
要在本地沒有安裝任何內容的情況下嘗試demo,你可以通過云Colaboratory后端,在瀏覽器(甚至手機上)運行demo。
在瀏覽器中運行“最短路徑演示”
“最短路徑演示”創建隨機的graph,并訓練圖網絡以標記任意兩個節點之間的最短路徑上的節點和邊緣。在一系列消息傳遞步驟中,模型改進了對最短路徑的預測。
在瀏覽器中運行“排序演示”
“排序演示”創建隨機數列表,并訓練圖網絡對列表進行排序。在一系列消息傳遞步驟之后,模型可以準確預測哪些元素(圖中的列)緊跟在彼此的后面(行)。
在瀏覽器中運行“物理演示”
"physics demo"創建隨機質量的彈簧物理系統,并訓練一個圖網絡來預測系統在下一時間步長的狀態。模型的下一步預測可作為輸入反饋進來,以創建未來軌跡的rollout。下面的每個子圖顯示了50步以上的真實和預測mass-spring系統狀態。這類似于Battaglia et al. (2016)提出的"interaction networks”里的模型和實驗。
-
神經網絡
+關注
關注
42文章
4772瀏覽量
100857 -
深度學習
+關注
關注
73文章
5504瀏覽量
121246
原文標題:解決關系推理,從圖網絡入手!DeepMind圖網絡庫開源了!
文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論