91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

關(guān)于GCN的入門學(xué)習(xí)知識(shí)詳解

深度學(xué)習(xí)自然語言處理 ? 來源:程序員客棧 ? 作者: NLP情報(bào)局 ? 2021-03-30 15:28 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

什么是GCN

由于高度的復(fù)雜性和信息的結(jié)構(gòu)特征,圖上的機(jī)器學(xué)習(xí)是一項(xiàng)困難的任務(wù)?!窯CN是被設(shè)計(jì)用來針對(duì)圖結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò),它能從之前的網(wǎng)絡(luò)層中聚合信息。在圖中,這種機(jī)制能夠?qū)?jié)點(diǎn)產(chǎn)生有用的特征表示?!?/span>

GCN是基于圖機(jī)器學(xué)習(xí)的非常強(qiáng)大的神經(jīng)網(wǎng)絡(luò)體系結(jié)構(gòu)。

實(shí)際上,它們是如此強(qiáng)大,以至于隨機(jī)發(fā)起的2層GCN都可以產(chǎn)生網(wǎng)絡(luò)中節(jié)點(diǎn)的有用特征表示。

下圖說明了由此類GCN生成的網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)的二維表示。請(qǐng)注意,即使沒有任何訓(xùn)練,網(wǎng)絡(luò)中節(jié)點(diǎn)的相對(duì)接近度仍保留在二維表示中。

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

更正式地說,圖卷積網(wǎng)絡(luò)(GCN)是在圖上運(yùn)行的神經(jīng)網(wǎng)絡(luò)。給定圖G =(V,E),V表示節(jié)點(diǎn),E表示邊,則GCN作為輸入

輸入特征矩陣X(N×F?),其中N是節(jié)點(diǎn)數(shù),F(xiàn)?是每個(gè)節(jié)點(diǎn)的輸入特征數(shù),以及圖結(jié)構(gòu)的N×N矩陣表示形式,例如G的鄰接矩陣A

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

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

一個(gè)簡(jiǎn)單的傳播規(guī)則

傳播規(guī)則中最簡(jiǎn)單的一種是:

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

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

簡(jiǎn)化

讓我們從最簡(jiǎn)單的角度檢查傳播規(guī)則:

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

σ是恒等函數(shù)

選擇權(quán)重 AH?W?=AXW?= AX

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

一個(gè)簡(jiǎn)單的圖形示例

舉一個(gè)簡(jiǎn)單的例子,我們使用以下圖形:

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

接下來,根據(jù)其索引為每個(gè)節(jié)點(diǎn)生成2個(gè)整數(shù)特征,便于以后手動(dòng)確認(rèn)矩陣計(jì)算。

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.]

])

應(yīng)用傳播規(guī)則

好吧!現(xiàn)在,我們有了一個(gè)圖形,其鄰接矩陣A和一組輸入要素X。讓我們看看應(yīng)用傳播規(guī)則時(shí)會(huì)發(fā)生什么:

In [6]: A * X

Out[6]: matrix([

[ 1., -1.],

[ 5., -5.],

[ 1., -1.],

[ 2., -2.]]

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

問題

你可能已經(jīng)發(fā)現(xiàn)了問題:

節(jié)點(diǎn)的匯總表示不包括其自身的功能!

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

添加自環(huán)

為了解決第一個(gè)問題,可以簡(jiǎn)單地向每個(gè)節(jié)點(diǎn)添加一個(gè)自環(huán)。實(shí)際上,這是通過在應(yīng)用傳播規(guī)則之前將單位矩陣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.]])

由于該節(jié)點(diǎn)現(xiàn)在是其自身的鄰居,因此在總結(jié)其鄰居的特征時(shí)會(huì)包括該節(jié)點(diǎn)自己的特征!

規(guī)范特征表示

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

f(X,A)=D?1AX

讓我們看看發(fā)生了什么。我們首先計(jì)算度矩陣。

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.]

])

在應(yīng)用規(guī)則之前,讓我們看看對(duì)鄰接矩陣進(jìn)行轉(zhuǎn)換后會(huì)發(fā)生什么。

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. ]

])

請(qǐng)注意,鄰接矩陣每一行中的權(quán)重(值)已除以與該行相對(duì)應(yīng)的節(jié)點(diǎn)的度。我們將傳播規(guī)則與變換后的鄰接矩陣一起應(yīng)用:

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

Out[11]: matrix([

[ 1. , -1. ],

[ 2.5, -2.5],

[ 0.5, -0.5],

[ 2. , -2. ]

])

得到與相鄰節(jié)點(diǎn)特征均值相對(duì)應(yīng)的節(jié)點(diǎn)表示。這是因?yàn)椋ㄞD(zhuǎn)換后的)鄰接矩陣權(quán)重,與相鄰節(jié)點(diǎn)特征加權(quán)和的權(quán)重相對(duì)應(yīng)。我鼓勵(lì)你自己驗(yàn)證此觀察。

放在一起

現(xiàn)在,我們結(jié)合了自循環(huán)和標(biāo)準(zhǔn)化技巧。此外,我們將重新介紹先前為簡(jiǎn)化討論而丟棄的權(quán)重和激活函數(shù)。

加重權(quán)重

首要任務(wù)是應(yīng)用權(quán)重。請(qǐng)注意,這里D_hat是A_hat = A + I的度矩陣,即具有強(qiáng)制自環(huán)的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.]

])

如果我們想減小輸出特征表示的維數(shù),可以減小權(quán)重矩陣W的大?。?/p>

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

[1],

[-1]

])

D_hat**-1 * A_hat * X * W

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

[4.],

[2.],

添加激活功能

我們選擇保留特征表示的維數(shù)并應(yīng)用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.]])

瞧!具有鄰接矩陣,輸入函數(shù),權(quán)重和激活功能的完整隱藏層!

簡(jiǎn)單樣例

最后,我們可以在真實(shí)圖上應(yīng)用圖卷積網(wǎng)絡(luò)。我將向你展示如何產(chǎn)生我們?cè)谖恼麻_頭看到的要素表示。

扎卡里的空手道俱樂部

扎卡里(Zachary)的空手道俱樂部是一種常用的社交網(wǎng)絡(luò),其中節(jié)點(diǎn)代表空手道俱樂部的成員,其邊緣相互聯(lián)系。當(dāng)扎卡里(Zachary)研究空手道俱樂部時(shí),管理者與教練之間發(fā)生了沖突,導(dǎo)致俱樂部分裂為兩部分。下圖顯示了網(wǎng)絡(luò)的圖形表示,并且根據(jù)俱樂部的哪個(gè)部分標(biāo)記了節(jié)點(diǎn)。管理員和講師分別標(biāo)有“ A”和“ I”。

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

建立GCN

現(xiàn)在來建立圖卷積網(wǎng)絡(luò)。實(shí)際上我們不會(huì)訓(xùn)練網(wǎng)絡(luò),只是簡(jiǎn)單地隨機(jī)初始化,以產(chǎn)生在本文開頭看到的功能表示。我們將使用圖網(wǎng)絡(luò)networkx表示整個(gè)圖,并計(jì)算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))

接下來,我們隨機(jī)初始化權(quán)重。

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層:在這里,我們僅使用單位矩陣作為特征表示,即,每個(gè)節(jié)點(diǎn)都表示為單次熱編碼的分類變量。

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空手道俱樂部中的社區(qū)分隔開來。而且我們還沒有開始訓(xùn)練!

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

對(duì)于此示例,由于ReLU函數(shù)的作用,隨機(jī)初始化的權(quán)重很有可能在x軸或y軸上給出0值,因此需要進(jìn)行幾次隨機(jī)初始化才能產(chǎn)生上圖。

結(jié)論在這篇文章中,我對(duì)圖卷積網(wǎng)絡(luò)進(jìn)行了高級(jí)介紹,并說明了GCN中每一層節(jié)點(diǎn)的特征表示是如何基于其鄰域聚合而得出的。我們了解了如何使用numpy構(gòu)建這些網(wǎng)絡(luò)以及它們的強(qiáng)大功能:即使是隨機(jī)初始化的GCN,也可以在Zachary的空手道俱樂部中分離社區(qū)。

編輯:lyn

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8553

    瀏覽量

    136964
  • GNN
    GNN
    +關(guān)注

    關(guān)注

    1

    文章

    31

    瀏覽量

    6787
  • GCN
    GCN
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    2569

原文標(biāo)題:【GCN】2021年,我終于決定入門GCN

文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    嵌入式單片機(jī)開發(fā)學(xué)習(xí)路徑

    路徑,讓你的學(xué)習(xí)過程更加輕松有趣。 1. 入門基礎(chǔ) 1.1 了解嵌入式系統(tǒng) 在開始學(xué)習(xí)之前,首先需要了解什么是嵌入式系統(tǒng)以及它的基本構(gòu)成和應(yīng)用場(chǎng)景??梢蚤喿x一些基礎(chǔ)書籍和網(wǎng)上資源。 1.2
    發(fā)表于 02-09 15:42

    單片機(jī)的入門準(zhǔn)備

    單片機(jī)入門篇 1、學(xué)好電子技術(shù)基礎(chǔ)知識(shí),如電路基礎(chǔ)、模擬電路、數(shù)字電路和微機(jī)原理。這幾門課程都是弱電類專業(yè)的必修課程,學(xué)會(huì)這些后能保證你看懂單片機(jī)電路、知道電路的設(shè)計(jì)思路和工作原理; 2、學(xué)習(xí)
    發(fā)表于 12-22 07:39

    迅為iTOP-Hi3516開發(fā)板驅(qū)動(dòng)開發(fā)資料全面上線,構(gòu)建從入門到精通的完整學(xué)習(xí)路徑!

    迅為iTOP-Hi3516開發(fā)板linux驅(qū)動(dòng)開發(fā)資料全面上線,構(gòu)建從入門到精通的完整學(xué)習(xí)路徑!
    的頭像 發(fā)表于 12-19 15:47 ?648次閱讀
    迅為iTOP-Hi3516開發(fā)板驅(qū)動(dòng)開發(fā)資料全面上線,構(gòu)建從<b class='flag-5'>入門</b>到精通的完整<b class='flag-5'>學(xué)習(xí)</b>路徑!

    從零開始:一份詳細(xì)的灌封膠新手入門指南,告別常見操作誤區(qū) | 鉻銳特實(shí)業(yè)

    針對(duì)新手的灌封膠完整入門指南,從類型選擇、配比攪拌、真空脫泡到灌封固化全流程詳解,幫助你避開常見操作誤區(qū),輕松掌握電子元器件防護(hù)技巧。 | 鉻銳特官網(wǎng)
    的頭像 發(fā)表于 12-17 00:31 ?560次閱讀
    從零開始:一份詳細(xì)的灌封膠新手<b class='flag-5'>入門</b>指南,告別常見操作誤區(qū) | 鉻銳特實(shí)業(yè)

    關(guān)于“AI(人工智能)芯片”基礎(chǔ)知識(shí)詳解;

    【博主簡(jiǎn)介】本人“愛在七夕時(shí)”,系一名半導(dǎo)體行業(yè)質(zhì)量管理從業(yè)者,旨在業(yè)余時(shí)間不定期的分享半導(dǎo)體行業(yè)中的:產(chǎn)品質(zhì)量、失效分析、可靠性分析和產(chǎn)品基礎(chǔ)應(yīng)用等相關(guān)知識(shí)。常言:真知不問出處,所分享的內(nèi)容
    的頭像 發(fā)表于 12-05 08:31 ?605次閱讀
    <b class='flag-5'>關(guān)于</b>“AI(人工智能)芯片”基礎(chǔ)<b class='flag-5'>知識(shí)</b>的<b class='flag-5'>詳解</b>;

    學(xué)習(xí)物聯(lián)網(wǎng)怎么入門?

    景等。同時(shí),學(xué)習(xí)物聯(lián)網(wǎng)的基本技術(shù),如傳感器技術(shù)、通信技術(shù)、云計(jì)算等,也是非常重要的。 其次,選擇適合自己的學(xué)習(xí)方式也是入門學(xué)習(xí)物聯(lián)網(wǎng)的重要一步。
    發(fā)表于 10-14 10:34

    關(guān)于“隨機(jī)存取存儲(chǔ)器(RAM)”的基礎(chǔ)知識(shí)詳解;

    【博主簡(jiǎn)介】 本人系一名半導(dǎo)體行業(yè)質(zhì)量管理從業(yè)者,旨在業(yè)余時(shí)間不定期的分享半導(dǎo)體行業(yè)中的:產(chǎn)品質(zhì)量、失效分析、可靠性分析和產(chǎn)品基礎(chǔ)應(yīng)用等相關(guān)知識(shí)。常言:真知不問出處,所分享的內(nèi)容如有雷同或是不當(dāng)之處
    的頭像 發(fā)表于 09-19 11:04 ?2219次閱讀
    <b class='flag-5'>關(guān)于</b>“隨機(jī)存取存儲(chǔ)器(RAM)”的基礎(chǔ)<b class='flag-5'>知識(shí)</b><b class='flag-5'>詳解</b>;

    ARM入門學(xué)習(xí)方法分享

    ,了解相關(guān)的硬件知識(shí)也是很重要的。學(xué)習(xí)關(guān)于計(jì)算機(jī)體系結(jié)構(gòu)和電子電路的基礎(chǔ)知識(shí)可以幫助你更好地理解ARM的工作原理。 六、參考文檔和教程:ARM的官方文檔和教程是
    發(fā)表于 07-23 10:21

    跟老齊學(xué)Python:從入門到精通

    本帖最后由 yuu_cool 于 2025-6-3 16:52 編輯 本資料是面向編程零基礎(chǔ)讀者的Python 入門教程,內(nèi)容涵蓋了Python 的基礎(chǔ)知識(shí)和初步應(yīng)用。以比較輕快的風(fēng)格,向零基
    發(fā)表于 06-03 16:10

    使用MATLAB進(jìn)行無監(jiān)督學(xué)習(xí)

    無監(jiān)督學(xué)習(xí)是一種根據(jù)未標(biāo)注數(shù)據(jù)進(jìn)行推斷的機(jī)器學(xué)習(xí)方法。無監(jiān)督學(xué)習(xí)旨在識(shí)別數(shù)據(jù)中隱藏的模式和關(guān)系,無需任何監(jiān)督或關(guān)于結(jié)果的先驗(yàn)知識(shí)。
    的頭像 發(fā)表于 05-16 14:48 ?1451次閱讀
    使用MATLAB進(jìn)行無監(jiān)督<b class='flag-5'>學(xué)習(xí)</b>

    嵌入式開發(fā)入門指南:從零開始學(xué)習(xí)嵌入式

    隨著物聯(lián)網(wǎng)、智能硬件的發(fā)展,嵌入式開發(fā)成為熱門技能之一。以下將為初學(xué)者提供一份詳細(xì)的嵌入式開發(fā)入門指南,涵蓋學(xué)習(xí)路徑、必備工具、推薦資源等內(nèi)容。 1. 嵌入式系統(tǒng)的定義與應(yīng)用嵌入式系統(tǒng)是指用于執(zhí)行
    發(fā)表于 05-15 09:29

    【「零基礎(chǔ)開發(fā)AI Agent」閱讀體驗(yàn)】+ 入門學(xué)習(xí)

    的是基礎(chǔ)篇,主要從為什么要學(xué)習(xí)AI Agent和開發(fā)AI Agent的知識(shí)儲(chǔ)備入手進(jìn)行介紹。作為入門AI Agent的小白還是很有必要學(xué)習(xí)的。這里將一些重要觀點(diǎn)作個(gè)歸納 1.AI Ag
    發(fā)表于 05-02 09:26

    【「零基礎(chǔ)開發(fā)AI Agent」閱讀體驗(yàn)】總體預(yù)覽及入門

    基礎(chǔ)知識(shí)有所補(bǔ)充,另外書本后面的案例也會(huì)對(duì)Ai的應(yīng)用產(chǎn)生一些啟發(fā). 首先老規(guī)矩,先看一下目錄結(jié)構(gòu) 包含3大主題: 入門篇:介紹了Agent的概念、發(fā)展、與Prompt和Copilot的區(qū)別
    發(fā)表于 04-20 21:53

    IPC2221簡(jiǎn)略學(xué)習(xí)筆記

    關(guān)于IPC2221的學(xué)習(xí)筆記。
    發(fā)表于 03-14 18:07 ?10次下載

    開關(guān)電源設(shè)計(jì)資料大全(建議收藏)

    今天要給大家分享一些開關(guān)電源方面的資料,里面都是開關(guān)電源相關(guān)的技術(shù)知識(shí),有入門基礎(chǔ),TI培訓(xùn),變壓器,EMC等相關(guān)知識(shí),如果工作之余時(shí)間比較充裕的條件下,可以多學(xué)習(xí)下。 本資料可供從
    發(fā)表于 03-11 13:45