女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

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

圖卷積神經(jīng)網(wǎng)絡(luò)入門詳解

倩倩 ? 來源:AI科技大本營(yíng) ? 2020-04-17 10:14 ? 次閱讀

【導(dǎo)讀】GCN問世已經(jīng)有幾年了(2016年就誕生了),但是這兩年尤為火爆。本人愚鈍,一直沒能搞懂這個(gè)GCN為何物,最開始是看清華寫的一篇三四十頁的綜述,讀了幾頁就沒讀了;后來直接拜讀GCN的開山之作,也是讀到中間的數(shù)學(xué)部分就跪了;再后來在知乎上看大神們的講解,直接被排山倒海般的公式——什么傅里葉變換、什么拉普拉斯算子等等,給搞蒙了,越讀越覺得:“哇這些大佬好厲害,哎我怎么這么菜!”。就這么反反復(fù)復(fù),嘗試一次放棄一次,終于慢慢有點(diǎn)理解了,慢慢從那些公式的里跳了出來,看到了全局,也就慢慢明白了GCN的原理。今天,我就記錄一下我對(duì)GCN“階段性”的理解。

GCN的概念首次提出于ICLR2017(成文于2016年):

一、GCN是做什么的

在扎進(jìn)GCN的汪洋大海前,我們先搞清楚這個(gè)玩意兒是做什么的,有什么用。

深度學(xué)習(xí)一直都是被幾大經(jīng)典模型給統(tǒng)治著,如CNN、RNN等等,它們無論再CV還是NLP領(lǐng)域都取得了優(yōu)異的效果,那這個(gè)GCN是怎么跑出來的?是因?yàn)槲覀儼l(fā)現(xiàn)了很多CNN、RNN無法解決或者效果不好的問題——圖結(jié)構(gòu)的數(shù)據(jù)。

回憶一下,我們做圖像識(shí)別,對(duì)象是圖片,是一個(gè)二維的結(jié)構(gòu),于是人們發(fā)明了CNN這種神奇的模型來提取圖片的特征。CNN的核心在于它的kernel,kernel是一個(gè)個(gè)小窗口,在圖片上平移,通過卷積的方式來提取特征。這里的關(guān)鍵在于圖片結(jié)構(gòu)上的平移不變性:一個(gè)小窗口無論移動(dòng)到圖片的哪一個(gè)位置,其內(nèi)部的結(jié)構(gòu)都是一模一樣的,因此CNN可以實(shí)現(xiàn)參數(shù)共享。這就是CNN的精髓所在。

再回憶一下RNN系列,它的對(duì)象是自然語言這樣的序列信息,是一個(gè)一維的結(jié)構(gòu),RNN就是專門針對(duì)這些序列的結(jié)構(gòu)而設(shè)計(jì)的,通過各種門的操作,使得序列前后的信息互相影響,從而很好地捕捉序列的特征。

上面講的圖片或者語言,都屬于歐式空間的數(shù)據(jù),因此才有維度的概念,歐式空間的數(shù)據(jù)的特點(diǎn)就是結(jié)構(gòu)很規(guī)則。但是現(xiàn)實(shí)生活中,其實(shí)有很多很多不規(guī)則的數(shù)據(jù)結(jié)構(gòu),典型的就是圖結(jié)構(gòu),或稱拓?fù)浣Y(jié)構(gòu),如社交網(wǎng)絡(luò)、化學(xué)分子結(jié)構(gòu)、知識(shí)圖譜等等;即使是語言,實(shí)際上其內(nèi)部也是復(fù)雜的樹形結(jié)構(gòu),也是一種圖結(jié)構(gòu);而像圖片,在做目標(biāo)識(shí)別的時(shí)候,我們關(guān)注的實(shí)際上只是二維圖片上的部分關(guān)鍵點(diǎn),這些點(diǎn)組成的也是一個(gè)圖的結(jié)構(gòu)。

圖的結(jié)構(gòu)一般來說是十分不規(guī)則的,可以認(rèn)為是無限維的一種數(shù)據(jù),所以它沒有平移不變性。每一個(gè)節(jié)點(diǎn)的周圍結(jié)構(gòu)可能都是獨(dú)一無二的,這種結(jié)構(gòu)的數(shù)據(jù),就讓傳統(tǒng)的CNN、RNN瞬間失效。所以很多學(xué)者從上個(gè)世紀(jì)就開始研究怎么處理這類數(shù)據(jù)了。這里涌現(xiàn)出了很多方法,例如GNN、DeepWalk、node2vec等等,GCN只是其中一種,這里只講GCN,其他的后面有空再討論。

GCN,圖卷積神經(jīng)網(wǎng)絡(luò),實(shí)際上跟CNN的作用一樣,就是一個(gè)特征提取器,只不過它的對(duì)象是圖數(shù)據(jù)。GCN精妙地設(shè)計(jì)了一種從圖數(shù)據(jù)中提取特征的方法,從而讓我們可以使用這些特征去對(duì)圖數(shù)據(jù)進(jìn)行節(jié)點(diǎn)分類(node classification)、圖分類(graph classification)、邊預(yù)測(cè)(link prediction),還可以順便得到圖的嵌入表示(graph embedding),可見用途廣泛。因此現(xiàn)在人們腦洞大開,讓GCN到各個(gè)領(lǐng)域中發(fā)光發(fā)熱。

二、GCN長(zhǎng)啥樣,嚇人嗎

GCN的公式看起來還是有點(diǎn)嚇人的,論文里的公式更是嚇破了我的膽兒。但后來才發(fā)現(xiàn),其實(shí)90%的內(nèi)容根本不必理會(huì),只是為了從數(shù)學(xué)上嚴(yán)謹(jǐn)?shù)匕咽虑榻o講清楚,但是完全不影響我們的理解,尤其對(duì)于我這種“追求直覺,不求甚解”之人。

下面進(jìn)入正題,我們直接看看GCN的核心部分是什么亞子:

假設(shè)我們手頭有一批圖數(shù)據(jù),其中有N個(gè)節(jié)點(diǎn)(node),每個(gè)節(jié)點(diǎn)都有自己的特征,我們?cè)O(shè)這些節(jié)點(diǎn)的特征組成一個(gè)N×D維的矩陣X,然后各個(gè)節(jié)點(diǎn)之間的關(guān)系也會(huì)形成一個(gè)N×N維的矩陣A,也稱為鄰接矩陣(adjacency matrix)。X和A便是我們模型的輸入。

GCN也是一個(gè)神經(jīng)網(wǎng)絡(luò)層,它的層與層之間的傳播方式是:

這個(gè)公式中:

A波浪=A+I,I是單位矩陣

D波浪是A波浪的度矩陣(degree matrix),公式為

H是每一層的特征,對(duì)于輸入層的話,H就是X

σ是非線性激活函數(shù)

我們先不用考慮為什么要這樣去設(shè)計(jì)一個(gè)公式。我們現(xiàn)在只用知道: 這個(gè)部分,是可以事先算好的,因?yàn)镈波浪由A計(jì)算而來,而A是我們的輸入之一。

所以對(duì)于不需要去了解數(shù)學(xué)原理、只想應(yīng)用GCN來解決實(shí)際問題的人來說,你只用知道:哦,這個(gè)GCN設(shè)計(jì)了一個(gè)牛逼的公式,用這個(gè)公式就可以很好地提取圖的特征。這就夠了,畢竟不是什么事情都需要知道內(nèi)部原理,這是根據(jù)需求決定的。

為了直觀理解,我們用論文中的一幅圖:

上圖中的GCN輸入一個(gè)圖,通過若干層GCN每個(gè)node的特征從X變成了Z,但是,無論中間有多少層,node之間的連接關(guān)系,即A,都是共享的。

假設(shè)我們構(gòu)造一個(gè)兩層的GCN,激活函數(shù)分別采用ReLU和Softmax,則整體的正向傳播的公式為:

最后,我們針對(duì)所有帶標(biāo)簽的節(jié)點(diǎn)計(jì)算cross entropy損失函數(shù):

就可以訓(xùn)練一個(gè)node classification的模型了。由于即使只有很少的node有標(biāo)簽也能訓(xùn)練,作者稱他們的方法為半監(jiān)督分類。

當(dāng)然,你也可以用這個(gè)方法去做graph classification、link prediction,只是把損失函數(shù)給變化一下即可。

三、GCN為什么是這個(gè)亞子

我前后翻看了很多人的解讀,但是讀了一圈,最讓我清楚明白為什么GCN的公式是這樣子的居然是作者Kipf自己的博客:tkipf.github.io/graph-c 推薦大家一讀。

作者給出了一個(gè)由簡(jiǎn)入繁的過程來解釋:

我們的每一層GCN的輸入都是鄰接矩陣A和node的特征H,那么我們直接做一個(gè)內(nèi)積,再乘一個(gè)參數(shù)矩陣W,然后激活一下,就相當(dāng)于一個(gè)簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò)層嘛,是不是也可以呢?

實(shí)驗(yàn)證明,即使就這么簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò)層,就已經(jīng)很強(qiáng)大了。這個(gè)簡(jiǎn)單模型應(yīng)該大家都能理解吧,這就是正常的神經(jīng)網(wǎng)絡(luò)操作。

但是這個(gè)簡(jiǎn)單模型有幾個(gè)局限性:

只使用A的話,由于A的對(duì)角線上都是0,所以在和特征矩陣H相乘的時(shí)候,只會(huì)計(jì)算一個(gè)node的所有鄰居的特征的加權(quán)和,該node自己的特征卻被忽略了。因此,我們可以做一個(gè)小小的改動(dòng),給A加上一個(gè)單位矩陣I,這樣就讓對(duì)角線元素變成1了。

A是沒有經(jīng)過歸一化的矩陣,這樣與特征矩陣相乘會(huì)改變特征原本的分布,產(chǎn)生一些不可預(yù)測(cè)的問題。所以我們對(duì)A做一個(gè)標(biāo)準(zhǔn)化處理。首先讓A的每一行加起來為1,我們可以乘以一個(gè)

,D就是度矩陣。我們可以進(jìn)一步把 拆開與A相乘,得到一個(gè)對(duì)稱且歸一化的矩陣:

通過對(duì)上面兩個(gè)局限的改進(jìn),我們便得到了最終的層特征傳播公式:

其中 ,

為 的degree matrix。

公式中的 與對(duì)稱歸一化拉普拉斯矩陣十分類似,而在譜圖卷積的核心就是使用對(duì)稱歸一化拉普拉斯矩陣,這也是GCN的卷積叫法的來歷。原論文中給出了完整的從譜卷積到GCN的一步步推導(dǎo),我是看不下去的,大家有興趣可以自行閱讀。

四、GCN有多牛

在看了上面的公式以及訓(xùn)練方法之后,我并沒有覺得GCN有多么特別,無非就是一個(gè)設(shè)計(jì)巧妙的公式嘛,也許我不用這么復(fù)雜的公式,多加一點(diǎn)訓(xùn)練數(shù)據(jù)或者把模型做深,也可能達(dá)到媲美的效果呢。

但是一直到我讀到了論文的附錄部分,我才頓時(shí)發(fā)現(xiàn):GCN原來這么牛啊!

為啥呢?

因?yàn)榧词共挥?xùn)練,完全使用隨機(jī)初始化的參數(shù)W,GCN提取出來的特征就以及十分優(yōu)秀了!這跟CNN不訓(xùn)練是完全不一樣的,后者不訓(xùn)練是根本得不到什么有效特征的。

我們看論文原文:

然后作者做了一個(gè)實(shí)驗(yàn),使用一個(gè)俱樂部會(huì)員的關(guān)系網(wǎng)絡(luò),使用隨機(jī)初始化的GCN進(jìn)行特征提取,得到各個(gè)node的embedding,然后可視化:

可以發(fā)現(xiàn),在原數(shù)據(jù)中同類別的node,經(jīng)過GCN的提取出的embedding,已經(jīng)在空間上自動(dòng)聚類了。

而這種聚類結(jié)果,可以和DeepWalk、node2vec這種經(jīng)過復(fù)雜訓(xùn)練得到的node embedding的效果媲美了。

說的夸張一點(diǎn),比賽還沒開始,GCN就已經(jīng)在終點(diǎn)了。看到這里我不禁猛拍大腿打呼:“NB!”

還沒訓(xùn)練就已經(jīng)效果這么好,那給少量的標(biāo)注信息,GCN的效果就會(huì)更加出色。

作者接著給每一類的node,提供僅僅一個(gè)標(biāo)注樣本,然后去訓(xùn)練,得到的可視化效果如下:

這是整片論文讓我印象最深刻的地方。

看到這里,我覺得,以后有機(jī)會(huì),確實(shí)得詳細(xì)地吧GCN背后的數(shù)學(xué)琢磨琢磨,其中的玄妙之處究竟為何,其物理本質(zhì)為何。這個(gè)時(shí)候,回憶起在知乎上看到的各路大神從各種角度解讀GCN,例如從熱量傳播的角度,從一個(gè)群體中每個(gè)人的工資的角度,生動(dòng)形象地解釋。這一刻,歷來痛恨數(shù)學(xué)的我,我感受到了一絲數(shù)學(xué)之美,于是凌晨?jī)牲c(diǎn)的我,打開了天貓,下單了一本正版《數(shù)學(xué)之美》。哦,數(shù)學(xué)啊,你真如一朵美麗的玫瑰,每次被你的美所吸引,都要深深受到刺痛,我何時(shí)才能懂得你、擁有你?

其他關(guān)于GCN的點(diǎn)滴:

對(duì)于很多網(wǎng)絡(luò),我們可能沒有節(jié)點(diǎn)的特征,這個(gè)時(shí)候可以使用GCN嗎?答案是可以的,如論文中作者對(duì)那個(gè)俱樂部網(wǎng)絡(luò),采用的方法就是用單位矩陣 I 替換特征矩陣 X。

我沒有任何的節(jié)點(diǎn)類別的標(biāo)注,或者什么其他的標(biāo)注信息,可以使用GCN嗎?當(dāng)然,就如前面講的,不訓(xùn)練的GCN,也可以用來提取graph embedding,而且效果還不錯(cuò)。

GCN網(wǎng)絡(luò)的層數(shù)多少比較好?論文的作者做過GCN網(wǎng)絡(luò)深度的對(duì)比研究,在他們的實(shí)驗(yàn)中發(fā)現(xiàn),GCN層數(shù)不宜多,2-3層的效果就很好了。

這么強(qiáng)大的玩意兒,趕緊去試試吧!

聲明:本文內(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)投訴
  • 圖像識(shí)別
    +關(guān)注

    關(guān)注

    9

    文章

    526

    瀏覽量

    38907
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5554

    瀏覽量

    122491
  • cnn
    cnn
    +關(guān)注

    關(guān)注

    3

    文章

    354

    瀏覽量

    22642
收藏 人收藏

    評(píng)論

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

    BP神經(jīng)網(wǎng)絡(luò)卷積神經(jīng)網(wǎng)絡(luò)的比較

    BP神經(jīng)網(wǎng)絡(luò)卷積神經(jīng)網(wǎng)絡(luò)在多個(gè)方面存在顯著差異,以下是對(duì)兩者的比較: 一、結(jié)構(gòu)特點(diǎn) BP神經(jīng)網(wǎng)絡(luò) : BP神經(jīng)網(wǎng)絡(luò)是一種多層的前饋
    的頭像 發(fā)表于 02-12 15:53 ?502次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的比較

    在深度學(xué)習(xí)領(lǐng)域,神經(jīng)網(wǎng)絡(luò)模型被廣泛應(yīng)用于各種任務(wù),如圖像識(shí)別、自然語言處理和游戲智能等。其中,卷積神經(jīng)網(wǎng)絡(luò)(CNNs)和傳統(tǒng)神經(jīng)網(wǎng)絡(luò)是兩種常見的模型。 1. 結(jié)構(gòu)差異 1.1 傳統(tǒng)
    的頭像 發(fā)表于 11-15 14:53 ?1626次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)的基本概念、原理及特點(diǎn)

    卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,簡(jiǎn)稱CNN)是一種深度學(xué)習(xí)算法,它在圖像識(shí)別、視頻分析、自然語言處理等領(lǐng)域有著廣泛的應(yīng)用。本文將詳細(xì)介紹卷積神經(jīng)網(wǎng)絡(luò)
    的頭像 發(fā)表于 07-11 14:38 ?2258次閱讀

    BP神經(jīng)網(wǎng)絡(luò)卷積神經(jīng)網(wǎng)絡(luò)的關(guān)系

    BP神經(jīng)網(wǎng)絡(luò)(Backpropagation Neural Network)和卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,簡(jiǎn)稱CNN)是兩種在人工智能和機(jī)器學(xué)習(xí)領(lǐng)域
    的頭像 發(fā)表于 07-10 15:24 ?2292次閱讀

    循環(huán)神經(jīng)網(wǎng)絡(luò)卷積神經(jīng)網(wǎng)絡(luò)的區(qū)別

    循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)和卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)是深度學(xué)習(xí)領(lǐng)域中兩種非常重要的神經(jīng)網(wǎng)絡(luò)
    的頭像 發(fā)表于 07-04 14:24 ?1931次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)與循環(huán)神經(jīng)網(wǎng)絡(luò)的區(qū)別

    在深度學(xué)習(xí)領(lǐng)域,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks, CNN)和循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Networks, RNN)是兩種極其重要
    的頭像 發(fā)表于 07-03 16:12 ?5352次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn)原理

    卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,簡(jiǎn)稱CNN)是一種深度學(xué)習(xí)模型,廣泛應(yīng)用于圖像識(shí)別、視頻分析、自然語言處理等領(lǐng)域。本文將詳細(xì)介紹卷積神經(jīng)網(wǎng)絡(luò)
    的頭像 發(fā)表于 07-03 10:49 ?1014次閱讀

    bp神經(jīng)網(wǎng)絡(luò)卷積神經(jīng)網(wǎng)絡(luò)區(qū)別是什么

    BP神經(jīng)網(wǎng)絡(luò)(Backpropagation Neural Network)和卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,簡(jiǎn)稱CNN)是兩種不同類型的人工神經(jīng)網(wǎng)絡(luò)
    的頭像 發(fā)表于 07-03 10:12 ?2459次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)分類方法有哪些

    卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)是一種深度學(xué)習(xí)模型,廣泛應(yīng)用于圖像分類、目標(biāo)檢測(cè)、語義分割等計(jì)算機(jī)視覺任務(wù)。本文將詳細(xì)介紹卷積神經(jīng)網(wǎng)絡(luò)
    的頭像 發(fā)表于 07-03 09:40 ?883次閱讀

    cnn卷積神經(jīng)網(wǎng)絡(luò)分類有哪些

    卷積神經(jīng)網(wǎng)絡(luò)(CNN)是一種深度學(xué)習(xí)模型,廣泛應(yīng)用于圖像分類、目標(biāo)檢測(cè)、語義分割等領(lǐng)域。本文將詳細(xì)介紹CNN在分類任務(wù)中的應(yīng)用,包括基本結(jié)構(gòu)、關(guān)鍵技術(shù)、常見網(wǎng)絡(luò)架構(gòu)以及實(shí)際應(yīng)用案例。 引言 1.1
    的頭像 發(fā)表于 07-03 09:28 ?1326次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練的是什么

    卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,簡(jiǎn)稱CNN)是一種深度學(xué)習(xí)模型,廣泛應(yīng)用于圖像識(shí)別、視頻分析、自然語言處理等領(lǐng)域。本文將詳細(xì)介紹卷積神經(jīng)網(wǎng)絡(luò)
    的頭像 發(fā)表于 07-03 09:15 ?857次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)的原理與實(shí)現(xiàn)

    1.卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,簡(jiǎn)稱CNN)是一種深度學(xué)習(xí)模型,廣泛應(yīng)用于圖像識(shí)別、視頻分析、自然語言處理等領(lǐng)域。 卷積神經(jīng)網(wǎng)絡(luò)是一種前饋
    的頭像 發(fā)表于 07-02 16:47 ?1163次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)及其功能

    卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,簡(jiǎn)稱CNN)是一種深度學(xué)習(xí)模型,廣泛應(yīng)用于圖像識(shí)別、視頻分析、自然語言處理等領(lǐng)域。本文將詳細(xì)介紹卷積神經(jīng)網(wǎng)絡(luò)的基
    的頭像 發(fā)表于 07-02 14:45 ?3346次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)的原理是什么

    卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,簡(jiǎn)稱CNN)是一種深度學(xué)習(xí)模型,廣泛應(yīng)用于圖像識(shí)別、語音識(shí)別、自然語言處理等領(lǐng)域。本文將詳細(xì)介紹卷積神經(jīng)網(wǎng)絡(luò)的原
    的頭像 發(fā)表于 07-02 14:44 ?1209次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)和bp神經(jīng)網(wǎng)絡(luò)的區(qū)別

    卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,簡(jiǎn)稱CNN)和BP神經(jīng)網(wǎng)絡(luò)(Backpropagation Neural Networks,簡(jiǎn)稱BPNN)是兩種
    的頭像 發(fā)表于 07-02 14:24 ?5910次閱讀