圖卷積基本總結。


圖神經網絡

1、神經網絡基礎

1.1、圖數據的應用場景

重要的四個類別:同構圖、異構圖、屬性圖和非顯示圖

  • 同構圖:節點類型和關系類型只有一種。如超鏈接關系構成的萬維網;社交網絡
  • 異構圖:節點類型和關系類型不止一種。更貼近現實。
  • 屬性圖:節點和關系都有標簽和屬性,標簽指節點或者關系的類型,屬性是節點或關系的附加描述信息。
  • 非顯示圖:數據之間沒有顯示的定義出關系,需要依據某種規則或計算方式將數據的關系表達出來。如點雲數據。

1.2、圖神經網絡

是一套基於圖卷積操作並不斷衍生的神經網絡理論

在圖神經網絡出現之前。處理圖數據的方法是在數據的預處理階段將圖轉化為一組向量表示,問題是可能會丟失圖中的結構信息。

近幾年,更多的基於空域圖卷積的神經網絡模型的變體被開發出來,這類方法被統稱為GNN

1.3、幾個定義

  • 卷積濾波:卷積是一種運算方法, 濾波操作就是圖像對應像素與卷積濾波器的乘積之和。 卷積濾波器就是利用卷積運算的原理來構成濾波器,來提取特征。卷積運算決定了該濾波器的性能。
  • 空域:空域濾波是指圖像平面本身,這類方法直接對圖像的像素進行處理。

1.4、 圖數據相關任務的分類

  • 節點層面:主要包括分類任務和回歸任務,對節點層面的性質進行預測。
  • 邊層面任務:主要包括邊的分類和預測(兩節點是否構成邊)任務,集中應用在推薦業務中。
  • 圖層面任務:從圖的整體結構出發,實現分類、表示和生成等任務。主要應用在自然科學研究領域,如葯物分子的分類。

1.5、機器學習是什么?

機器學習理論主要是設計和分析一些讓計算機可以自動“學習”的算法。即是讓計算機從數據中挖掘有價值的信息。

1.6、機器學習的分類

1.6.1、根據訓練數據是否有標簽

  • 監督學習:訓練數據中每個樣本都有標簽,通過標簽可以指導模型進行學習,學到具有判別性的特征,從而對未知樣本進行預測。
  • 無監督學習:訓練數據完全沒有標簽,通過算法從數據中發現一些數據之間的約束關系,比如數據之間的關聯、距離關系等。如聚類算法。
  • 半監督學習:既有標簽數據也有無標簽數據,無標簽數據中含有一些數據分布相關的信息,可以作為標簽數據之外的補充。

1.6.2、根據算法輸出的形式(屬於監督學習的范疇)

  • 分類問題:模型的輸出值為離散值。例如風控的輸出為正常/異常兩類結果。
  • 回歸問題:模型的輸出值為連續值。例如用戶點擊商品的概率,概率越高表示模型認為用戶越傾向於點擊該商品。

1.7、機器學習流程

  • 提取圖片特征
  • 建立模型
  • 確定損失函數:用來衡量模型輸出值與真實值之間的差異程度。
  • 進行優化求解

1.7.1、重要組成部分

  • 損失函數:用來估量模型的預測值和真實值的差異程度,是一個非負實值函數,用L(y,f(x;θ))。機器學習中,通過在訓練集X上最小化損失函數來訓練模型,調整f的參數θ,使得損失函數值降低。

    • 平方損失函數
    • 交叉熵損失函數
  • 優化算法:

    • 批梯度下降算法:利用梯度信息,通過不斷迭代調整參數來尋找合適的解。

      1.通過隨機初始化為需要求解的參數賦初始值,作為優化的起點。

      2.使用模型對所有樣本進行預測,計算總體的損失值。

      3.利用損失值對模型參數求導,得到響應的梯度。

      4.基於梯度調整參數,得到迭代之后的參數。

      5.重復上述過程,直到停止條件。

    • 隨機梯度下降算法:每次從訓練集中隨機選擇一個樣本,計算其對應的損失和梯度,進行參數更新和反復迭代。

1.8、神經網絡

  • 神經元:是神經網絡進行信息處理的基本單元,其主要是模擬生物神經元的結構和特性,接收輸入信號並產出輸出。

  • 神經元基本組成:輸入信號、線性組合、非線性激活函數。

  • 多層感知器:又稱前饋神經網絡

    • 分為輸入層,隱藏層,輸出層。隱藏層可以包括一層或者多層;
    • 每一層都由若干神經元組成,每個神經元承擔的計算功能包括線性加權和非線性變換(激活函數);
    • 層與層之間通過權值建立聯系,后一層的每個神經元與前一層的每個神經元都產生連接;
    • 輸入和輸出層的神經元個數基本已知,隱藏層中每層的神經元個數以及使用的層數都是超參數。
  • 激活函數:它的非線性使得神經網絡幾乎可以任意逼近任何非線性函數。如果不使用激活函數,無論神經網絡有多少層,其每一層的輸出都是上一層輸入的線性組合,這樣構成的神經網絡仍是一個線性模型,表達能力有限。

    • 選擇:連續可導,可以允許在少數點不可導。
    • 常見函數:
      • S型激活函數:Sigmoid和Tanh,特點是有界,x趨於-∞/+∞有界
      • ReLU(Rectified Linear Unit)函數:線性整流函數,是目前深度學習模型中最常用的激活函數。定義為x>=0時,保持x不變進行輸出;x<0時,輸出為零,又稱單側抑制
  • 訓練神經網絡:使用反向傳播法來高效訓練

    • 神經網絡的運行過程
      • 前向傳播:給定輸入和參數,逐層向前進行計算,最后輸出預測結果。
      • 反向傳播:基於前向傳播得到的預測結果,使用損失函數得到損失值,然后計算相關參數的梯度。
      • 參數更新:使用梯度下降算法對參數進行更新,重復上述過程,逐步迭代,直到模型收斂。
    • 梯度消失:原因在於激活函數的飽和性,函數值在趨於上下邊界時,梯度通常比較小,在與誤差項的乘積更小,多次的反向傳播導致梯度值不斷下降,最終在靠近輸入層的梯度值很低,幾乎無法進行參數有效更新,在下一次前向傳播時,前面層參數無法提供有價值的信息供后面使用,模型也就難以進行有效更新。這就是梯度消失。
    • 局部最優:深度模型網絡通常存在非常多的局部最優解,往往這些局部最優解都能夠保證模型的效果。
    • 鞍點:指在該處梯度為0,但並不是最大或最小值。

2、卷積神經網絡

卷積神經網絡(Convolutional Neural Network)是一種具有局部連接、權值共享等特點的深層前饋神經網絡,在圖像和視頻分析領域、比如圖像分類、目標檢測、圖像分割等各種視覺任務上取得了顯著的效果

2.1、卷積與池化

2.1.1、 信號處理中的卷積

  • 卷積定理:(f * g)(t) 等價於 F(w)G(w),可以將時域中的數據轉換到頻域中的一種方式。

  • 時域:信號的基本性質,描述數學函數或物理信號對時間的關系。

  • 頻域:信號的基本性質,描述信號在頻率方面特性時用到的一種坐標系。

  • 傅里葉變換:能將滿足一定條件的某個函數表示成三角函數(正弦/余弦)或者他們的積分的線性組合。

    在圖卷積的應用1593852755580

  • 卷積的典型應用:針對某個線性時不變的系統,給定輸入信號f(t)和系統響應g(t),求系統的輸出。

2.1.2、深度學習中的卷積操作

  • 單通道卷積:卷積核不需要進行顯示翻轉,卷積網絡中的卷積核是通過自動學習得到的。

    導致的問題:

    • 進行多次卷積運算后,輸出的尺寸會越來越小
    • 越是邊緣的像素點,對於輸出的影響越小,因為卷積運算在移動到邊緣的時候就結束了。中間的像素點會參與多次計算,但是邊緣的像素點可能只會參與一次運算,這就導致邊緣信息的丟失。

    解決的辦法:

    • 在輸入矩陣的邊緣使用0進行填充,使得邊緣處的像素值也能進行計算。輸入維度由M*N變成M+2*N+2
  • 多通道卷積:在單通道卷積的基礎上添加了通道數C,多通道卷積使用多個卷積核來提取更豐富的特征。

    計算過程:

    • 輸入向量X,H*W維,C個通道;與卷積核R,K*k維,C個通道,C‘個卷積核個數進行卷積運算
    • 卷積完成后,為每個特征圖加一個偏置
    • 得到輸出向量Y,H’*W‘維,C’個通道
    • 過程中的參數為卷積核與偏置,參數總量為K²*C*C'+C'
  • 池化

    • 目的:降維,降低計算量,並在訓練初期提供一些平移不變性。
    • 具體:使用一個固定大小的滑窗在輸入上滑動,每次將滑窗內的元素聚合為一個值作為輸出。
    • 分類:平均池化,最大支持化。

2.2、卷積神經網絡

通過將卷積層與池化層進行堆疊得到的

2.2.1、卷積神經網絡的結構

  • 一部分由卷積層和池化層交替堆疊構成的骨干網絡,主要用於從輸入中提取豐富的特征。
  • 一部分是全連接層,將卷積得到特征圖展平,主要作用是聚合全局信息並將其映射到輸出空間。

2.2.2、卷積神經網絡的特點

  • 局部連接:圖像通常具有局部連接性,卷積計算每次只在與卷積核大小對應的區域進行。輸入和輸出是局部連接的。

  • 權值共享:不同的區域使用相同的卷積核參數,減少了參數量,帶來了平移不變性。

  • 層次化表達:低層次的卷積一般是提取一些簡單的特征,如顏色、邊緣、角,對應局部性特征。

    中間層次的卷積得到的特征開始變得抽象,比如紋理結構。

    高層次的卷積得到的特征更加抽象,與圖像的語義、具體包含的目標。

2.2.3、特殊的卷積形式

  • 1*1 卷積:用於信息聚合,增加非線性和通道數的變化。
  • 轉置卷積:語義分割任務中不可分割的模塊,對對象在像素級別上進行分類。
  • 空洞矩陣:超參數空洞率r控制卷積核(K*K)的擴張程度,使用0填充,擴張后的卷積核大小變為k+(k-1)(r-1)。
  • 分組卷積:把特征圖分給了多個GPU來處理,最后再把多個GPU的處理結果融合。
  • 深度可分離卷積:一部分沿着深度的逐層卷積,另一部分是1*1卷積。

3、表示學習

表示學習是一類可以自動地從數據中去學習有用的特征,並可以直接用於后續的具體任務的方法的統稱。

3.1.1、表示學習的意義

  • 從數據中得到具有判別性特征的方法,減少機器學習對特征工程(人工標注的特征)的依賴。

3.1.2、端到端的學習

端到端的學習是一種強大的表示學習方法

  • 是什么:以原始圖像作為輸入,而不是特征工程得到的特征,輸出直接是預測的類別,這中學習方式就是端到端學習。去掉懷疑
  • 深度學習模型的優勢:
    • 反向傳播算法將誤差從輸出層向前傳遞直到輸入層,優化算法動態的調節模型參數,使得模型可以自動提取到與任務相關的判別性特征。
    • 能夠學習到數據的層次化表達,位於低層的變換得到基礎的特征,是構成高層抽象特征的基礎。
  • 表示學習的任務:通常是學習這樣一個映射:f:X->R,即將輸入映射到一個稠密的低維向量空間中。

3.1.3、典型表示學習的方法:

  • 基於重構損失的方法------自編碼器:
  • 基於對比損失的方法------Word2vec:

4、圖信號處理與圖卷積神經網絡

圖信號處理是離散信號處理理論在圖信號領域的應用

4.1、圖信號與圖的拉普拉斯矩陣

  • 圖信號:圖信號是定義在圖節點上的信號,性質包括圖信號的強度和圖的拓撲結構。
  • 拉普拉斯矩陣:用來研究圖的結構性質的核心對象,定義為L = D - A ,D是圖的度矩陣,A是圖的鄰接矩陣。拉普拉斯矩陣是一個反映圖信號局部平滑度的算子。

4.2、圖傅里葉變換

  • 是什么:傅里葉變換是數字信號處理的基石,傅里葉變換將信號從時域空間轉換到頻域空間,頻域視角給信號的處理帶來了極大的便利。

  • 圖位移算子: 算子就是把一個R^2 上的函數變化到另一個 R^2上的函數的一個變換。 原圖每個點到另一幅圖的的映射,是通過矩陣(圖像處理時也稱為掩膜)用來與原圖像做運算而實現的 。

  • 定義:對於任意一個在圖G上的信號,其圖傅里葉變換為:Xk=<Vk,x>矩陣點積的和,特征向量稱為傅里葉基,Xk是X在第k個傅里葉基上的傅里葉系數,傅里葉系數的本質上是圖信號在傅里葉基上的投影。

  • 總變差:總變差是圖的所有特征值的一個線性組合,權重是圖信號相對應的傅里葉系數的平方。代表着圖信號整體平滑度的實際意義。

  • 圖信號的能量:E(x) = ||x||² = x轉置·x (Xk=<Vk,x>)圖信號的能量可以同時從空域和時域進行等價定義。單位向量的圖信號能量為1。有了頻率的定義,傅里葉系數就可以等價為成圖信號在對應頻率分量上的幅值,反映了圖信號在該頻率分量上的強度。

  • 圖濾波器:對給定信號的頻譜中各個頻率分量的強度進行增強或衰減的操作。

    性質:

    • 線性:H(x+y) = Hx + Hy
    • 濾波操作是順序無關的:H1(H2x) = H2(H1x)
    • 如果H(λ) ≠ 0 ,則該濾波操作是可逆的

    空域角度:

    • 具有局部性,每個節點的輸出信號值只需要考慮其K階子圖
    • 可通過K步迭代式的矩陣向量乘法來完成濾波操作

    頻域角度:

    • 從頻域視角能夠更加清晰的完成對圖信號的特定濾波操作。
    • 圖濾波器如何設計具有顯式的公式指導
    • 對矩陣進行特征分解是一個非常耗時的操作,具有O(n三次方)的時間復雜度,相比空域視角中的矩陣向量乘法而言,有工程上的局限性。
  • 濾波器種類:

    • 低通濾波器:只保留信號中的低頻部分,更加關注信號中平滑的部分。
    • 高通濾波器:只保留信號中的高頻部分,更加關注信號中快速變化的部分。
    • 帶通濾波器:只保留信號特定頻段的成分。

5、GCN圖神經網絡的性質

5.1、 GCN與CNN的關系

  • 圖象是一種特殊的圖數據,CNN中的卷積運算相較於GCN中的卷積運算,最大的區別是沒有顯式的表達出鄰接矩陣。GCN中的卷積計算是用來處理更普遍的非結構化的圖數據的。
  • 從網絡連接方式來看,二者都是局部連接。GCN的計算作用在其一階子圖上;CNN的計算作用在中心像素的N*N像素柵格內;節點下一層的特征計算只依賴於自身鄰域的方式,在網絡連接上表現為局部連接的結構。
  • 二者卷積核的權重式處處共享的。都作用於全圖的所有節點。參數共享會大大減少每一層網絡的參數量,可以有效地避免過擬合現象的出現。
  • 從模型的層面看,感受域隨着卷積層的增大而變大。每多一層卷積運算,中心節點就能多融合進更外一圈的信息。

5.2、 GCN能夠對圖數據進行端到端的學習(一端是數據,一端是任務)

端到端的學習實現了一種自動化地從數據種進行高效學習的機制,但是離不開背后大量的針對特定類型數據的學習任務的適配工作

5.2.1、 圖數據包含的信息

  • 屬性信息:描述了圖中對象的固有屬性。
  • 結構信息:描述了對象之間的關聯性質。

5.2.2、 GCN計算過程

首先對屬性信息進行仿射變換,學習了屬性特征之間的交互模式,然后迭代式的聚合鄰居節點的特征,從而更新當前節點的特征。

5.2.3、 GCN的優勢

  • GCN對表示學習和任務學習一起進行端到端的優化。
  • GCN對結構信息和屬性信息的學習是同步進行的(在同一個網絡層里同時學習)。

5.3、 GCN是一個低通濾波器

5.4、 GCN的問題-過於平滑

在使用多層GCN之后,節點的區分性變得越來越差,節點的表示向量趨於一致,這使得相應的學習任務變得更加困難,我們將這個問題稱為多層GCN的過平滑問題


6、GNN的通用框架

6.1、 MPNN(Message Passing Neural Network) 消息傳播神經網絡

基本思路:節點的表示向量通過消息函數M(Message)和更新函數U(Update)進行K輪消息傳播機制的迭代后得到的。

6.2、 NLNN(Non-Local Neural Network)非局部神經網絡

非局部神經網絡是對注意力機制的一般化總結。

基本思路:NLNN是通過non-local操作將任意位置的輸出響應計算為所有位置特征的加權和。

6.3、 GN(Graph Network)圖網絡

基本計算單元包含三個要素:節點的狀態、邊的狀態、圖的狀態

基本思路:由點更新邊,邊聚合更新點,點聚合與邊聚合更新圖。每個元素在更新的時候都需要考慮自身上一輪的狀態。


7、 圖分類

圖分類任務中實現層次化池化的機制,是GNN需要解決的基礎問題

7.1、 基於全局池化的圖分類

讀出機制:對經過K輪迭代的所有節點進行一次性聚合操作,從而輸出圖的全局性表示。

7.2、 基於層次化池化的圖分類

  • 基於圖坍縮(Graph Coarsening)的池化機制:將圖划分成不同的子圖,然后將子圖視為超級節點,從而形成一個坍縮的圖。實現對圖的全局信息的層次化學習。實質是節點不斷聚合成簇的過程。
    • DIFFPOOL算法:通過學習出一個簇分配矩陣進行子圖的划分,得到簇連接強度,確定鄰接矩陣,對節點特征進行加和(這樣加和損失了子圖本身的結構信息)。
    • EigenPooling算法:通過圖分區的算法(如譜聚類算法)實現對圖的划分,得到簇連接強度,之后用子圖上的信號在該子圖上的圖傅里葉變換來代表結構信息於屬性信息的整合輸出。
  • 基於TopK的池化機制:對圖中每個節點學習出一個分數(重要度),基於這個分數的排序丟掉一些底分數的節點,借鑒最大池化,將更重要的信息篩選出來。實質是一個不斷丟棄節點的過程。
  • 基於邊收縮(Edge Contraction)的池化機制(Edge Pool):邊收縮是指並行的將圖中的邊移除,並將被移除邊的兩個節點合並,同時保持被移除節點的連接關系。通過歸並操作實現圖信息的層次化學習。融合邊收縮變換操作和端到端的學習機制。

8、 基於GNN的圖表示學習

基於GNN圖表示學習的優勢:

  • 非常自然的融合了圖的屬性信息進行學習,而之前的方法大多把圖里面的結構信息與屬性信息單獨進行處理。
  • GNN本身作為一個可導的模塊,可以任意嵌入到一個支持端到端學習的系統中去,這種特性使得能夠與各個層面的有監督學習任務進行有機結合,學習出更加適應該任務的數據表示。
  • GNN的很多模型支持歸納學習,多數情況下對新數據的表示學習可以進行直接預測,而不必重新訓練。
  • 相較於分解類(轉換到低維矩陣向量)的方法只能適應小圖的學習,GNN保證了算法在工程上的可行性,也能適應大規模的學習任務。

8.1、 圖表示學習

  • 主要目標:將圖數據轉化成低維稠密的向量化表示。
  • 學習對象:節點的表示學習一直是圖表示學習的主要對象。
  • 核心:圖表示學習的核心也是研究數據的表示。
  • 非線性結構作用下,圖表示學習的作用:
    • 將圖數據表示成線性空間中的向量。向量化的表示為擅長處理線性結構數據的計算機提供了便利。
    • 為之后的學習任務奠定基礎。圖數據的學習任務種類繁多,有節點層面的,有邊層面的,還有全圖層面的,一個好的表示學習方法可以統一高效地輔助完成這些工作。

8.2、 基於GNN的圖表示學習(無監督的學習方式)

無監督學習的主體在於損失函數的設計,以下是兩類損失函數

  • 基於重構損失的GNN:核心在於將節點之間的鄰接關系進行重構學習,以及加噪降低GNN學習過平滑的問題。

    加噪的常見做法:

    • 對原圖數據的特征矩陣X適當增加隨機噪聲或進行置零處理;
    • 對原圖數據的鄰接矩陣A刪除適當比例的邊,或者修改邊上的權重值。
  • 基於對比損失的GNN:通常對比損失會設置一個評分函數D,該得分函數會提高“真實/正”樣本的,降低“假/負”樣本的得分。

    類比詞向量,將對比損失的落腳點放在詞與上下文中。詞就是節點,上下文可以是鄰居節點,節點所在的子圖、全圖。

    • 鄰居作為上下文:對比損失就在建模節點與鄰居節點的共現關系。
    • 子圖作為上下文:強調節點之間的共現關系,更多反映圖中節點間的距離關系,缺乏對節點結構相似性的捕捉。
    • 全圖作為上下文:對圖數據進行加噪,得到負樣本數據,將這兩組圖數據送到同一個GNN中進行學習。為了得到圖的全局表示,我們使用讀出機制對局部節點的信息進行聚合。在最后的損失函數中,固定全圖表示。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM