Julia臺灣社群發起人杜岳華打造的Julia圖學深度學習套件GeometricFlux.jl不僅被官方列為重要資源,他更在去年年度技術大會JuliaCon上分享套件功能和未來發展。

 超完整圖學深度學習套件  GeometricFlux.jl

 開發者  中研院生物資訊學程博士候選人 杜岳華

攝影_洪政偉

 熱門特色  內建2種熱門GNN架構、支援CUDA能靠GPU加速,更是官網力推的生態系

 未來發展重點  加入更多類神經網路層、模型和GNN專屬資料集

舉凡美國FBI用來追查犯人的犯罪嫌疑人網絡、科技巨頭阿里巴巴用來推薦商品的人際關係網絡,都離不開圖(Graph)。就連生活中常見的交通網路、好友社交關係,甚至是複雜的化學分子結構、基因分析,都靠圖類神經網路(GNN)計算。

可以說,GNN是卷積網路(CNN)的延伸模型,可涵蓋CNN可解的任務,更進一步延伸至圖上。GNN比深度學習更擅長處理複雜關係網絡,對需要大量複雜運算的生醫、物理和工業製造等領域學科,更是如此。

因此,主打科學運算的程式語言Julia,視GNN為一個非發展不可的領域。Julia核心開發團隊早在幾年前,就布局圖學套件生態系JuliaGraphs,收錄各種圖學套件和工具,讓開發者用來建立自己的圖學模型。

2019年,Julia進一步多了個功能強大的專屬圖學深度學習套件:GeometricFlux.jl,甚至被官網列為六大生態系之一。它不只提供常見的圖學模型元件,還支援CUDA,可以用GPU來加速,更與JuliaGraphs相容,就像是Julia深度學習框架Flux多了一對翅膀。

這個套件的貢獻者,就來自Julia臺灣社群發起人杜岳華。

出身生醫領域需圖學運算,挽起袖子刻出專屬套件

專攻生物資訊的他指出,當初開發這個套件,是因為生資領域有許多研究得靠圖學運算,比如基因分析。

一般來說,AI社群常用的深度學習,是以向量(Vector)或陣列(Array)來運算,不論是影像辨識、語音分析、文字或訊號處理,資料輸入模型後都會編碼為向量。處理這類資料的方法,通常是以一層層的卷積網路或迴歸網路(RNN)來計算。

但,還有許多資料無法以向量或陣列來處理,比如交通網路、社交關係和科學資料,都屬於發散式的圖形,適合用GNN處理。

因此,2019年,身為Julia愛好者的杜岳華,決定動手做一套GNN深度學習套件,讓使用者可在Julia深度學習框架Flux上開發GNN模型,並整合Julia原有的圖學工具生態系JuliaGraphs。

內建圖學模型和類神經網路層,支援2款熱門GNN架構

GeometricFlux.jl看來複雜,但杜岳華形容,套件的中心精神就是「Graph + Deep learning」。他指出,這個套件中包含了建立GNN所需的元件,比如圖卷積層,使用者可用來建立GNN,使用方法就如Julia深度學習套件Flux一樣。而且,這些圖卷積層也與以Flux建造的層相容,可搭配使用。

其他元件還包括卷積層、池化層,以及搭配自動編碼器的特殊層,可用來預測圖形的邊(Edge)。此外,GeometricFlux.jl還與JuliaGraphs生態系介接,允許使用者以SimpleGraph或SimpleWeightedGraph建造圖形,並將整張圖放置到既有的類神經網路層中,來縮短運算時間。

這款套件支援兩種熱門的GNN架構,一個是訊息傳遞(Message Passing),另一個則是由Google提出、較為通用的圖網路(Graph Network)。在這裡,杜岳華加入一個巧思,將訊息傳遞設計為圖網路的子類型,讓兩種架構相容。

就連研究者關心的變數問題,杜岳華也想到了。意思是,這個套件支援可變圖輸入(Variable graph input),可讓圖需隨資料或樣本而改變。再來,杜岳華也讓套件支援一套全新的FeaturedGraph架構,也就是帶有特徵的圖結構,使用者可輸入節點特徵、圖結構、邊特徵和全局特徵來運算。

杜岳華透露,至今,這個套件仍在擴增中,他還要在GeometricFlux.jl裡,加入更多類神經網路層、模型和GNN專屬資料集,來豐富GeometricFlux生態系。


熱門新聞

Advertisement