色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

關于GCN的入門學習知識詳解

深度學習自然語言處理 ? 來源:程序員客棧 ? 作者: NLP情報局 ? 2021-03-30 15:28 ? 次閱讀

什么是GCN

由于高度的復雜性和信息的結構特征,圖上的機器學習是一項困難的任務。「GCN是被設計用來針對圖結構的神經網絡,它能從之前的網絡層中聚合信息。在圖中,這種機制能夠對節點產生有用的特征表示。」

GCN是基于圖機器學習的非常強大的神經網絡體系結構。

實際上,它們是如此強大,以至于隨機發起的2層GCN都可以產生網絡中節點的有用特征表示。

下圖說明了由此類GCN生成的網絡中每個節點的二維表示。請注意,即使沒有任何訓練,網絡中節點的相對接近度仍保留在二維表示中。

b8e46f16-8e8e-11eb-8b86-12bb97331649.jpg

更正式地說,圖卷積網絡(GCN)是在圖上運行的神經網絡。給定圖G =(V,E),V表示節點,E表示邊,則GCN作為輸入

輸入特征矩陣X(N×F?),其中N是節點數,F?是每個節點的輸入特征數,以及圖結構的N×N矩陣表示形式,例如G的鄰接矩陣A

因此,GCN中的隱藏層可以寫成H?= f(H??1,A))。

其中H?= X,f是傳播(propagation)方式。每一層H?對應于一個N×Fi特征矩陣,其中每一行是一個節點的特征表示。在每一層,使用傳播規則f聚合這些特征,以形成下一層的特征。這樣,特征在連續層上變得越來越抽象。在此框架中,GCN的變體僅在傳播規則f的選擇上有所不同。

一個簡單的傳播規則

傳播規則中最簡單的一種是:

f(H?,A)=σ(AH?W?)

其中W?是第i層的權重矩陣,而σ是非線性激活函數,例如ReLU函數。權重矩陣的尺寸為F?×F??1;換句話說,權重矩陣的第二維的大小確定了下一層的特征數量。如果你熟悉卷積神經網絡,則此操作類似于過濾操作(filtering operation),因為這些權重在圖中的節點之間共享。

簡化

讓我們從最簡單的角度檢查傳播規則:

i = 1,滿足 f是輸入特征矩陣的函數

σ是恒等函數

選擇權重 AH?W?=AXW?= AX

換句話說,f(X,A)= AX。這個傳播規則可能有點太簡單了,稍后我們會添加缺失的部分。AX現在等效于多層感知器的輸入層。

一個簡單的圖形示例

舉一個簡單的例子,我們使用以下圖形:

b95b7520-8e8e-11eb-8b86-12bb97331649.png

下面是其numpy鄰接矩陣表示形式。

A = np.matrix([

[0, 1, 0, 0],

[0, 0, 1, 1],

[0, 1, 0, 0],

[1, 0, 1, 0]],

dtype=float

接下來,根據其索引為每個節點生成2個整數特征,便于以后手動確認矩陣計算。

In [3]: X = np.matrix([

[i, -i]

for i in range(A.shape[0])

], dtype=float)

X

Out[3]: matrix([

[ 0., 0.],

[ 1., -1.],

[ 2., -2.],

[ 3., -3.]

])

應用傳播規則

好吧!現在,我們有了一個圖形,其鄰接矩陣A和一組輸入要素X。讓我們看看應用傳播規則時會發生什么:

In [6]: A * X

Out[6]: matrix([

[ 1., -1.],

[ 5., -5.],

[ 1., -1.],

[ 2., -2.]]

發生了什么?現在,每個節點(每行)的表示形式都是其鄰居特征的總和!換句話說,圖卷積層將每個節點表示為其鄰居的集合。注意,在這種情況下,如果存在從v到n的邊,則節點n是節點v的鄰居。

問題

你可能已經發現了問題:

節點的匯總表示不包括其自身的功能!

該表示是鄰居節點特征的集合,因此只有具有自環的節點才會在集合中包括自己的特征。度數較大的節點的特征將具有較大的值,而度數較小的節點將具有較小的值。這可能會導致梯度消失或爆炸,但對于隨機梯度下降算法(通常用于訓練此類網絡并且對每個輸入特征的比例(或值的范圍)敏感)也存在問題。在下文中,我將分別討論每個問題。

添加自環

為了解決第一個問題,可以簡單地向每個節點添加一個自環。實際上,這是通過在應用傳播規則之前將單位矩陣I與鄰接矩陣A相加來完成的。

In [4]: I = np.matrix(np.eye(A.shape[0]))

IOut[4]: matrix([

[1., 0., 0., 0.],

[0., 1., 0., 0.],

[0., 0., 1., 0.],

[0., 0., 0., 1.]

])

In [8]: A_hat = A + I

A_hat * X

Out[8]: matrix([

[ 1., -1.],

[ 6., -6.],

[ 3., -3.],

[ 5., -5.]])

由于該節點現在是其自身的鄰居,因此在總結其鄰居的特征時會包括該節點自己的特征!

規范特征表示

通過將鄰接矩陣A與D的逆矩陣相乘來變換鄰接矩陣A,可以按節點度對特征表示進行歸一化。因此,我們簡化的傳播規則如下所示:

f(X,A)=D?1AX

讓我們看看發生了什么。我們首先計算度矩陣。

In [9]: D = np.array(np.sum(A, axis=0))[0]

D = np.matrix(np.diag(D))

D

Out[9]: matrix([

[1., 0., 0., 0.],

[0., 2., 0., 0.],

[0., 0., 2., 0.],

[0., 0., 0., 1.]

])

在應用規則之前,讓我們看看對鄰接矩陣進行轉換后會發生什么。

Berfore

A = np.matrix([

[0, 1, 0, 0],

[0, 0, 1, 1],

[0, 1, 0, 0],

[1, 0, 1, 0]],

dtype=float

After

In [10]: D**-1 * A

Out[10]: matrix([

[0. , 1. , 0. , 0. ],

[0. , 0. , 0.5, 0.5],

[0. , 0.5, 0. , 0. ],

[0.5, 0. , 0.5, 0. ]

])

請注意,鄰接矩陣每一行中的權重(值)已除以與該行相對應的節點的度。我們將傳播規則與變換后的鄰接矩陣一起應用:

In [11]: D**-1 * A * X

Out[11]: matrix([

[ 1. , -1. ],

[ 2.5, -2.5],

[ 0.5, -0.5],

[ 2. , -2. ]

])

得到與相鄰節點特征均值相對應的節點表示。這是因為(轉換后的)鄰接矩陣權重,與相鄰節點特征加權和的權重相對應。我鼓勵你自己驗證此觀察。

放在一起

現在,我們結合了自循環和標準化技巧。此外,我們將重新介紹先前為簡化討論而丟棄的權重和激活函數。

加重權重

首要任務是應用權重。請注意,這里D_hat是A_hat = A + I的度矩陣,即具有強制自環的A的度矩陣。

In [45]: W = np.matrix([

[1, -1],

[-1, 1]

])

D_hat**-1 * A_hat * X * W

Out[45]: matrix([

[ 1., -1.],

[ 4., -4.],

[ 2., -2.],

[ 5., -5.]

])

如果我們想減小輸出特征表示的維數,可以減小權重矩陣W的大小:

In [46]: W = np.matrix([

[1],

[-1]

])

D_hat**-1 * A_hat * X * W

Out[46]: matrix([[1.],

[4.],

[2.],

添加激活功能

我們選擇保留特征表示的維數并應用ReLU激活功能。

In [51]: W = np.matrix([

[1, -1],

[-1, 1]

])

relu(D_hat**-1 * A_hat * X * W)

Out[51]: matrix([[1., 0.],

[4., 0.],

[2., 0.],

[5., 0.]])

瞧!具有鄰接矩陣,輸入函數,權重和激活功能的完整隱藏層!

簡單樣例

最后,我們可以在真實圖上應用圖卷積網絡。我將向你展示如何產生我們在文章開頭看到的要素表示。

扎卡里的空手道俱樂部

扎卡里(Zachary)的空手道俱樂部是一種常用的社交網絡,其中節點代表空手道俱樂部的成員,其邊緣相互聯系。當扎卡里(Zachary)研究空手道俱樂部時,管理者與教練之間發生了沖突,導致俱樂部分裂為兩部分。下圖顯示了網絡的圖形表示,并且根據俱樂部的哪個部分標記了節點。管理員和講師分別標有“ A”和“ I”。

b9b5d420-8e8e-11eb-8b86-12bb97331649.png

建立GCN

現在來建立圖卷積網絡。實際上我們不會訓練網絡,只是簡單地隨機初始化,以產生在本文開頭看到的功能表示。我們將使用圖網絡networkx表示整個圖,并計算A_hat和D_hat矩陣。

from networkx import karate_club_graph, to_numpy_matrixzkc = karate_club_graph()

order = sorted(list(zkc.nodes()))A = to_numpy_matrix(zkc, nodelist=order)

I = np.eye(zkc.number_of_nodes())A_hat = A + I

D_hat = np.array(np.sum(A_hat, axis=0))[0]

D_hat = np.matrix(np.diag(D_hat))

接下來,我們隨機初始化權重。

W_1 = np.random.normal(

loc=0, scale=1, size=(zkc.number_of_nodes(), 4))

W_2 = np.random.normal(

loc=0, size=(W_1.shape[1], 2))

堆疊GCN層:在這里,我們僅使用單位矩陣作為特征表示,即,每個節點都表示為單次熱編碼的分類變量。

def gcn_layer(A_hat, D_hat, X, W):

return relu(D_hat**-1 * A_hat * X * W)H_1 = gcn_layer(A_hat, D_hat, I, W_1)

H_2 = gcn_layer(A_hat, D_hat, H_1, W_2)

output = H_2

提取特征表示:

feature_representations = {

node: np.array(output)[node]

for node in zkc.nodes()}

瞧!特征表示很好地將Zachary空手道俱樂部中的社區分隔開來。而且我們還沒有開始訓練!

ba1e32d6-8e8e-11eb-8b86-12bb97331649.png

對于此示例,由于ReLU函數的作用,隨機初始化的權重很有可能在x軸或y軸上給出0值,因此需要進行幾次隨機初始化才能產生上圖。

結論在這篇文章中,我對圖卷積網絡進行了高級介紹,并說明了GCN中每一層節點的特征表示是如何基于其鄰域聚合而得出的。我們了解了如何使用numpy構建這些網絡以及它們的強大功能:即使是隨機初始化的GCN,也可以在Zachary的空手道俱樂部中分離社區。

編輯:lyn

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 機器學習
    +關注

    關注

    66

    文章

    8406

    瀏覽量

    132566
  • GNN
    GNN
    +關注

    關注

    1

    文章

    31

    瀏覽量

    6335
  • GCN
    GCN
    +關注

    關注

    0

    文章

    5

    瀏覽量

    2284

原文標題:【GCN】2021年,我終于決定入門GCN

文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    瑞薩 FPB-RA6E2 評估板入門學習

    瑞薩 FPB-RA6E2 評估板入門學習
    的頭像 發表于 12-11 09:22 ?156次閱讀
    瑞薩 FPB-RA6E2 評估板<b class='flag-5'>入門</b><b class='flag-5'>學習</b>

    硬件工程師入門的基礎元器件知識

    概述了IGBT在電力轉換中的重要角色及其發展。 硬件工程師入門基礎知識 (一)基礎元器件認識(二) tips:學習資料和數據來自《硬件工程師煉成之路》、百度百科、網上資料。 1.二極管 2.三極管 3.MOS管 4.IGBT 5
    的頭像 發表于 12-10 10:19 ?479次閱讀
    硬件工程師<b class='flag-5'>入門</b>的基礎元器件<b class='flag-5'>知識</b>

    嵌入式學習建議

    穩定運行1年以上,就可以說接近入門了。 ⑦關于入門芯片的選擇。不要選太復雜的微控制器作為入門芯片,不能超越學習過程。不要一下子
    發表于 10-22 11:41

    【全新課程資料】正點原子《ESP32基礎及項目實戰入門》培訓課程資料上線!

    綜合項目:智能感應垃圾桶項目 二、課程目的 1、熟練ESP-IDF開發,突破ESP32入門難題 2、熟悉ESP32外設基礎知識,提升開發能力,克服眼高手低的問題 3、通過多個外設實戰,掌握ESP32
    發表于 09-24 17:59

    求助關于論壇的選擇

    大家好,我想問問如果我想學習關于集成電路IC的相關知識,可以在這里的哪個論壇學習?目前只接觸學習了IC基礎
    發表于 07-13 23:02

    一個暑假如何學習單片機

    一個暑假是學習和掌握單片機基礎知識的良好時機。以下是一個關于如何在暑假期間學習單片機的建議計劃
    的頭像 發表于 07-03 09:19 ?514次閱讀
    一個暑假如何<b class='flag-5'>學習</b>單片機

    學習串口屏需要了解哪些方面的知識

    學習串口屏需要掌握的知識主要包括以下幾個方面
    的頭像 發表于 06-05 09:41 ?425次閱讀
    <b class='flag-5'>學習</b>串口屏需要了解哪些方面的<b class='flag-5'>知識</b>

    哪有FPGA的verilog編程基礎知識

    沒接觸過FPGA開發,那個verilog編程有什么入門基礎知識學習的?
    發表于 04-29 23:09

    如何快速入門FPGA

    和編程技巧。 參與FPGA相關的社區和論壇,與其他工程師交流學習經驗,解決遇到的問題。 通過以上步驟,你可以逐步掌握FPGA的基礎知識,并通過實踐項目不斷提升自己的技能。記住,持續學習和實踐是快速
    發表于 04-28 09:06

    如何快速入門FPGA?

    和編程技巧。 參與FPGA相關的社區和論壇,與其他工程師交流學習經驗,解決遇到的問題。 通過以上步驟,你可以逐步掌握FPGA的基礎知識,并通過實踐項目不斷提升自己的技能。記住,持續學習和實踐是快速
    發表于 04-28 08:54

    FPGA學習筆記-入門

    大概10年前,大學同學建議我學習DSP。當因為工作忙,也只是簡單學習了DSP的一些基礎知識,沒有進一步深入學習和時間。結果現在,好像DSP已經不再是主流了,現在有了FPGA。 現在想想
    發表于 04-09 10:55

    PLC編程入門速成的基礎知識學習技巧

    學習PLC技術電路圖是發展的基礎,既然PLC可以取代繼電器和接觸器控制,那相應的基礎電路原理是肯定要知道!
    發表于 03-31 16:09 ?1075次閱讀
    PLC編程<b class='flag-5'>入門</b>速成的基礎<b class='flag-5'>知識</b>與<b class='flag-5'>學習</b>技巧

    NeRF入門基礎知識詳解

    deep networks 更傾向于學習低頻的函數,實際場景的神經輻射場基本上都是高頻的
    的頭像 發表于 02-21 14:21 ?1396次閱讀
    NeRF<b class='flag-5'>入門</b>基礎<b class='flag-5'>知識</b><b class='flag-5'>詳解</b>

    值得多看的FPGA 學習路線

    這個語言做驗證 。 FPGA入門學習第二部分:基礎知識 說完了編程語言,我們再來看看入門FPGA的第二部分內容:基礎知識。這里主要有專業基礎
    發表于 01-02 23:03

    FPGA學習入門從點燈開始

    首先,FPGA開發工程師是一個相對高薪的工作,但是,很多同學在剛入門時都會有一種無從下手的感覺,尤其是將FPGA作為第一個要掌握的開發板時,更是感覺苦惱;本人也是如此,以下就本人學習FPGA開發的一些情況做一些介紹,希望后來者能夠少走彎路。
    的頭像 發表于 12-28 09:50 ?509次閱讀
    主站蜘蛛池模板: 精品久久久无码21P发布| 久久怡红院国产精品| 久就热视频精品免费99| 欧美在线激情| 亚洲国产中文字幕新在线| 51国产午夜精品免费视频| 成人在线免费视频| 久久aa毛片免费播放嗯啊| 日本一本2017国产| 在线欧美 精品 第1页| 成人网18免费韩国| 久亚洲AV无码专区A片| 特大黑人娇小亚洲女mp4| 5g天天奭视频| 国产在线播放不卡| 日本wwwxx| 中文字幕a有搜索网站| 国产精自产拍久久久久久蜜| 免费国产成人| 亚洲欧美日韩国产另类电影| 啊片色播电影| 久久麻豆国产国产AV| 午夜精品久久久久久99热蜜桃| 99久久精品费精品国产一区二| 好湿好滑好硬好爽好深视频| 日本精品卡一卡2卡3卡四卡三卡 | 青青app| 一个人免费完整在线观看影院 | 老师扒开尿口男生摸尿口| 挺进绝色老师的紧窄小肉六| 99久久香蕉| 久久亚洲精品中文字幕| 亚洲AV无码国产精品色在线看 | 97综合久久| 精品亚洲麻豆1区2区3区| 偷窥美女3| 成人性生交大片免费看4| 男人扒开添女人屁股| 伊人青青青| 国产专区青青草原亚洲| 视频一区在线免费观看|