国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

解密GCN,手把手教你用PyTorch實現圖卷積網絡

發布于 2024-8-27 11:42
瀏覽
0收藏

圖神經網絡(GNNs,Graph Neural Networks)是一類專為圖結構數據設計的強大神經網絡,擅長捕捉數據之間的復雜聯系和關系。

相較于傳統神經網絡,GNN在處理相互關聯的數據點時更具優勢,比如在社交網絡分析、分子結構建?;蚪煌ㄏ到y優化等領域,GNN能夠發揮出卓越的性能。

1 GNN概述

圖神經網絡是近年來新興的一類深度學習模型,擅長處理圖形數據。

傳統神經網絡處理的是像數字列表這樣的簡單數據,而圖神經網絡能處理更復雜的圖形數據,比如由很多點(稱為節點)和連接這些點的線(稱為邊)組成的圖形,并且能從這些圖形中找出重要的信息。

其核心機制是讓圖中的每個節點通過與鄰近節點的信息交換,來學習自己在整體圖形中的位置和特性。這種基于信息傳遞的方法,讓圖神經網絡能夠快速捕捉到圖形里的結構和關系。

這種技術在很多領域都大放異彩,比如社交網絡分析、分子結構預測、知識圖譜構建等等。

隨著科學家們不斷地研究和創新,圖神經網絡也在蓬勃發展,衍生出多種新模型,為機器學習在圖形數據領域的應用開辟了新的可能性。

2 圖卷積網絡(Graph Convolutional Networks)

簡單來說,圖卷積網絡(GCN)跟傳統神經網絡一樣,是由多層結構堆疊而成的。

在深度學習中,圖卷積網絡(GCN)的核心是圖卷積層,其工作機制與卷積神經網絡(CNN)的卷積層頗為相似。

在CNN中,卷積層負責捕捉圖像中局部區域的像素信息,這個過程稱之為“感受野”(Receptive Field),通過它,我們可以提取出圖像的簡化和低維特征。

解密GCN,手把手教你用PyTorch實現圖卷積網絡-AI.x社區

GCN層的工作原理與之類似,不過不是處理像素,而是處理圖中的節點信息。它通過收集每個節點及其相鄰節點的信息,來構建節點的表示,從而捕捉圖中的結構特征。

解密GCN,手把手教你用PyTorch實現圖卷積網絡-AI.x社區

3 推導GCN方程式

來聊聊圖卷積網絡(GNN)的數學原理。

首先,GNN的輸入是一個圖,這個圖可以用節點特征的矩陣和鄰接矩陣來表示。鄰接矩陣里的1代表兩個節點之間有連接,0則表示沒有連接。

解密GCN,手把手教你用PyTorch實現圖卷積網絡-AI.x社區

這個例子的鄰接矩陣是這樣的:

節點 1 -- 節點 2
     |
   節點 3

當我們用A乘以節點特征矩陣X,得到的結果是每個節點的鄰居對每個特征的貢獻總和。簡單來說,就是把每個節點i的鄰居j的特征加起來:

解密GCN,手把手教你用PyTorch實現圖卷積網絡-AI.x社區

然而,我們不應忽視節點自身的特征。為了將節點自身的特征也考慮進來,可以在鄰接矩陣A的對角線上增加1,這在數學上相當于引入了單位矩陣I。

解密GCN,手把手教你用PyTorch實現圖卷積網絡-AI.x社區

這樣:

解密GCN,手把手教你用PyTorch實現圖卷積網絡-AI.x社區

但是,還有一個問題:節點的鄰居數量可能不一樣。有的節點有幾百個鄰居,有的可能只有一兩個。為了公平起見,我們需要對總和進行歸一化。

一種方法是用每個節點的鄰居數(也就是節點的度)來除以這個總和。可以創建一個對角線上是節點度的對角度矩陣D,然后歸一化方程:

解密GCN,手把手教你用PyTorch實現圖卷積網絡-AI.x社區

這樣:

解密GCN,手把手教你用PyTorch實現圖卷積網絡-AI.x社區

直觀地說,行歸一化就是取鄰居特征的平均值,而列歸一化則考慮了鄰居的鄰居數。

為了兩者兼顧,采用對稱歸一化:

解密GCN,手把手教你用PyTorch實現圖卷積網絡-AI.x社區

這考慮了當前節點的鄰居數和鄰居的鄰居數。

這樣一來,我們的方程式就越來越完整了!

最后,我們需要一些參數來訓練機器學習模型,就像在線性回歸中那樣,可以簡單地插入一個權重矩陣。

解密GCN,手把手教你用PyTorch實現圖卷積網絡-AI.x社區

而且,我們知道添加非線性可以提供更好的特征表示,所以還可以在上面加一個ReLU激活函數。

最后:

解密GCN,手把手教你用PyTorch實現圖卷積網絡-AI.x社區

4 PyTorch 實現

接下來,看看如何在 PyTorch 中實現圖卷積網絡。

首先,在類的初始化方法__init__中,我們會設置好鄰接矩陣A、度矩陣D和權重矩陣W。

然后,在模型的前向傳播過程中,利用這些組件來構建節點的新特征矩陣H。

import torch
import torch.nn as nn
import torch.nn.functional as F

class GCNLayer(nn.Module):
    """
        GCN 層

        參數:
            input_dim (int): 輸入的維度
            output_dim (int): 輸出的維度(softmax 分布)
            A (torch.Tensor): 2D 鄰接矩陣
    """

    def __init__(self, input_dim: int, output_dim: int, A: torch.Tensor):
        super(GCNLayer, self).__init__()
        self.input_dim = input_dim
        self.output_dim = output_dim
        self.A = A

        # A_hat = A + I
        self.A_hat = self.A + torch.eye(self.A.size(0))

        # 創建對角度矩陣 D
        self.ones = torch.ones(input_dim, input_dim)
        self.D = torch.matmul(self.A.float(), self.ones.float())

        # 提取對角元素
        self.D = torch.diag(self.D)

        # 創建一個新張量,對角線上是元素,其他地方是零
        self.D = torch.diag_embed(self.D)
        
        # 創建 D^{-1/2}
        self.D_neg_sqrt = torch.diag_embed(torch.diag(torch.pow(self.D, -0.5)))
        
        # 初始化權重矩陣作為參數
        self.W = nn.Parameter(torch.rand(input_dim, output_dim))

    def forward(self, X: torch.Tensor):

        # D^-1/2 * (A_hat * D^-1/2)
        support_1 = torch.matmul(self.D_neg_sqrt, torch.matmul(self.A_hat, self.D_neg_sqrt))
        
        # (D^-1/2 * A_hat * D^-1/2) * (X * W)
        support_2 = torch.matmul(support_1, torch.matmul(X, self.W))
        
        # ReLU(D^-1/2 * A_hat * D^-1/2 * X * W)
        H = F.relu(support_2)

        return H

if __name__ == "__main__":

    # 示例用法
    input_dim = 3  # 假設輸入維度是 3
    output_dim = 2  # 假設輸出維度是 2

    # 示例鄰接矩陣
    A = torch.tensor([[1., 0., 0.],
                      [0., 1., 1.],
                      [0., 1., 1.]])  

    # 創建 GCN 層
    gcn_layer = GCNLayer(input_dim, output_dim, A)

    # 示例輸入特征矩陣
    X = torch.tensor([[1., 2., 3.],
                      [4., 5., 6.],
                      [7., 8., 9.]])

    # 前向傳遞
    output = gcn_layer(X)
    
    print(output)
    # tensor([[ 6.3438,  5.8004],
    #         [13.3558, 13.7459],
    #         [15.5052, 16.0948]], grad_fn=<ReluBackward0>)

本文轉載自 ??AI科技論談??,作者: AI科技論談

收藏
回復
舉報
回復
相關推薦
国产成人jvid在线播放| 国产在线观看免费网站| 国产精品乱码久久久久久| 97视频在线| 一本一本久久a久久精品综合麻豆| 超碰在线caoporen| 国产香蕉精品视频一区二区三区| 成人搞黄视频| 国产自产精品| 99久久99久久精品免费观看| 免费特级黄毛片| 3d动漫精品啪啪| 成人免费91| 51国偷自产一区二区三区| 国产一区二区三区不卡在线观看| www欧美激情| 777久久久精品| 最新国产一区二区| 美女被啪啪一区二区| 久久这里只有精品首页| 成人福利在线| 欧美精品第一页在线播放| 亚洲经典在线看| 另类小说第一页| 欧美xingq一区二区| 欧美日韩破处| 日韩 欧美 自拍| 婷婷成人综合网| 91国拍精品国产粉嫩亚洲一区| 国产精品香蕉国产| 粉嫩av一区二区三区在线播放| 中文字幕视频在线| 色噜噜亚洲精品中文字幕| 午夜日韩视频| 男人女人黄一级| 日韩三级视频在线看| 偷拍精品福利视频导航| 国产精品免费看久久久无码| 91福利在线免费观看| 国产精伦一区二区三区| 一区二区三区欧美在线| 一本大道久久a久久综合婷婷| 欧美影院精品| 伊人久久大香线蕉精品| 色偷偷一区二区三区| 精品深夜福利视频| www.一区二区.com| 日韩一区二区三区在线| 999精品一区| 亚洲欧美国产中文| 一个色综合导航| 亚洲一区区二区| 天堂网www中文在线| 97视频在线观看免费高清完整版在线观看 | 日韩精品亚洲一区二区三区免费| 女生裸体视频网站免费观看| 中文字幕日韩欧美| 免费观看久久久4p| 日本暖暖在线视频| 97人人做人人人难人人做| 亚洲天堂网中文字| 亚洲午夜免费| 欧美 丝袜 自拍 制服 另类| 欧美videossexotv100| 激情欧美日韩一区| 青青青草原在线| 91精品视频在线播放| 亚洲国产精品久久久男人的天堂 | 欧洲亚洲成人| 欧美,日韩,国产在线| 亚洲欧美日本精品| 青青草视频一区| 亚洲综合图区| 三区精品视频| 精品久久一二三区| 免费日韩av| 国产一二三区在线观看| 成人激情av| 欧美视频中文字幕| 亚洲美女91| 91黄色在线| 亚洲视频在线二区| 亚洲美腿欧美激情另类| 国产剧情在线观看一区二区 | 久久国产加勒比精品无码| 成人福利视频在线看| 日韩国产一二三区| 国产成人久久婷婷精品流白浆| 久久这里只有精品视频首页| jvid福利写真一区二区三区| 国产视频一区二| caoporn超碰97| 55夜色66夜色国产精品视频| 亚洲狼人国产精品| 大色综合视频网站在线播放| 一级片在线免费看| 国产精品污www一区二区三区| 欧美人与禽zozo性伦| 视频在线观看国产精品| 9i看片成人免费高清| 国产精品宾馆在线精品酒店| 2018日韩中文字幕| 欧美性生交大片免费| 久久国产一二区| 人人鲁人人莫人人爱精品| 久草青青在线观看| 2019中文在线观看| 欧美网站在线观看| 日韩福利视频网| 国语自产精品视频在线看抢先版结局| 亚洲精品乱码久久久久久自慰| 日韩av三级在线观看| 在线精品亚洲一区二区不卡| 久久中文在线| www.成人在线.com| 超碰影院在线| 日本高清一区| 久久国产一区二区三区| 国产精品伦一区二区三级视频| 91日韩视频| 黄色软件视频在线观看| 久草综合在线观看| 亚洲一区免费网站| 日韩精品免费在线视频| 国产精品乱人伦一区二区| 欧美人成在线| 少妇一区视频| 久草亚洲一区| 你懂的视频在线一区二区| www.日韩av.com| 欧美视频免费在线| 国产一区欧美二区| 你懂的一区二区三区| av毛片在线| 黄色免费网址大全| 国产区一区二区| 九九久久综合网站| 欧美日韩在线精品一区二区三区激情| 懂色av一区二区三区蜜臀| 俺要去色综合狠狠| 中文字幕不卡三区视频| 黄色av资源| 老司机av福利| 国产精品美女免费看| 日韩成人激情视频| 亚洲成人福利片| 国产麻豆成人传媒免费观看| 残酷重口调教一区二区| japanese23hdxxxx日韩| 天堂а在线中文在线无限看推荐| 日本五级黄色片| 成人自拍视频网站| 久久91超碰青草是什么| 51精品视频一区二区三区| 自拍偷拍国产精品| 精品一区二区三区免费播放| 日韩精品水蜜桃| 日韩成人综合网| 蜜桃视频网站在线| 人成在线视频| 99久久国产综合精品五月天喷水| 亚洲一区二区三区乱码aⅴ| 色偷偷综合社区| 欧美日本高清视频在线观看| 亚洲视频网在线直播| 国产精品一区二区三区乱码| 欧美午夜视频| 精品在线手机视频| 亚洲精品tv| av影院在线免费观看| 精品影院一区| 国产一级二级在线| 欧美一级片免费播放| 欧美日韩精品综合| 国产日韩欧美夫妻视频在线观看| 久久手机精品视频| 精品亚洲永久免费精品| 欧美久久久一区| 宅男午夜在线| 日韩欧美激情一区二区| 国产欧美日韩中文字幕在线| 欧美高清视频在线| 国产香蕉精品视频一区二区三区| 欧美老肥妇做.爰bbww| 午夜电影一区二区三区| 中文字幕不卡在线观看| 成人午夜av影视| 国产在线观看一区二区| 久久精品亚洲一区二区| 欧美视频一区| 香蕉久久网站| 欧美限制电影| 婷婷综合电影| 国产毛片精品| 亚洲国产中文在线| 2020国产精品小视频| 国产成人久久精品麻豆二区| 外国成人直播| 日韩高清中文字幕一区二区| 波多野结衣亚洲一二三|