最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python機(jī)器學(xué)習(xí)GCN圖卷積神經(jīng)網(wǎng)絡(luò)原理解析

 更新時(shí)間:2022年05月10日 15:19:22   作者:Mr.琛  
這篇文章主要為大家介紹了GCN圖卷積神經(jīng)網(wǎng)絡(luò)原理及代碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

1. 圖信號處理知識

圖卷積神經(jīng)網(wǎng)絡(luò)涉及到圖信號處理的相關(guān)知識,也是由圖信號處理領(lǐng)域的知識推導(dǎo)發(fā)展而來,了解圖信號處理的知識是理解圖卷積神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)。

1.1 圖的拉普拉斯矩陣

拉普拉斯矩陣是體現(xiàn)圖結(jié)構(gòu)關(guān)聯(lián)的一種重要矩陣,是圖卷積神經(jīng)網(wǎng)絡(luò)的一個(gè)重要部分。

1.1.1 拉普拉斯矩陣的定義及示例

實(shí)例:

按照上述計(jì)算式子,可以得到拉普拉斯矩陣為:

1.1.2 正則化拉普拉斯矩陣

1.1.3 拉普拉斯矩陣的性質(zhì)

1.2 圖上的傅里葉變換

傅里葉變換是一種分析信號的方法,它可分析信號的成分,也可用這些成分合成信號。它將信號從時(shí)域轉(zhuǎn)換到頻域,從頻域視角給出了信號處理的另一種解法。(1)對于圖結(jié)構(gòu),可以定義圖上的傅里葉變換(GFT),對于任意一個(gè)在圖G上的信號x,其傅里葉變換表示為:

從線代角度,可以清晰的看出:v1,…, vn構(gòu)成了N維特征空間中的一組完備基向量,G中任意一個(gè)圖信號都可表示為這些基向量的線性加權(quán)求和,系數(shù)為圖信號對應(yīng)傅里葉基上的傅里葉系數(shù)。

回到之前提到的拉普拉斯矩陣刻畫平滑度的總變差:

可以看成:刻畫圖平滑度的總變差是圖中所有節(jié)點(diǎn)特征值的線性組合,權(quán)值為傅里葉系數(shù)的平方??傋儾钊∽钚≈档臈l件是圖信號與最小的特征值所對應(yīng)的特征向量完全重合,結(jié)合其描述圖信號整體平滑度的意義,可將特征值等價(jià)成頻率:特征值越低,頻率越低,對應(yīng)的傅里葉基變化緩慢,即相近節(jié)點(diǎn)的信號值趨于一致。

把圖信號所有的傅里葉系數(shù)結(jié)合稱為頻譜(spectrum),頻域的視角從全局視角既考慮信號本身,也考慮到圖的結(jié)構(gòu)性質(zhì)。

1.3 圖信號濾波器

圖濾波器(Graph Filter)為對圖中的頻率分量進(jìn)行增強(qiáng)或衰減,圖濾波算子核心為其頻率響應(yīng)矩陣,為濾波器帶來不同的濾波效果。

故圖濾波器根據(jù)濾波效果可分為低通,高通和帶通。

低通濾波器:保留低頻部分,關(guān)注信號的平滑部分;

高通濾波器:保留高頻部分,關(guān)注信號的劇烈變化部分;

帶通濾波器:保留特定頻段部分;

而拉普拉斯矩陣多項(xiàng)式擴(kuò)展可形成圖濾波器H:

2. 圖卷積神經(jīng)網(wǎng)絡(luò)

2.1 數(shù)學(xué)定義

圖卷積運(yùn)算的數(shù)學(xué)定義為:

上述公式存在一個(gè)較大問題:學(xué)習(xí)參數(shù)為N,這涉及到整個(gè)圖的所有節(jié)點(diǎn),對于大規(guī)模數(shù)據(jù)極易發(fā)生過擬合。

進(jìn)一步的化簡推導(dǎo):將之前說到的拉普拉斯矩陣的多項(xiàng)式展開代替上述可訓(xùn)練參數(shù)矩陣。

此結(jié)構(gòu)內(nèi)容即定義為圖卷積層(GCN layer),有圖卷積層堆疊得到的網(wǎng)絡(luò)模型即為圖卷積網(wǎng)絡(luò)GCN。

2.2 GCN的理解及時(shí)間復(fù)雜度

圖卷積層是對頻率響應(yīng)矩陣的極大化簡,將本要訓(xùn)練的圖濾波器直接退化為重歸一化拉普拉斯矩陣

2.3 GCN的優(yōu)缺點(diǎn)

優(yōu)點(diǎn):GCN作為近年圖神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)之作,對處理圖數(shù)據(jù)非常有效,其對圖結(jié)構(gòu)的結(jié)構(gòu)信息和節(jié)點(diǎn)的屬性信息同時(shí)學(xué)習(xí),共同得到最終的節(jié)點(diǎn)特征表示,考慮到了節(jié)點(diǎn)之間的結(jié)構(gòu)關(guān)聯(lián)性,這在圖操作中是非常重要的。

缺點(diǎn):過平滑問題(多層疊加之后,節(jié)點(diǎn)的表示向量趨向一致,節(jié)點(diǎn)難以區(qū)分),由于GCN具有一個(gè)低通濾波器的作用(j聚合特征時(shí)使得節(jié)點(diǎn)特征不斷融合),多次迭代后特征會趨于相同。

3. Pytorch代碼解析

GCN層的pytorch實(shí)現(xiàn):

class GraphConvolutionLayer(nn.Module):
    '''
        圖卷積層:Lsym*X*W
            其中 Lsym表示正則化圖拉普拉斯矩陣, X為輸入特征, W為權(quán)重矩陣, X'表示輸出特征;
            *表示矩陣乘法
    '''
    def __init__(self, input_dim, output_dim, use_bias=True):
        #初始化, parameters: input_dim-->輸入維度, output_dim-->輸出維度, use_bias-->是否使用偏置項(xiàng), boolean
        super(GraphConvolutionLayer,self).__init__()
        self.input_dim=input_dim
        self.output_dim=output_dim
        self.use_bias=use_bias #是否加入偏置, 默認(rèn)為True
        self.weight=nn.Parameter(torch.Tensor(input_dim, output_dim))#權(quán)重矩陣為可訓(xùn)練參數(shù)
        if self.use_bias==True: #加入偏置
            self.bias=nn.Parameter(torch.Tensor(output_dim)) 
        else: #設(shè)置偏置為空
            self.register_parameter('bias', None)
        self.reset_parameters()
    def reset_parameters(self):
        #初始化參數(shù)
        stdv = 1. / math.sqrt(self.weight.size(1))
        self.weight.data.uniform_(-stdv, stdv)#使用均勻分布U(-stdv,stdv)初始化權(quán)重Tensor
        if self.bias is not None:
            self.bias.data.uniform_(-stdv, stdv)
    def forward(self, adj, input_feature):
        #前向傳播, parameters: adj-->鄰接矩陣(輸入為正則化拉普拉斯矩陣), input_future-->輸入特征矩陣
        temp=torch.mm(input_feature, self.weight)#矩陣乘法, 得到X*W
        output_feature=torch.sparse.mm(adj, temp)#由于鄰接矩陣adj為稀疏矩陣, 采用稀疏矩陣乘法提高計(jì)算效率, 得到Lsym*temp=Lsym*X*W
        if self.use_bias==True: #若設(shè)置了偏置, 加入偏置項(xiàng)
            output_feature+=self.bias
        return output_feature

定義兩層的GCN網(wǎng)絡(luò)模型:

class GCN(nn.Module):
    '''
        定義兩層GCN網(wǎng)絡(luò)模型
    '''
    def __init__(self, input_dim, hidden_dim, output_dim):
        #初始化, parameters: input_dim-->輸入維度, hidden_dim-->隱藏層維度, output_dim-->輸出維度
        super.__init__(GCN, self).__init__()
        #定義兩層圖卷積層
        self.gcn1=GraphConvolutionLayer(input_dim, hidden_dim)
        self.gcn2=GraphConvolutionLayer(hidden_dim, output_dim)
    def forward(self, adj, feature):
        #前向傳播, parameters: adj-->鄰接矩陣, feature-->輸入特征
        x=F.relu(self.gcn1(adj, feature))
        x=self.gcn2(adj, x)
        return F.log_softmax(x, dim=1)

以上就是GCN圖卷積神經(jīng)網(wǎng)絡(luò)原理及代碼解析的詳細(xì)內(nèi)容,更多關(guān)于GCN圖卷積神經(jīng)網(wǎng)絡(luò)的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 在pyCharm中下載第三方庫的方法

    在pyCharm中下載第三方庫的方法

    這篇文章主要介紹了在pyCharm中下載第三方庫的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • 如何更改 pandas dataframe 中兩列的位置

    如何更改 pandas dataframe 中兩列的位置

    如何更改 pandas dataframe 中兩列的位置?今天小編就為大家介紹兩種操作方法,希望對大家有所幫助,還等什么?一起跟隨小編過來看看吧
    2019-12-12
  • Python利用PyAutoGUI模塊實(shí)現(xiàn)控制鼠標(biāo)鍵盤

    Python利用PyAutoGUI模塊實(shí)現(xiàn)控制鼠標(biāo)鍵盤

    PyAutoGUI是一個(gè)簡單易用,跨平臺的可以模擬鍵盤鼠標(biāo)進(jìn)行自動操作的python庫。本文將詳細(xì)講講它是如何實(shí)現(xiàn)控制鼠標(biāo)鍵盤的,感興趣的可以了解一下
    2022-06-06
  • python分析nignx訪問日志腳本分享

    python分析nignx訪問日志腳本分享

    這篇文章主要介紹了python分析nignx訪問日志腳本分享,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2015-02-02
  • python遍歷目錄下所有文件的五種實(shí)現(xiàn)方法

    python遍歷目錄下所有文件的五種實(shí)現(xiàn)方法

    本文主要介紹了python遍歷目錄下所有文件的五種實(shí)現(xiàn)方法,包含os.walk(),os.scandir(),os.listdir(),glob模塊和osqp模塊這幾種方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-07-07
  • Python中串口操作的實(shí)現(xiàn)示例

    Python中串口操作的實(shí)現(xiàn)示例

    本文主要介紹了使用Python的pyserial庫進(jìn)行串口通信,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • PyQt5實(shí)現(xiàn)簡易計(jì)算器

    PyQt5實(shí)現(xiàn)簡易計(jì)算器

    這篇文章主要為大家詳細(xì)介紹了用PyQt5開發(fā)一個(gè)簡易的計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • Python3.6.x中內(nèi)置函數(shù)總結(jié)及講解

    Python3.6.x中內(nèi)置函數(shù)總結(jié)及講解

    今天小編就為大家分享一篇關(guān)于Python3.6.x中內(nèi)置函數(shù)總結(jié)及講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • 最新Python idle下載、安裝與使用教程圖文詳解

    最新Python idle下載、安裝與使用教程圖文詳解

    這篇文章主要介紹了最新Python idle下載、安裝與使用教程圖文詳解,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • 利用Python輕松生成藝術(shù)簽名

    利用Python輕松生成藝術(shù)簽名

    很多兄弟覺得自己字寫的不好什么的,沒事,咱們直接用python來生成。本文就將為大家介紹如何利用Python輕松生成藝術(shù)簽名,需要的可以參考一下
    2022-01-01

最新評論

呼伦贝尔市| 海宁市| 武定县| 祁东县| 泰安市| 柘城县| 德江县| 泸水县| 榆社县| 南城县| 苍山县| 衡东县| 大庆市| 青河县| 平利县| 将乐县| 斗六市| 普兰店市| 宣城市| 甘孜| 罗定市| 宜阳县| 西林县| 诏安县| 定结县| 大同县| 敦煌市| 伊金霍洛旗| 枣强县| 曲阳县| 涞水县| 华容县| 安吉县| 桂东县| 吴旗县| 和田市| 巩义市| 密云县| 抚顺市| 新丰县| 大竹县|