SlideShare a Scribd company logo
Graph Convolution
スペクトルアプローチ
• 𝑨:隣接行列
• ノードの接続を表す行列
• 隣接リスト
• ノードの接続を表すリスト
• 𝑫:次数行列
• 各節点の次数を対角上に並べた対角行列
Graphを表現するための行列
2
4 0 0 0 0
0 2 0 0 0
0 0 2 0 0
0 0 0 1 0
0 0 0 0 3
 
 
 
 
 
 
  
D
 
 
 
 
 
 
1,2,3,4
0,4
0,4
0,4
0
0,1,2
隣接行列 隣接リスト 次数行列
グラフフーリエ変換
• グラフラプラシアンの固有ベクトルによるグラフ信号の展開
• 固有値 λ𝒊 :グラフ周波数
• 固有ベクトル 𝒖λ 𝒊
:フーリエ基底
• 基底ベクトルと内積をとるとその方向の成分を取り出せる
➡ その周波数成分が取り出せる
グラフフーリエ変換
4
ノード情報 𝒇
フーリエ基底𝒖λ 𝒊
周波数λ𝒊の成分
• 𝑳 :非正規化ラプラシアン
𝑳 = 𝑫 − 𝑨
• 𝓛 :正規化グラフラプラシアン
𝓛 = 𝑫−
𝟏
𝟐 𝑳𝑫−
𝟏
𝟐 = 𝑰 − 𝑫−
𝟏
𝟐 𝑨𝑫−
𝟏
𝟐
• 正規・非正規化ラプラシアンの違い
• 非正規化ラプラシアン : 固有値の最大値が変化
• 正規化ラプラシアン : 固有値の最大値が2以下(正規化)
(正規・非正規化ラプラシアンの固有値はどちらも0以上)
グラフラプラシアン
5
• 𝒇 :入力(ノード情報)
• 𝑨 :隣接行列
• 𝑫 :次数行列
• 𝑳 :グラフラプラシアン
• λ𝒊 :𝑳の固有値
• 𝒖λ 𝒊
:𝑳の固有ベクトル
• 𝑼 :𝑳の固有ベクトルを並べた行列
• 𝑵 :グラフのノード数
グラフフーリエ変換
𝑭 = 𝑼 𝑻 𝒇
上式の関数(固有値 i に対する信号)
𝐹(𝜆𝑖) =
𝒋=𝟎
𝑵−𝟏
𝑓(𝑗)𝑢 𝜆 𝑖
∗
(𝑗)
逆グラフフーリエ変換
𝒇 = 𝑼𝑭
上式の関数(ノード jk の情報)
𝑓(𝑗) =
𝒊=𝟎
𝑵−𝟏
𝐹(𝜆𝑖)𝑢 𝜆 𝑖
(𝑗)
グラフフーリエ変換
6
ノード情報 𝒇 は各ノード1次元
グラフフーリエ変換
𝑭 = 𝑼 𝑻 𝒇
上式の関数(固有値iに対する信号)
𝐹(𝜆𝑖) =
𝒋=𝟎
𝑵−𝟏
𝑓(𝑗)𝑢 𝜆 𝑖
∗
(𝑗)
逆グラフフーリエ変換
𝒇 = 𝑼𝑭
上式の関数(ノードkの情報)
𝑓(𝑗) =
𝒊=𝟎
𝑵−𝟏
𝐹(𝜆𝑖)𝑢 𝜆 𝑖
(𝑗)
グラフフーリエ変換
7
𝒇 =
𝑓(0)
𝑓(1)
𝑓(2)
固有ベクトル
ノード情報
𝑼 =
𝑢 𝜆0
(0) 𝑢 𝜆1
(0) 𝑢 𝜆2
(0)
𝑢 𝜆0
(1) 𝑢 𝜆1
(1) 𝑢 𝜆2
(1)
𝑢 𝜆0
(2) 𝑢 𝜆1
(2) 𝑢 𝜆2
(2)
𝑼 𝑻 =
𝑢 𝜆0
(0) 𝑢 𝜆0
(1) 𝑢 𝜆0
(2)
𝑢 𝜆1
(0) 𝑢 𝜆1
(1) 𝑢 𝜆1
(2)
𝑢 𝜆2
(0) 𝑢 𝜆2
(1) 𝑢 𝜆2
(2)
𝑼 𝑻 𝒇 =
𝑢 𝜆0
(0) 𝑢 𝜆0
(1) 𝑢 𝜆0
(2)
𝑢 𝜆1
(0) 𝑢 𝜆1
(1) 𝑢 𝜆1
(2)
𝑢 𝜆2
(0) 𝑢 𝜆2
(1) 𝑢 𝜆2
(2)
𝑓(0)
𝑓(1)
𝑓(2)
=
𝒖0 𝒇
𝒖1 𝒇
𝒖2 𝒇
=
𝐹 𝜆0
𝐹 𝜆1
𝐹 𝜆2
グラフ周波数λ 𝟎に対する信号
𝒖0 𝒇
グラフフーリエ変換
𝑭 = 𝑼 𝑻 𝒇
上式の関数(固有値iに対する信号)
𝐹(𝜆𝑖) =
𝒋=𝟎
𝑵−𝟏
𝑓(𝑗)𝑢 𝜆 𝑖
∗
(𝑗)
逆グラフフーリエ変換
𝒇 = 𝑼𝑭
上式の関数(ノードkの情報)
𝑓(𝑗) =
𝒊=𝟎
𝑵−𝟏
𝐹(𝜆𝑖)𝑢 𝜆 𝑖
(𝑗)
グラフフーリエ変換
8
𝒇 =
𝑓(0)
𝑓(1)
𝑓(2)
固有ベクトル
ノード情報
𝑼 =
𝑢 𝜆0
(0) 𝑢 𝜆1
(0) 𝑢 𝜆2
(0)
𝑢 𝜆0
(1) 𝑢 𝜆1
(1) 𝑢 𝜆2
(1)
𝑢 𝜆0
(2) 𝑢 𝜆1
(2) 𝑢 𝜆2
(2)
𝑼 𝑻 =
𝑢 𝜆0
(0) 𝑢 𝜆0
(1) 𝑢 𝜆0
(2)
𝑢 𝜆1
(0) 𝑢 𝜆1
(1) 𝑢 𝜆1
(2)
𝑢 𝜆2
(0) 𝑢 𝜆2
(1) 𝑢 𝜆2
(2)
𝑼𝑭 =
𝑢 𝜆0
(0) 𝑢 𝜆1
(0) 𝑢 𝜆2
(0)
𝑢 𝜆0
(1) 𝑢 𝜆1
(1) 𝑢 𝜆2
(1)
𝑢 𝜆0
(2) 𝑢 𝜆1
(2) 𝑢 𝜆2
(2)
𝐹 𝜆0
𝐹 𝜆1
𝐹 𝜆2
=
𝑓(0)
𝑓(1)
𝑓(2)
スペクトル上でのフィルタリング
• それぞれの周波数別の信号にフィルタをかける
(周波数 𝜆0 上の信号 𝒖0 𝒇に対してフィルタ 𝐻(𝜆0) をかける)
• 𝐻(𝜆𝑖) は固有値𝜆𝑖(グラフ周波数)に対する関数
9
0
1
1
( )
( )
( )
T
N
H
H
H


 
 
 
 
 
 
 
     U U f
フィルタ
スペクトル上でのフィルタリング
𝐻(𝜆0) 0 0
0 𝐻(𝜆1) 0
0 0 𝐻(𝜆2)
𝒖0 𝒇
𝒖1 𝒇
𝒖2 𝒇
=
𝐻(𝜆0)𝒖0 𝒇
𝐻(𝜆1)𝒖1 𝒇
𝐻(𝜆2)𝒖2 𝒇
10
空間上でのフィルタリング
𝑓(𝑘) = 𝑎 𝑘𝑘 𝑓 𝑘 +
𝑗𝜖 𝑵 𝑘
𝑎 𝑘𝑗 𝑓(𝑗)
𝑵 𝑘 : ノード 𝑘 の周辺ノードの集合
𝑎 𝑘𝑘, 𝑎 𝑘𝑗 : フィルタ係数
𝑓(𝑘) : フィルタリング後のノード 𝑘 のノード情報
• 上式と同じことをスペクトル上でも行えることを式で示す
注目ノード 隣接ノード
グラフの空間上でのフィルタリング
11
注目ノード隣接ノードをまとめる
𝑓(𝑘) = 𝑎 𝑘𝑘 𝑓 𝑘 +
𝑗𝜖 𝑵 𝑘
𝑎 𝑘𝑗 𝑓(𝑗) =
𝑗𝜖 𝑵 𝑘
𝑎 𝑘𝑗 𝑓(𝑗)
𝑵 𝑘 : ノード 𝑘 の周辺ノードの集合(注目ノードも含む)
𝑎 𝑘𝑗 : フィルタ係数
𝑓(𝑘) : フィルタリング後のノード 𝑘 のノード情報
• 上式と同じことをスペクトル上でも行えることを式で示す
グラフの空間上でのフィルタリング
注目ノード 隣接ノード
12
スペクトル上でのフィルタリング
スペクトル上でのフィルタリング
上の式を書き換え
𝑓(𝑗) =
𝑖=0
𝑁−1
𝐹(𝜆𝑖) 𝐻(𝜆𝑖)𝑢 𝜆 𝑖
(𝑗)
𝐹(𝜆𝑖) =
𝒋=𝟎
𝑵−𝟏
𝑓(𝑗) 𝑢 𝜆 𝑖
∗
(𝑗)
0
1
1
( )
( )
( )
T
N
H
H
H


 
 
 
 
 
 
 
     U U f
フィルタ
グラフ上のフーリエ変換
𝑢 𝜆0
(0) 𝑢 𝜆1
(0) 𝑢 𝜆2
(0)
𝑢 𝜆0
(1) 𝑢 𝜆1
(1) 𝑢 𝜆2
(1)
𝑢 𝜆0
(2) 𝑢 𝜆1
(2) 𝑢 𝜆2
(2)
𝐻(𝜆0) 0 0
0 𝐻(𝜆1) 0
0 0 𝐻(𝜆2)
𝐹 𝜆0
𝐹 𝜆1
𝐹 𝜆2
=
𝑢 𝜆0
(0) 𝑢 𝜆1
(0) 𝑢 𝜆2
(0)
𝑢 𝜆0
(1) 𝑢 𝜆1
(1) 𝑢 𝜆2
(1)
𝑢 𝜆0
(2) 𝑢 𝜆1
(2) 𝑢 𝜆2
(2)
𝐻(𝜆0)𝐹 𝜆0
𝐻(𝜆1)𝐹 𝜆1
𝐻(𝜆2)𝐹 𝜆2
=
𝑓 0
𝑓 1
𝑓 2
𝐹 𝝀 =
𝑢 𝜆0
(0) 𝑢 𝜆0
(1) 𝑢 𝜆0
(2)
𝑢 𝜆1
(0) 𝑢 𝜆1
(1) 𝑢 𝜆1
(2)
𝑢 𝜆2
(0) 𝑢 𝜆2
(1) 𝑢 𝜆2
(2)
𝑓(0)
𝑓(1)
𝑓(2)
=
𝐹 𝜆0
𝐹 𝜆1
𝐹 𝜆2
スペクトル上のフィルタがλのk次多項式と仮定
𝐻 𝜆𝑖 =
𝑝=0
𝐾
𝛼 𝑝 𝜆𝑖
𝑝
13
スペクトル上でのフィルタリング
スペクトル上でのフィルタリング
上の式を書き換え
𝑓(𝑗) =
𝑖=0
𝑁−1
𝐹(𝜆𝑖) 𝐻(𝜆𝑖)𝑢 𝜆 𝑖
(𝑗)
𝐹(𝜆𝑖) =
𝒋=𝟎
𝑵−𝟏
𝑓(𝑗) 𝑢 𝜆 𝑖
∗
(𝑗)
0
1
1
( )
( )
( )
T
N
H
H
H


 
 
 
 
 
 
 
     U U f
フィルタ
グラフ上のフーリエ変換
14
スペクトル上でのフィルタリング
𝑓(𝑘) =
𝑖=0
𝑁−1
𝐹(𝜆𝑖) 𝐻(𝜆𝑖)𝑢 𝜆 𝑖
(𝑘)
λのk次多項式フィルタ
𝐻 𝜆𝑖 =
𝑝=0
𝐾
𝛼 𝑝 𝜆 𝑝
グラフ上のフーリエ変換
𝐹(𝜆𝑖) =
𝑗=0
𝑁−1
𝑓(𝑗) 𝑢 𝜆 𝑖
∗
(𝑗)
空間上でのフィルタリング
𝑓(𝑘) = 𝑎 𝑘𝑘 𝑓 𝑘 +
𝑗𝜖 𝑵 𝑘
𝑎 𝑘𝑗 𝑓(𝑗)
1
0
( ) ( ) ( ) ( )i
N
i ii
f k F H u k


   λλ λ
1 1 *
0 0 0
( ) ( ) ( )i i
N K N p
ij p i
f j u j u k
 
  
   p λ λα λ
スペクトル上でのフィルタリング
• 橙枠はグラフラプラシアン L の p 乗
𝑳 𝑝
= 𝑼𝜦 𝑝
𝑼 𝑻
1 1 *
0 0 0
1
0 0
( ) ( ) ( )
( ) ( )
i i
N K N p
ij p i
N K p
kjj p
f j u j u k
f j L
 
  

 


  
 
p λ λ
p
α λ
α
1
0
( ) ( ) ( ) ( )i
N
i ii
f k F H u k


   λλ λ
15
スペクトル上でのフィルタリング
スペクトル上でのフィルタリング
𝑓(𝑘) =
𝑖=0
𝑁−1
𝐹(𝜆𝑖) 𝐻(𝜆𝑖)𝑢 𝜆 𝑖
(𝑘)
λのk次多項式フィルタ
𝐻 𝜆𝑖 =
𝑝=0
𝐾
𝛼 𝑝 𝜆 𝑝
グラフ上のフーリエ変換
𝐹(𝜆𝑖) =
𝑗=0
𝑁−1
𝑓(𝑗) 𝑢 𝜆 𝑖
∗
(𝑗)
空間上でのフィルタリング
𝑓(𝑘) = 𝑎 𝑘𝑘 𝑓 𝑘 +
𝑗𝜖 𝑵 𝑘
𝑎 𝑘𝑗 𝑓(𝑗)
• 橙枠はグラフラプラシアン L の p 乗
𝑳 𝑝
= 𝑼𝜦 𝑝
𝑼 𝑻
1 1 *
0 0 0
1 1 *
0 0 0
1
0 0
( ) ( ) ( )
( ) ( ) ( )
( ) ( )
i i
i i
N N K p
ii j p
N K N p
ij p i
N K p
kjj p
f j u j u k
f j u j u k
f j L
 
  
 
  

 



  
  
 
λ p λ
p λ λ
p
α λ
α λ
α
1
0
( ) ( ) ( ) ( )i
N
i ii
f k F H u k


   λλ λ
16
スペクトル上でのフィルタリング
𝐿 𝑝
=
𝑢 𝜆0
(0) 𝑢 𝜆0
(1) 𝑢 𝜆0
(2)
𝑢 𝜆1
(0) 𝑢 𝜆1
(1) 𝑢 𝜆1
(2)
𝑢 𝜆2
(0) 𝑢 𝜆2
(1) 𝑢 𝜆2
(2)
𝜆0
𝑝
0 0
0 𝜆1
𝑝
0
0 0 𝜆2
𝑝
𝑢 𝜆0
∗
(0) 𝑢 𝜆1
∗
(0) 𝑢 𝜆2
∗
(0)
𝑢 𝜆0
∗
(1) 𝑢 𝜆1
∗
(1) 𝑢 𝜆2
∗
(1)
𝑢 𝜆0
∗
(2) 𝑢 𝜆1
∗
(2) 𝑢 𝜆2
∗
(2)
=
𝑢 𝜆0
(0) 𝑢 𝜆0
(1) 𝑢 𝜆0
(2)
𝑢 𝜆1
(0) 𝑢 𝜆1
(1) 𝑢 𝜆1
(2)
𝑢 𝜆2
(0) 𝑢 𝜆2
(1) 𝑢 𝜆2
(2)
𝑢 𝜆0
∗
(0)𝜆0
𝑝
𝑢 𝜆1
∗
(0)𝜆0
𝑝
𝑢 𝜆2
∗
(0)𝜆0
𝑝
𝑢 𝜆0
∗
(1)𝜆1
𝑝
𝑢 𝜆1
∗
(1)𝜆1
𝑝
𝑢 𝜆2
∗
(1)𝜆1
𝑝
𝑢 𝜆0
∗
(2)𝜆2
𝑝
𝑢 𝜆1
∗
(2)𝜆2
𝑝
𝑢 𝜆2
∗
(2)𝜆2
𝑝
スペクトル上でのフィルタリング
𝑳 𝑝
= 𝑼𝜦 𝑝
𝑼 𝑻
𝑎 𝑘𝑗 =
𝑝=0
𝐾
𝛼 𝑝(𝐿 𝑝) 𝑘𝑗
空間上でのフィルタリング
𝑓(𝑘) =
𝑗𝜖 𝑵 𝑘
𝑎 𝑘𝑗 𝑓(𝑗)
• スペクトル上でも空間上でのフィルタリングと
同じことを行うことが可能であると示された
空間上でのフィルタリング
• 注目ノードとその隣接ノードにフィルタ係数を
かけて和を求めること
17
スペクトル上でのフィルタリング
1 1 *
0 0 0
1
0 0
( ) ( ) ( )
( ) ( )
i i
N K N p
ij p i
N K p
kjj p
f j u j u k
f j L
 
  

 


  
 
p λ λ
p
α λ
α
1
0
( ) ( ) ( ) ( )i
N
i ii
f k F H u k


   λλ λ
(1)
(2)
𝑎 𝑘𝑗
スペクトル領域上でフィルタ
(式1)
𝑎 𝑘𝑗
空間上でのフィルタ
(式2)
=
スペクトル領域上での畳み込み
𝒚 = 𝑼𝑔 𝜃 𝜦 𝑼 𝑻 𝒙 = 𝑔 𝜃 𝑼𝜦𝑼 𝑻 𝒙 = 𝑔 𝜃 𝑳 𝒙
• フィルタ𝑔 𝜃(𝑳)
𝑔 𝜃(𝑳)=
𝑘=0
𝐾−1
𝜃 𝑘 𝑳 𝑘
• 𝑎 𝑘𝑗 を学習することで,
注目ノードからKステップ離れたノードまで
を畳み込む
グラフ上でのフィルタリングからグラフ上の畳み込みへの導出
18
スペクトル領域上でのフィルタリング
• フィルタ 𝑎 𝑘𝑗
𝑎 𝑘𝑗 =
𝑝=0
𝐾
𝛼 𝑝(𝐿 𝑝) 𝑘𝑗
• ノードkに対してpステップで行ける
ノードに対してフィルタリングできる
1 1 *
0 0 0
1
0 0
( ) ( ) ( )
( ) ( )
i i
N K N p
ij p i
N K p
kjj p
f j u j u k
f j L
 
  

 


  
 
p λ λ
p
α λ
α
1
0
( ) ( ) ( ) ( )i
N
i ii
f k F H u k


   λλ λ
Chevnetについて
スペクトルアプローチ
19
𝒚 = 𝑼𝑔 𝜃 𝜦 𝑼 𝑻 𝒙 = 𝑔 𝜃 𝑳 𝒙
• フィルタ𝑔 𝜃(𝑳)
𝑔 𝜃(𝑳)=
𝑘=0
𝐾−1
𝜃 𝑘 𝑳 𝑘
• 𝜃 𝑘(k = 0 ~ K-1)を学習される重み
• 注目ノードからkステップ離れたノードまでを畳み込む
• 1回畳み込みこむために𝑳 𝑘
の計算を行う必要がある
(𝑳 𝑘
はノード数の 2 乗の k 乗の計算量)
➡ 層を重ねると計算量が増大
スペクトル領域上での畳み込み
20
フーリエ変換
フーリエ逆変換
スペクトル領域上での畳み込み
𝒚 = 𝑼𝑔 𝜃 𝜦 𝑼 𝑻 𝒙 = 𝑔 𝜃 𝑳 𝒙
• フィルタ𝑔 𝜃(𝑳)
𝑔 𝜃(𝑳)=
𝑘=0
𝐾−1
𝜃 𝑘 𝑳 𝑘
• 𝜃 𝑘(k = 0 ~ K-1)を学習することで,
注目ノードからkステップ離れたノードまで
を畳み込む
Chevnetについて
21
Chevnetの畳み込みは
𝑔 𝜃(𝑳) をチェビシェフ多項式T𝑘 ( 𝐿)に置換
𝑔 𝜃(𝑳) 𝒙 =
𝑘=0
𝐾−1
𝜃 𝑘T𝑘 ( 𝑳)
• T𝑘 𝑳 = 2 𝑳T𝑘−1( 𝑳) - T𝑘−2( 𝑳)
• T0 𝑳 = 1, T1 𝑳 = 𝑳
• グラフラプラシアンをリスケーリング
• 𝑳 =
2
𝜆 𝑚𝑎𝑥
𝑳 − 𝑰 𝑁
• 正規化ラプラシアン
• 固有値 𝛬 が 0 ~ 2 までの範囲になる
𝑫−
𝟏
𝟐 𝑨𝑫−
𝟏
𝟐
• 𝐿 について
• 固有値 𝛬 が -1 ~ 1 までの範囲になる
𝑳 =
2
𝜆 𝑚𝑎𝑥
𝑳 − 𝑰 𝑁
𝐿 について
22
𝒚 = 𝑔 𝜃 𝑳 𝒙 = 𝑔 𝜃 𝑼𝜦𝑼 𝑻
𝒙 = 𝑼𝑔 𝜃 𝜦 𝑼 𝑻
𝒙
• スペクトル上での畳み込みは
1. ノードの情報のフーリエ変換 → 各基底(固有ベクトル)上の信号に変換
2. 基底別(固有値別)にフィルタをかける
3. 逆フーリエ変換(固有ベクトルの積)
Chevnetでの 𝑔 𝜃 𝑳 は
𝑼𝑔 𝜃(𝚲)𝑼 𝑻 𝒙 =
𝑘=0
𝐾−1
𝜃 𝑘 𝑼T𝑘 ( 𝚲)𝑼 𝑻 𝒙
固有値との関係
23
T𝑘 𝑳
①
②
③
グラフ構造の変化に弱い
• グラフ構造が変化すると基底が変化する
• グラフラプラシアンは隣接行列で変化
• 基底はグラフラプラシアンの固有ベクトル
• 学習するデータのグラフ構造が変化する
➡ 固有ベクトル(基底)が変化
➡ 同じノード情報でも信号が変化
➡ 学習が不安定になる
1畳み込み1次元分のノード情報しか畳み込めない
• チャネル方向の畳み込みが不可能
• 1つのノード情報が n 次元
➡ 畳み込みユニットを n 個用意する必要がある
➡ 計算量増大
Chevnetの問題点
24
実験
• ユークリッド構造のデータ
• MNIST
• 非ユークリッドのデータ
• 20NEWS
Chevnetで行われていた実験
25
実験
• MNISTをグラフ化しグラフそのものを分類
• ノード数 : 976(784(28×28)ピクセルと192個の偽ノード)
• 偽ノード
• pooling時にクラスタリングするノードがないときにグループ化させるためのノード
• 接続を持たない➡フィルタ学習に影響しない
• エッジ数 : 3198
• エッジはk-NNグラフ化(8-NN)で決められる
• 8-NNつまり注目ノードの最も近い8近傍が選ばれて接続される
• CNNと同じモデル構造でChevnetが近い精度を出した
ユークリッド構造のデータでの実験
26
ドロップアウト : 0.5
正則化重み : 5*10-4
初期学習率 : 0.03
学習率減衰率 : 0.95
モーメンタム : 0.9
CNNフィルタ : 5*5
Chevnetフィルタ : K = 25
エポック数 : 20
実験
• データセット : 20NEWS Dataset(テキスト分類・クラスタリングに用いるデータセット)
• ノード数 : 10000 (word2vec埋め込み)
• エッジ数 : 132834 ( 16-NNで構築 )
(それぞれのクラスの文書特有のユニークワード1000語を抽出)
• 各文書 x は単語間で正規化された bag-of-words モデル
• モデル : GC32 ( K = 5 , 1層 )
• タスク : テキスト分類(グラフ分類)
• 全結合よりはいい
非ユークリッド構造のデータでの実験
27
初期学習率 : 0.001
Chevnetフィルタ : K = 5
エポック数 : 20
最適化手法 : Adam
GCNについて
最も使用率の高いGraphConvolution
28
Chevnetの畳み込み
• 一回の畳み込みで注目ノードから k 近傍のノードを畳み込める
𝑔 𝜃(𝑳) 𝒙 =
𝑘=0
𝐾−1
𝜃 𝑘T𝑘 ( 𝑳)
T𝑘 𝑳 = 2𝑥T𝑘−1( 𝑳) − T𝑘−2( 𝑳)
T0 𝑳 = 1, T1 𝑳 = 𝑳
①上式を𝑳に対して線形に限定(𝐾 = 2)( 𝑳 は非正規化ラプラシアン)
𝑔 𝜃 𝑳 𝒙 = 𝜃0T0 𝑳 + 𝜃1T1 (𝑳)
T0 𝑳 = 1, T1 𝑳 = 𝑳
𝑔 𝜃 𝑳 𝒙 = 𝜃0 + 𝜃1 𝑳 𝒙
GCNのConvolutionの導出
29
①ChevNetのConvを𝑳に対して線形に限定し単純化
𝑔 𝜃 𝑳 𝒙 = 𝜃0 + 𝜃1 𝑳 𝒙
= 𝜃0 𝒙 + 𝜃1 𝑰 𝑁 − 𝑫−
𝟏
𝟐 𝑨𝑫−
𝟏
𝟐 𝒙
≈ 𝜃0 𝒙 − 𝜃1 𝑫−
𝟏
𝟐 𝑨𝑫−
𝟏
𝟐 𝒙
• 1層で注目ノードに対して 1 エッジ分の隣接ノードを畳み込み可能
• 層を k 回重ねることで k エッジ分の隣接ノードを畳み込み可能
• 学習可能なパラメータ 𝜃0 , 𝜃1
GCNのConvolutionの導出
30
①ChevNetのConvを𝑳に対して線形に限定し単純化
𝑔 𝜃 𝑳 𝒙 = 𝜃0 + 𝜃1 𝑳 𝒙
= 𝜃0 𝒙 + 𝜃1 𝑰 𝑁 − 𝑫−
𝟏
𝟐 𝑨𝑫−
𝟏
𝟐 𝒙
= 𝜃0 𝒙 + 𝜃1 𝑰 𝑁 𝒙+𝜃1 −𝑫−
𝟏
𝟐 𝑨𝑫−
𝟏
𝟐 𝒙
≈ 𝜃0 𝒙 − 𝜃1 𝑫−
𝟏
𝟐 𝑨𝑫−
𝟏
𝟐 𝒙
GCNのConvolutionの導出
31
𝑰 − 𝑫−
𝟏
𝟐 𝑨𝑫−
𝟏
𝟐
𝒊𝒋 = 𝑳𝒊𝒋 =
1
−
1
𝑑𝑒𝑔(𝑣 𝑖)𝑑𝑒𝑔(𝑣 𝑗)
0
𝑖 = 𝑗 𝑎𝑛𝑑 𝑑𝑒𝑔(𝑣𝑖) ≠ 0
𝑖 ≠ 𝑗 𝑎𝑛𝑑 𝑣𝑖 𝑖𝑠 𝑎𝑑𝑗𝑎𝑐𝑒𝑛𝑡 𝑡𝑜 𝑣𝑗
𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒
ChevNetのConvを𝑳に対して線形に限定し単純化する
𝒚 = 𝑔 𝜃 𝑳 𝒙 ≈ 𝜃0 𝒙 − 𝜃1 𝑫−
𝟏
𝟐 𝑨𝑫−
𝟏
𝟐 𝒙
②上式に対して 𝜃0 = −𝜃1 とパラメータ数を制限
𝑔 𝜃 𝑳 𝒙 ≈ 𝜃0 𝒙 − 𝜃1 𝑫−
𝟏
𝟐 𝑨𝑫−
𝟏
𝟐 𝒙 ≈ 𝜃 𝐼 𝑁 + 𝑫−
𝟏
𝟐 𝑨𝑫−
𝟏
𝟐 𝒙
• オーバーフィッティング対策
• レイヤごとの演算(行列乗算など)を最小限に抑える
GCNのConvolutionの導出
32
1つのノードの情報は1次元
𝐼 𝑁 − 𝑫−
𝟏
𝟐 𝑨𝑫−
𝟏
𝟐 と 𝐼 𝑁 + 𝑫−
𝟏
𝟐 𝑨𝑫−
𝟏
𝟐 の違い
33
𝑰 + 𝑫−
𝟏
𝟐 𝑨𝑫−
𝟏
𝟐 =
𝟏
𝟏
𝟐
𝟏
𝟐
𝟏
𝟐
𝟏 𝟎
𝟏
𝟐
𝟎 𝟏
=
𝟏 𝟎. 𝟕 𝟎. 𝟕
𝟎. 𝟕 𝟏 𝟎
𝟎. 𝟕 𝟎 𝟏
𝑰 − 𝑫−
𝟏
𝟐 𝑨𝑫−
𝟏
𝟐 𝒊𝒋 = 𝑳𝒊𝒋 =
1
−
1
𝑑𝑒𝑔(𝑣𝑖)𝑑𝑒𝑔(𝑣𝑗)
0
𝑖 = 𝑗 𝑎𝑛𝑑 𝑑𝑒𝑔(𝑣𝑖) ≠ 0
𝑖 ≠ 𝑗 𝑎𝑛𝑑 𝑣𝑖 𝑖𝑠 𝑎𝑑𝑗𝑎𝑐𝑒𝑛𝑡 𝑡𝑜 𝑣𝑗
𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒
𝑰 − 𝑫−
𝟏
𝟐 𝑨𝑫−
𝟏
𝟐 =
𝟏 −
𝟏
𝟐
−
𝟏
𝟐
−
𝟏
𝟐
𝟏 𝟎
−
𝟏
𝟐
𝟎 𝟏
=
𝟏 −𝟎. 𝟕 −𝟎. 𝟕
−𝟎. 𝟕 𝟏 𝟎
−𝟎. 𝟕 𝟎 𝟏
0 1 2
0 0 1 1
1 1 0 0
2 1 0 0
隣接行列 A
𝑰 + 𝑫−
𝟏
𝟐 𝑨𝑫−
𝟏
𝟐 𝒊𝒋 = 𝑳𝒊𝒋 =
1
1
𝑑𝑒𝑔(𝑣𝑖)𝑑𝑒𝑔(𝑣𝑗)
0
𝑖 = 𝑗 𝑎𝑛𝑑 𝑑𝑒𝑔(𝑣𝑖) ≠ 0
𝑖 ≠ 𝑗 𝑎𝑛𝑑 𝑣𝑖 𝑖𝑠 𝑎𝑑𝑗𝑎𝑐𝑒𝑛𝑡 𝑡𝑜 𝑣𝑗
𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒
0
1 2
正規化ラプラシアンとほぼ同じ
𝑔 𝜃 𝑳 𝒙 ≈ 𝜃 𝑰 𝑁 + 𝑫−
𝟏
𝟐 𝑨𝑫−
𝟏
𝟐 𝒙
• 𝑰 𝑁 + 𝑫−
𝟏
𝟐 𝑨𝑫−
𝟏
𝟐 は 0 ≤ 𝜆 𝑚𝑎𝑥 ≤ 2 の最大固有値を持つ
• 𝑰 𝑁 + 𝑫−
𝟏
𝟐 𝑨𝑫−
𝟏
𝟐 を繰り返すと数値的に不安定になる
➡ 勾配爆発/消失につながる
➡ ”renormalization trick” を使用して軽減させる
𝑰 𝑁 + 𝑫−
𝟏
𝟐 𝑨𝑫−
𝟏
𝟐 → 𝑫−
𝟏
𝟐 𝑨 𝑫−
𝟏
𝟐
𝑨 = 𝑨 + 𝑰 𝑁
𝑫 =
𝒋
𝑨𝒊𝒋
GCNのConvolutionの導出
34
③GCN
𝒚 = 𝑨𝒙Θ = 𝑫−
𝟏
𝟐 𝑨 𝑫−
𝟏
𝟐 𝒙Θ
• Θ をフィルタ行列とする
➡ 1つのノードのノード情報が多次元情報でも1回の計算で畳み込み可能
GCNのConvolutionの導出
35
GCNのConvolutionについて
次の例で考える
0 1 2
0 0 1 1
1 1 0 0
2 1 0 0
隣接行列 A
0
1 2
GCNのConvolutionについて
37
𝑫−
𝟏
𝟐 𝑨 𝑫−
𝟏
𝟐
𝒊𝒋 =
1
𝑑𝑒𝑔 𝑣 𝑖 +1 𝑑𝑒𝑔(𝑣 𝑖)+1)
1
𝑑𝑒𝑔 𝑣 𝑖 +1 𝑑𝑒𝑔(𝑣 𝑗)+1)
0
𝑖 = 𝑗 𝑎𝑛𝑑 𝑑𝑒𝑔(𝑣𝑖) ≠ 0
𝑖 ≠ 𝑗 𝑎𝑛𝑑 𝑣𝑖 𝑖𝑠 𝑎𝑑𝑗𝑎𝑐𝑒𝑛𝑡 𝑡𝑜 𝑣𝑗
𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒
𝑫−
𝟏
𝟐 𝑨 𝑫−
𝟏
𝟐 =
𝟏
𝟑
𝟏
𝟔
𝟏
𝟔
𝟏
𝟔
𝟏
𝟐
𝟎
𝟏
𝟔
𝟎
𝟏
𝟐
=
𝟎. 𝟑 𝟎. 𝟒 𝟎. 𝟒
𝟎. 𝟒 𝟎. 𝟓 𝟎
𝟎. 𝟒 𝟎 𝟎. 𝟓
0 1 2
0 0 1 1
1 1 0 0
2 1 0 0
隣接行列 A
• 𝑫−
𝟏
𝟐 𝑨 𝑫−
𝟏
𝟐 のそれぞの要素は
2つのノードの関係(エッジ)の関係を
表している
• 注目ノードと隣接ノードの接続数が多い
➡ 𝑫−
𝟏
𝟐 𝑨 𝑫−
𝟏
𝟐 の要素値は小さい値をとる
• 注目ノードと隣接ノードの接続数が少ない
➡ 𝑫−
𝟏
𝟐 𝑨 𝑫−
𝟏
𝟐 の要素値は大きい値をとる
• つまり,注目ノードと隣接ノード数が少ない
ノード情報を重視する
GCNのConvolutionについて
38
𝑫−
𝟏
𝟐 𝑨 𝑫−
𝟏
𝟐
𝒊𝒋 =
1
𝑑𝑒𝑔 𝑣 𝑖 +1 𝑑𝑒𝑔(𝑣 𝑖)+1)
1
𝑑𝑒𝑔 𝑣 𝑖 +1 𝑑𝑒𝑔(𝑣 𝑗)+1)
0
𝑖 = 𝑗 𝑎𝑛𝑑 𝑑𝑒𝑔(𝑣𝑖) ≠ 0
𝑖 ≠ 𝑗 𝑎𝑛𝑑 𝑣𝑖 𝑖𝑠 𝑎𝑑𝑗𝑎𝑐𝑒𝑛𝑡 𝑡𝑜 𝑣𝑗
𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒
𝑫−
𝟏
𝟐 𝑨 𝑫−
𝟏
𝟐 =
𝟏
𝟑
𝟏
𝟔
𝟏
𝟔
𝟏
𝟔
𝟏
𝟐
𝟎
𝟏
𝟔
𝟎
𝟏
𝟐
=
𝟎. 𝟑 𝟎. 𝟒 𝟎. 𝟒
𝟎. 𝟒 𝟎. 𝟓 𝟎
𝟎. 𝟒 𝟎 𝟎. 𝟓
𝑰 − 𝑫−
𝟏
𝟐 𝑨𝑫−
𝟏
𝟐 𝒊𝒋 = 𝑳𝒊𝒋 =
1
−
1
𝑑𝑒𝑔(𝑣𝑖)𝑑𝑒𝑔(𝑣𝑗)
0
𝑖 = 𝑗 𝑎𝑛𝑑 𝑑𝑒𝑔(𝑣𝑖) ≠ 0
𝑖 ≠ 𝑗 𝑎𝑛𝑑 𝑣𝑖 𝑖𝑠 𝑎𝑑𝑗𝑎𝑐𝑒𝑛𝑡 𝑡𝑜 𝑣𝑗
𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒
𝑰 − 𝑫−
𝟏
𝟐 𝑨𝑫−
𝟏
𝟐 =
𝟏 −
𝟏
𝟐
−
𝟏
𝟐
−
𝟏
𝟐
𝟏 𝟎
−
𝟏
𝟐
𝟎 𝟏
=
𝟏 −𝟎. 𝟕 −𝟎. 𝟕
−𝟎. 𝟕 𝟏 𝟎
−𝟎. 𝟕 𝟎 𝟏
0 1 2
0 0 1 1
1 1 0 0
2 1 0 0
隣接行列 Aを下のように定義した時の 𝑫−
𝟏
𝟐 𝑨 𝑫−
𝟏
𝟐と正規化ラプラシアンの比較
隣接行列 A
GCNのConvolutionについて
𝑫−
𝟏
𝟐 𝑨 𝑫−
𝟏
𝟐 𝒙 は自己ノードとその隣接ノード情報を集める
• 橙枠の計算を行うとき、
• 自己ノード :
1
𝑑𝑒𝑔 𝑣 𝑖 +1 deg(𝑣 𝑖) +1)
× 自己ノード情報
• 隣接ノード :
1
𝑑𝑒𝑔 𝑣 𝑖 +1 𝑑𝑒𝑔(𝑣 𝑗) +1)
× 隣接ノード情報
• 接続していないノード : 0 × ノード情報
𝑫−
𝟏
𝟐 𝑨 𝑫−
𝟏
𝟐 𝒙 =
𝟎. 𝟑 𝟎. 𝟒 𝟎. 𝟒
𝟎. 𝟒 𝟎. 𝟓 𝟎
𝟎. 𝟒 𝟎 𝟎. 𝟓
𝟓 𝟕
𝟖 𝟏
𝟑 𝟒
=
𝟓. 𝟗 𝟒. 𝟏
𝟔 𝟑. 𝟑
𝟑. 𝟓 𝟒. 𝟖 39
0
1 2
注目ノードと隣接ノードの関係を表す正規化定数(エッジ重み)
𝑫−
𝟏
𝟐 𝑨 𝑫−
𝟏
𝟐 𝒙𝑾 =
𝟓. 𝟗 𝟒. 𝟏
𝟔 𝟑. 𝟑
𝟑. 𝟓 𝟒. 𝟖
𝟏 𝟐 𝟑 𝟒 𝟓
𝟏 𝟐 𝟑 𝟒 𝟓
=
𝟏𝟎 𝟐𝟎 𝟑𝟎 𝟒𝟎 𝟓𝟎
𝟗. 𝟑 𝟏𝟖. 𝟔 𝟐𝟕. 𝟗 𝟑𝟕. 𝟐 𝟒𝟔. 𝟓
𝟖. 𝟑 𝟏𝟔. 𝟔 𝟐𝟒. 𝟗 𝟑𝟑. 𝟐 𝟒𝟏. 𝟓
1 2 3 4 5
1 2 3 4 5
←畳み込む前のノードのチャネル
↑畳み込み後のノードのチャネル
GCNのConvolutionについて
• 𝑫−
𝟏
𝟐 𝑨 𝑫−
𝟏
𝟐 𝒙は自己ノードとその隣接ノード情報を集めた値だった
• その値に対して重みをかけて計算した結果が畳み込み処理後の値となる
• 空間的な畳み込みに近い
重み
𝑾
畳み込み後のノード3のノード情報↑↑重み𝑾↑ 𝑫−
𝟏
𝟐 𝑨 𝑫−
𝟏
𝟐 𝒙
0
1 2
40
𝑫−
𝟏
𝟐 𝑨 𝑫−
𝟏
𝟐が固定値
• 注目ノードに対するそれぞれの隣接ノードが必要不必要関係なく統合されてしまう
➡注目ノードと隣接ノードの値から求められるようにパラメータ化できれば理想
空間方向の局所的な畳み込みができていない
• 畳み込み演算を行うときに 𝑫−
𝟏
𝟐 𝑨 𝑫−
𝟏
𝟐 𝒙 で注目・隣接ノード情報を集めてしまう
➡ それぞれのノードに対して重みをかけられない
チャネルの方向および空間方向の畳み込むにしてはパラメータが少ない
• CNNに使用するConvolution だと畳み込みフィルタがチャネルごとに分かれている
• GCNのほうはConvolution前のチャネル数× Convolutionあとのチャネル数しかない
➡ 著者曰く画像のようなデータに対してはモデルが貧弱
GCNのGraph Convolutionの問題点
41
複数のGCNレイヤを積み重ねると、過度に平滑化される
• 層を重ねるとすべての頂点が同じ値に収束してしまう(別論文の実験より)
GCNのGraph Convolutionの問題点
42
データセット
• 文書引用ネットワークのデータセット : Citeseer, Cora, Pubmed
• ノード : 文書データ
• エッジ : 引用リンク(文書 I が文書 j を引用した場合2つのエッジは1(接続))
• ノードのクラス = 文書の内容別クラス
GCNで行われていた実験
43
データセット
• 知識グラフのデータセット : NELL
• ノード : 単語(ベクトル表現)
• エッジ : 関係
• ノードのクラス例
• Tront, Canada : country
GCNで行われていた実験
44
GCNで行われていた実験
45
• GCNモデル構造 : GCN2層
𝑍 = 𝑓 𝑋, 𝐴 = 𝑠𝑜𝑓𝑡𝑚𝑎𝑥 𝐴 𝑅𝑒𝐿𝑈 𝐴𝑋𝑊(0) 𝑊(1)
GCNで行われていた実験
46
Ad

More Related Content

What's hot (20)

数学で解き明かす深層学習の原理
数学で解き明かす深層学習の原理数学で解き明かす深層学習の原理
数学で解き明かす深層学習の原理
Taiji Suzuki
 
Graph Neural Networks
Graph Neural NetworksGraph Neural Networks
Graph Neural Networks
tm1966
 
スペクトラルグラフ理論入門
スペクトラルグラフ理論入門スペクトラルグラフ理論入門
スペクトラルグラフ理論入門
irrrrr
 
最適化超入門
最適化超入門最適化超入門
最適化超入門
Takami Sato
 
グラフニューラルネットワークとグラフ組合せ問題
グラフニューラルネットワークとグラフ組合せ問題グラフニューラルネットワークとグラフ組合せ問題
グラフニューラルネットワークとグラフ組合せ問題
joisino
 
深層学習の数理
深層学習の数理深層学習の数理
深層学習の数理
Taiji Suzuki
 
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII
 
深層生成モデルと世界モデル
深層生成モデルと世界モデル深層生成モデルと世界モデル
深層生成モデルと世界モデル
Masahiro Suzuki
 
[DL輪読会]相互情報量最大化による表現学習
[DL輪読会]相互情報量最大化による表現学習[DL輪読会]相互情報量最大化による表現学習
[DL輪読会]相互情報量最大化による表現学習
Deep Learning JP
 
強化学習と逆強化学習を組み合わせた模倣学習
強化学習と逆強化学習を組み合わせた模倣学習強化学習と逆強化学習を組み合わせた模倣学習
強化学習と逆強化学習を組み合わせた模倣学習
Eiji Uchibe
 
【DL輪読会】Hopfield network 関連研究について
【DL輪読会】Hopfield network 関連研究について【DL輪読会】Hopfield network 関連研究について
【DL輪読会】Hopfield network 関連研究について
Deep Learning JP
 
【DL輪読会】ViT + Self Supervised Learningまとめ
【DL輪読会】ViT + Self Supervised Learningまとめ【DL輪読会】ViT + Self Supervised Learningまとめ
【DL輪読会】ViT + Self Supervised Learningまとめ
Deep Learning JP
 
[DL輪読会]Learning convolutional neural networks for graphs
[DL輪読会]Learning convolutional neural networks for graphs[DL輪読会]Learning convolutional neural networks for graphs
[DL輪読会]Learning convolutional neural networks for graphs
Deep Learning JP
 
PRML学習者から入る深層生成モデル入門
PRML学習者から入る深層生成モデル入門PRML学習者から入る深層生成モデル入門
PRML学習者から入る深層生成モデル入門
tmtm otm
 
ELBO型VAEのダメなところ
ELBO型VAEのダメなところELBO型VAEのダメなところ
ELBO型VAEのダメなところ
KCS Keio Computer Society
 
SSII2021 [TS2] 深層強化学習 〜 強化学習の基礎から応用まで 〜
SSII2021 [TS2] 深層強化学習 〜 強化学習の基礎から応用まで 〜SSII2021 [TS2] 深層強化学習 〜 強化学習の基礎から応用まで 〜
SSII2021 [TS2] 深層強化学習 〜 強化学習の基礎から応用まで 〜
SSII
 
Transformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法についてTransformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法について
Sho Takase
 
深層生成モデルと世界モデル(2020/11/20版)
深層生成モデルと世界モデル(2020/11/20版)深層生成モデルと世界モデル(2020/11/20版)
深層生成モデルと世界モデル(2020/11/20版)
Masahiro Suzuki
 
【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習
cvpaper. challenge
 
[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative Models[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative Models
Deep Learning JP
 
数学で解き明かす深層学習の原理
数学で解き明かす深層学習の原理数学で解き明かす深層学習の原理
数学で解き明かす深層学習の原理
Taiji Suzuki
 
Graph Neural Networks
Graph Neural NetworksGraph Neural Networks
Graph Neural Networks
tm1966
 
スペクトラルグラフ理論入門
スペクトラルグラフ理論入門スペクトラルグラフ理論入門
スペクトラルグラフ理論入門
irrrrr
 
最適化超入門
最適化超入門最適化超入門
最適化超入門
Takami Sato
 
グラフニューラルネットワークとグラフ組合せ問題
グラフニューラルネットワークとグラフ組合せ問題グラフニューラルネットワークとグラフ組合せ問題
グラフニューラルネットワークとグラフ組合せ問題
joisino
 
深層学習の数理
深層学習の数理深層学習の数理
深層学習の数理
Taiji Suzuki
 
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII
 
深層生成モデルと世界モデル
深層生成モデルと世界モデル深層生成モデルと世界モデル
深層生成モデルと世界モデル
Masahiro Suzuki
 
[DL輪読会]相互情報量最大化による表現学習
[DL輪読会]相互情報量最大化による表現学習[DL輪読会]相互情報量最大化による表現学習
[DL輪読会]相互情報量最大化による表現学習
Deep Learning JP
 
強化学習と逆強化学習を組み合わせた模倣学習
強化学習と逆強化学習を組み合わせた模倣学習強化学習と逆強化学習を組み合わせた模倣学習
強化学習と逆強化学習を組み合わせた模倣学習
Eiji Uchibe
 
【DL輪読会】Hopfield network 関連研究について
【DL輪読会】Hopfield network 関連研究について【DL輪読会】Hopfield network 関連研究について
【DL輪読会】Hopfield network 関連研究について
Deep Learning JP
 
【DL輪読会】ViT + Self Supervised Learningまとめ
【DL輪読会】ViT + Self Supervised Learningまとめ【DL輪読会】ViT + Self Supervised Learningまとめ
【DL輪読会】ViT + Self Supervised Learningまとめ
Deep Learning JP
 
[DL輪読会]Learning convolutional neural networks for graphs
[DL輪読会]Learning convolutional neural networks for graphs[DL輪読会]Learning convolutional neural networks for graphs
[DL輪読会]Learning convolutional neural networks for graphs
Deep Learning JP
 
PRML学習者から入る深層生成モデル入門
PRML学習者から入る深層生成モデル入門PRML学習者から入る深層生成モデル入門
PRML学習者から入る深層生成モデル入門
tmtm otm
 
SSII2021 [TS2] 深層強化学習 〜 強化学習の基礎から応用まで 〜
SSII2021 [TS2] 深層強化学習 〜 強化学習の基礎から応用まで 〜SSII2021 [TS2] 深層強化学習 〜 強化学習の基礎から応用まで 〜
SSII2021 [TS2] 深層強化学習 〜 強化学習の基礎から応用まで 〜
SSII
 
Transformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法についてTransformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法について
Sho Takase
 
深層生成モデルと世界モデル(2020/11/20版)
深層生成モデルと世界モデル(2020/11/20版)深層生成モデルと世界モデル(2020/11/20版)
深層生成モデルと世界モデル(2020/11/20版)
Masahiro Suzuki
 
【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習
cvpaper. challenge
 
[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative Models[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative Models
Deep Learning JP
 

Similar to Graph convolution (スペクトルアプローチ) (20)

パターン認識と機械学習6章(カーネル法)
パターン認識と機械学習6章(カーネル法)パターン認識と機械学習6章(カーネル法)
パターン認識と機械学習6章(カーネル法)
Yukara Ikemiya
 
PRML 8.4-8.4.3
PRML 8.4-8.4.3 PRML 8.4-8.4.3
PRML 8.4-8.4.3
KunihiroTakeoka
 
複雑ネットワーク 第4章 古典的なグラフ
複雑ネットワーク 第4章 古典的なグラフ複雑ネットワーク 第4章 古典的なグラフ
複雑ネットワーク 第4章 古典的なグラフ
Shintaro Takemura
 
ディジタル信号処理の課題解説 その3
ディジタル信号処理の課題解説 その3ディジタル信号処理の課題解説 その3
ディジタル信号処理の課題解説 その3
noname409
 
8.4 グラフィカルモデルによる推論
8.4 グラフィカルモデルによる推論8.4 グラフィカルモデルによる推論
8.4 グラフィカルモデルによる推論
sleepy_yoshi
 
NN, CNN, and Image Analysis
NN, CNN, and Image AnalysisNN, CNN, and Image Analysis
NN, CNN, and Image Analysis
Yuki Shimada
 
PRML上巻勉強会 at 東京大学 資料 第1章後半
PRML上巻勉強会 at 東京大学 資料 第1章後半PRML上巻勉強会 at 東京大学 資料 第1章後半
PRML上巻勉強会 at 東京大学 資料 第1章後半
Ohsawa Goodfellow
 
Aishima140714
Aishima140714Aishima140714
Aishima140714
nwpmq516
 
Fourier transform
Fourier transformFourier transform
Fourier transform
ShinoharaTakuto
 
機械学習とこれを支える並列計算 : 並列計算の現状と産業応用について
機械学習とこれを支える並列計算 : 並列計算の現状と産業応用について機械学習とこれを支える並列計算 : 並列計算の現状と産業応用について
機械学習とこれを支える並列計算 : 並列計算の現状と産業応用について
ハイシンク創研 / Laboratory of Hi-Think Corporation
 
行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)
行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)
行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)
ryotat
 
topology of musical data
topology of musical datatopology of musical data
topology of musical data
Tatsuki SHIMIZU
 
Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recog...
Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recog...Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recog...
Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recog...
yukihiro domae
 
東京都市大学 データ解析入門 10 ニューラルネットワークと深層学習 1
東京都市大学 データ解析入門 10 ニューラルネットワークと深層学習 1東京都市大学 データ解析入門 10 ニューラルネットワークと深層学習 1
東京都市大学 データ解析入門 10 ニューラルネットワークと深層学習 1
hirokazutanaka
 
Sparse estimation tutorial 2014
Sparse estimation tutorial 2014Sparse estimation tutorial 2014
Sparse estimation tutorial 2014
Taiji Suzuki
 
第8回 配信講義 計算科学技術特論A(2021)
第8回 配信講義 計算科学技術特論A(2021)第8回 配信講義 計算科学技術特論A(2021)
第8回 配信講義 計算科学技術特論A(2021)
RCCSRENKEI
 
210603 yamamoto
210603 yamamoto210603 yamamoto
210603 yamamoto
RCCSRENKEI
 
ディジタル信号処理 課題解説 その4
ディジタル信号処理 課題解説 その4ディジタル信号処理 課題解説 その4
ディジタル信号処理 課題解説 その4
noname409
 
量子アニーリングを用いたクラスタ分析
量子アニーリングを用いたクラスタ分析量子アニーリングを用いたクラスタ分析
量子アニーリングを用いたクラスタ分析
Shu Tanaka
 
ウィナーフィルタと適応フィルタ
ウィナーフィルタと適応フィルタウィナーフィルタと適応フィルタ
ウィナーフィルタと適応フィルタ
Toshihisa Tanaka
 
パターン認識と機械学習6章(カーネル法)
パターン認識と機械学習6章(カーネル法)パターン認識と機械学習6章(カーネル法)
パターン認識と機械学習6章(カーネル法)
Yukara Ikemiya
 
複雑ネットワーク 第4章 古典的なグラフ
複雑ネットワーク 第4章 古典的なグラフ複雑ネットワーク 第4章 古典的なグラフ
複雑ネットワーク 第4章 古典的なグラフ
Shintaro Takemura
 
ディジタル信号処理の課題解説 その3
ディジタル信号処理の課題解説 その3ディジタル信号処理の課題解説 その3
ディジタル信号処理の課題解説 その3
noname409
 
8.4 グラフィカルモデルによる推論
8.4 グラフィカルモデルによる推論8.4 グラフィカルモデルによる推論
8.4 グラフィカルモデルによる推論
sleepy_yoshi
 
NN, CNN, and Image Analysis
NN, CNN, and Image AnalysisNN, CNN, and Image Analysis
NN, CNN, and Image Analysis
Yuki Shimada
 
PRML上巻勉強会 at 東京大学 資料 第1章後半
PRML上巻勉強会 at 東京大学 資料 第1章後半PRML上巻勉強会 at 東京大学 資料 第1章後半
PRML上巻勉強会 at 東京大学 資料 第1章後半
Ohsawa Goodfellow
 
Aishima140714
Aishima140714Aishima140714
Aishima140714
nwpmq516
 
行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)
行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)
行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)
ryotat
 
topology of musical data
topology of musical datatopology of musical data
topology of musical data
Tatsuki SHIMIZU
 
Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recog...
Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recog...Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recog...
Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recog...
yukihiro domae
 
東京都市大学 データ解析入門 10 ニューラルネットワークと深層学習 1
東京都市大学 データ解析入門 10 ニューラルネットワークと深層学習 1東京都市大学 データ解析入門 10 ニューラルネットワークと深層学習 1
東京都市大学 データ解析入門 10 ニューラルネットワークと深層学習 1
hirokazutanaka
 
Sparse estimation tutorial 2014
Sparse estimation tutorial 2014Sparse estimation tutorial 2014
Sparse estimation tutorial 2014
Taiji Suzuki
 
第8回 配信講義 計算科学技術特論A(2021)
第8回 配信講義 計算科学技術特論A(2021)第8回 配信講義 計算科学技術特論A(2021)
第8回 配信講義 計算科学技術特論A(2021)
RCCSRENKEI
 
210603 yamamoto
210603 yamamoto210603 yamamoto
210603 yamamoto
RCCSRENKEI
 
ディジタル信号処理 課題解説 その4
ディジタル信号処理 課題解説 その4ディジタル信号処理 課題解説 その4
ディジタル信号処理 課題解説 その4
noname409
 
量子アニーリングを用いたクラスタ分析
量子アニーリングを用いたクラスタ分析量子アニーリングを用いたクラスタ分析
量子アニーリングを用いたクラスタ分析
Shu Tanaka
 
ウィナーフィルタと適応フィルタ
ウィナーフィルタと適応フィルタウィナーフィルタと適応フィルタ
ウィナーフィルタと適応フィルタ
Toshihisa Tanaka
 
Ad

More from yukihiro domae (8)

FeaStNet: Feature-Steered Graph Convolutions for 3D Shape Analysis
FeaStNet: Feature-Steered Graph Convolutions for 3D Shape AnalysisFeaStNet: Feature-Steered Graph Convolutions for 3D Shape Analysis
FeaStNet: Feature-Steered Graph Convolutions for 3D Shape Analysis
yukihiro domae
 
Graph U-Net
Graph U-NetGraph U-Net
Graph U-Net
yukihiro domae
 
Graph Refinement based Tree Extraction using Mean-Field Networks and Graph Ne...
Graph Refinement based Tree Extraction using Mean-Field Networks and Graph Ne...Graph Refinement based Tree Extraction using Mean-Field Networks and Graph Ne...
Graph Refinement based Tree Extraction using Mean-Field Networks and Graph Ne...
yukihiro domae
 
Learning Depthwise Separable Graph Convolution from Data Manifold
Learning Depthwise Separable Graph Convolution from Data ManifoldLearning Depthwise Separable Graph Convolution from Data Manifold
Learning Depthwise Separable Graph Convolution from Data Manifold
yukihiro domae
 
Texture-Aware Superpixel Segmentation
Texture-Aware Superpixel SegmentationTexture-Aware Superpixel Segmentation
Texture-Aware Superpixel Segmentation
yukihiro domae
 
Superpixel Sampling Networks
Superpixel Sampling NetworksSuperpixel Sampling Networks
Superpixel Sampling Networks
yukihiro domae
 
Graph LSTM解説
Graph LSTM解説Graph LSTM解説
Graph LSTM解説
yukihiro domae
 
Dynamic Routing Between Capsules
Dynamic Routing Between CapsulesDynamic Routing Between Capsules
Dynamic Routing Between Capsules
yukihiro domae
 
FeaStNet: Feature-Steered Graph Convolutions for 3D Shape Analysis
FeaStNet: Feature-Steered Graph Convolutions for 3D Shape AnalysisFeaStNet: Feature-Steered Graph Convolutions for 3D Shape Analysis
FeaStNet: Feature-Steered Graph Convolutions for 3D Shape Analysis
yukihiro domae
 
Graph Refinement based Tree Extraction using Mean-Field Networks and Graph Ne...
Graph Refinement based Tree Extraction using Mean-Field Networks and Graph Ne...Graph Refinement based Tree Extraction using Mean-Field Networks and Graph Ne...
Graph Refinement based Tree Extraction using Mean-Field Networks and Graph Ne...
yukihiro domae
 
Learning Depthwise Separable Graph Convolution from Data Manifold
Learning Depthwise Separable Graph Convolution from Data ManifoldLearning Depthwise Separable Graph Convolution from Data Manifold
Learning Depthwise Separable Graph Convolution from Data Manifold
yukihiro domae
 
Texture-Aware Superpixel Segmentation
Texture-Aware Superpixel SegmentationTexture-Aware Superpixel Segmentation
Texture-Aware Superpixel Segmentation
yukihiro domae
 
Superpixel Sampling Networks
Superpixel Sampling NetworksSuperpixel Sampling Networks
Superpixel Sampling Networks
yukihiro domae
 
Dynamic Routing Between Capsules
Dynamic Routing Between CapsulesDynamic Routing Between Capsules
Dynamic Routing Between Capsules
yukihiro domae
 
Ad

Graph convolution (スペクトルアプローチ)

  • 2. • 𝑨:隣接行列 • ノードの接続を表す行列 • 隣接リスト • ノードの接続を表すリスト • 𝑫:次数行列 • 各節点の次数を対角上に並べた対角行列 Graphを表現するための行列 2 4 0 0 0 0 0 2 0 0 0 0 0 2 0 0 0 0 0 1 0 0 0 0 0 3                D             1,2,3,4 0,4 0,4 0,4 0 0,1,2 隣接行列 隣接リスト 次数行列
  • 4. • グラフラプラシアンの固有ベクトルによるグラフ信号の展開 • 固有値 λ𝒊 :グラフ周波数 • 固有ベクトル 𝒖λ 𝒊 :フーリエ基底 • 基底ベクトルと内積をとるとその方向の成分を取り出せる ➡ その周波数成分が取り出せる グラフフーリエ変換 4 ノード情報 𝒇 フーリエ基底𝒖λ 𝒊 周波数λ𝒊の成分
  • 5. • 𝑳 :非正規化ラプラシアン 𝑳 = 𝑫 − 𝑨 • 𝓛 :正規化グラフラプラシアン 𝓛 = 𝑫− 𝟏 𝟐 𝑳𝑫− 𝟏 𝟐 = 𝑰 − 𝑫− 𝟏 𝟐 𝑨𝑫− 𝟏 𝟐 • 正規・非正規化ラプラシアンの違い • 非正規化ラプラシアン : 固有値の最大値が変化 • 正規化ラプラシアン : 固有値の最大値が2以下(正規化) (正規・非正規化ラプラシアンの固有値はどちらも0以上) グラフラプラシアン 5
  • 6. • 𝒇 :入力(ノード情報) • 𝑨 :隣接行列 • 𝑫 :次数行列 • 𝑳 :グラフラプラシアン • λ𝒊 :𝑳の固有値 • 𝒖λ 𝒊 :𝑳の固有ベクトル • 𝑼 :𝑳の固有ベクトルを並べた行列 • 𝑵 :グラフのノード数 グラフフーリエ変換 𝑭 = 𝑼 𝑻 𝒇 上式の関数(固有値 i に対する信号) 𝐹(𝜆𝑖) = 𝒋=𝟎 𝑵−𝟏 𝑓(𝑗)𝑢 𝜆 𝑖 ∗ (𝑗) 逆グラフフーリエ変換 𝒇 = 𝑼𝑭 上式の関数(ノード jk の情報) 𝑓(𝑗) = 𝒊=𝟎 𝑵−𝟏 𝐹(𝜆𝑖)𝑢 𝜆 𝑖 (𝑗) グラフフーリエ変換 6 ノード情報 𝒇 は各ノード1次元
  • 7. グラフフーリエ変換 𝑭 = 𝑼 𝑻 𝒇 上式の関数(固有値iに対する信号) 𝐹(𝜆𝑖) = 𝒋=𝟎 𝑵−𝟏 𝑓(𝑗)𝑢 𝜆 𝑖 ∗ (𝑗) 逆グラフフーリエ変換 𝒇 = 𝑼𝑭 上式の関数(ノードkの情報) 𝑓(𝑗) = 𝒊=𝟎 𝑵−𝟏 𝐹(𝜆𝑖)𝑢 𝜆 𝑖 (𝑗) グラフフーリエ変換 7 𝒇 = 𝑓(0) 𝑓(1) 𝑓(2) 固有ベクトル ノード情報 𝑼 = 𝑢 𝜆0 (0) 𝑢 𝜆1 (0) 𝑢 𝜆2 (0) 𝑢 𝜆0 (1) 𝑢 𝜆1 (1) 𝑢 𝜆2 (1) 𝑢 𝜆0 (2) 𝑢 𝜆1 (2) 𝑢 𝜆2 (2) 𝑼 𝑻 = 𝑢 𝜆0 (0) 𝑢 𝜆0 (1) 𝑢 𝜆0 (2) 𝑢 𝜆1 (0) 𝑢 𝜆1 (1) 𝑢 𝜆1 (2) 𝑢 𝜆2 (0) 𝑢 𝜆2 (1) 𝑢 𝜆2 (2) 𝑼 𝑻 𝒇 = 𝑢 𝜆0 (0) 𝑢 𝜆0 (1) 𝑢 𝜆0 (2) 𝑢 𝜆1 (0) 𝑢 𝜆1 (1) 𝑢 𝜆1 (2) 𝑢 𝜆2 (0) 𝑢 𝜆2 (1) 𝑢 𝜆2 (2) 𝑓(0) 𝑓(1) 𝑓(2) = 𝒖0 𝒇 𝒖1 𝒇 𝒖2 𝒇 = 𝐹 𝜆0 𝐹 𝜆1 𝐹 𝜆2 グラフ周波数λ 𝟎に対する信号 𝒖0 𝒇
  • 8. グラフフーリエ変換 𝑭 = 𝑼 𝑻 𝒇 上式の関数(固有値iに対する信号) 𝐹(𝜆𝑖) = 𝒋=𝟎 𝑵−𝟏 𝑓(𝑗)𝑢 𝜆 𝑖 ∗ (𝑗) 逆グラフフーリエ変換 𝒇 = 𝑼𝑭 上式の関数(ノードkの情報) 𝑓(𝑗) = 𝒊=𝟎 𝑵−𝟏 𝐹(𝜆𝑖)𝑢 𝜆 𝑖 (𝑗) グラフフーリエ変換 8 𝒇 = 𝑓(0) 𝑓(1) 𝑓(2) 固有ベクトル ノード情報 𝑼 = 𝑢 𝜆0 (0) 𝑢 𝜆1 (0) 𝑢 𝜆2 (0) 𝑢 𝜆0 (1) 𝑢 𝜆1 (1) 𝑢 𝜆2 (1) 𝑢 𝜆0 (2) 𝑢 𝜆1 (2) 𝑢 𝜆2 (2) 𝑼 𝑻 = 𝑢 𝜆0 (0) 𝑢 𝜆0 (1) 𝑢 𝜆0 (2) 𝑢 𝜆1 (0) 𝑢 𝜆1 (1) 𝑢 𝜆1 (2) 𝑢 𝜆2 (0) 𝑢 𝜆2 (1) 𝑢 𝜆2 (2) 𝑼𝑭 = 𝑢 𝜆0 (0) 𝑢 𝜆1 (0) 𝑢 𝜆2 (0) 𝑢 𝜆0 (1) 𝑢 𝜆1 (1) 𝑢 𝜆2 (1) 𝑢 𝜆0 (2) 𝑢 𝜆1 (2) 𝑢 𝜆2 (2) 𝐹 𝜆0 𝐹 𝜆1 𝐹 𝜆2 = 𝑓(0) 𝑓(1) 𝑓(2)
  • 9. スペクトル上でのフィルタリング • それぞれの周波数別の信号にフィルタをかける (周波数 𝜆0 上の信号 𝒖0 𝒇に対してフィルタ 𝐻(𝜆0) をかける) • 𝐻(𝜆𝑖) は固有値𝜆𝑖(グラフ周波数)に対する関数 9 0 1 1 ( ) ( ) ( ) T N H H H                      U U f フィルタ スペクトル上でのフィルタリング 𝐻(𝜆0) 0 0 0 𝐻(𝜆1) 0 0 0 𝐻(𝜆2) 𝒖0 𝒇 𝒖1 𝒇 𝒖2 𝒇 = 𝐻(𝜆0)𝒖0 𝒇 𝐻(𝜆1)𝒖1 𝒇 𝐻(𝜆2)𝒖2 𝒇
  • 10. 10 空間上でのフィルタリング 𝑓(𝑘) = 𝑎 𝑘𝑘 𝑓 𝑘 + 𝑗𝜖 𝑵 𝑘 𝑎 𝑘𝑗 𝑓(𝑗) 𝑵 𝑘 : ノード 𝑘 の周辺ノードの集合 𝑎 𝑘𝑘, 𝑎 𝑘𝑗 : フィルタ係数 𝑓(𝑘) : フィルタリング後のノード 𝑘 のノード情報 • 上式と同じことをスペクトル上でも行えることを式で示す 注目ノード 隣接ノード グラフの空間上でのフィルタリング
  • 11. 11 注目ノード隣接ノードをまとめる 𝑓(𝑘) = 𝑎 𝑘𝑘 𝑓 𝑘 + 𝑗𝜖 𝑵 𝑘 𝑎 𝑘𝑗 𝑓(𝑗) = 𝑗𝜖 𝑵 𝑘 𝑎 𝑘𝑗 𝑓(𝑗) 𝑵 𝑘 : ノード 𝑘 の周辺ノードの集合(注目ノードも含む) 𝑎 𝑘𝑗 : フィルタ係数 𝑓(𝑘) : フィルタリング後のノード 𝑘 のノード情報 • 上式と同じことをスペクトル上でも行えることを式で示す グラフの空間上でのフィルタリング 注目ノード 隣接ノード
  • 12. 12 スペクトル上でのフィルタリング スペクトル上でのフィルタリング 上の式を書き換え 𝑓(𝑗) = 𝑖=0 𝑁−1 𝐹(𝜆𝑖) 𝐻(𝜆𝑖)𝑢 𝜆 𝑖 (𝑗) 𝐹(𝜆𝑖) = 𝒋=𝟎 𝑵−𝟏 𝑓(𝑗) 𝑢 𝜆 𝑖 ∗ (𝑗) 0 1 1 ( ) ( ) ( ) T N H H H                      U U f フィルタ グラフ上のフーリエ変換 𝑢 𝜆0 (0) 𝑢 𝜆1 (0) 𝑢 𝜆2 (0) 𝑢 𝜆0 (1) 𝑢 𝜆1 (1) 𝑢 𝜆2 (1) 𝑢 𝜆0 (2) 𝑢 𝜆1 (2) 𝑢 𝜆2 (2) 𝐻(𝜆0) 0 0 0 𝐻(𝜆1) 0 0 0 𝐻(𝜆2) 𝐹 𝜆0 𝐹 𝜆1 𝐹 𝜆2 = 𝑢 𝜆0 (0) 𝑢 𝜆1 (0) 𝑢 𝜆2 (0) 𝑢 𝜆0 (1) 𝑢 𝜆1 (1) 𝑢 𝜆2 (1) 𝑢 𝜆0 (2) 𝑢 𝜆1 (2) 𝑢 𝜆2 (2) 𝐻(𝜆0)𝐹 𝜆0 𝐻(𝜆1)𝐹 𝜆1 𝐻(𝜆2)𝐹 𝜆2 = 𝑓 0 𝑓 1 𝑓 2 𝐹 𝝀 = 𝑢 𝜆0 (0) 𝑢 𝜆0 (1) 𝑢 𝜆0 (2) 𝑢 𝜆1 (0) 𝑢 𝜆1 (1) 𝑢 𝜆1 (2) 𝑢 𝜆2 (0) 𝑢 𝜆2 (1) 𝑢 𝜆2 (2) 𝑓(0) 𝑓(1) 𝑓(2) = 𝐹 𝜆0 𝐹 𝜆1 𝐹 𝜆2
  • 13. スペクトル上のフィルタがλのk次多項式と仮定 𝐻 𝜆𝑖 = 𝑝=0 𝐾 𝛼 𝑝 𝜆𝑖 𝑝 13 スペクトル上でのフィルタリング スペクトル上でのフィルタリング 上の式を書き換え 𝑓(𝑗) = 𝑖=0 𝑁−1 𝐹(𝜆𝑖) 𝐻(𝜆𝑖)𝑢 𝜆 𝑖 (𝑗) 𝐹(𝜆𝑖) = 𝒋=𝟎 𝑵−𝟏 𝑓(𝑗) 𝑢 𝜆 𝑖 ∗ (𝑗) 0 1 1 ( ) ( ) ( ) T N H H H                      U U f フィルタ グラフ上のフーリエ変換
  • 14. 14 スペクトル上でのフィルタリング 𝑓(𝑘) = 𝑖=0 𝑁−1 𝐹(𝜆𝑖) 𝐻(𝜆𝑖)𝑢 𝜆 𝑖 (𝑘) λのk次多項式フィルタ 𝐻 𝜆𝑖 = 𝑝=0 𝐾 𝛼 𝑝 𝜆 𝑝 グラフ上のフーリエ変換 𝐹(𝜆𝑖) = 𝑗=0 𝑁−1 𝑓(𝑗) 𝑢 𝜆 𝑖 ∗ (𝑗) 空間上でのフィルタリング 𝑓(𝑘) = 𝑎 𝑘𝑘 𝑓 𝑘 + 𝑗𝜖 𝑵 𝑘 𝑎 𝑘𝑗 𝑓(𝑗) 1 0 ( ) ( ) ( ) ( )i N i ii f k F H u k      λλ λ 1 1 * 0 0 0 ( ) ( ) ( )i i N K N p ij p i f j u j u k         p λ λα λ スペクトル上でのフィルタリング
  • 15. • 橙枠はグラフラプラシアン L の p 乗 𝑳 𝑝 = 𝑼𝜦 𝑝 𝑼 𝑻 1 1 * 0 0 0 1 0 0 ( ) ( ) ( ) ( ) ( ) i i N K N p ij p i N K p kjj p f j u j u k f j L                p λ λ p α λ α 1 0 ( ) ( ) ( ) ( )i N i ii f k F H u k      λλ λ 15 スペクトル上でのフィルタリング スペクトル上でのフィルタリング 𝑓(𝑘) = 𝑖=0 𝑁−1 𝐹(𝜆𝑖) 𝐻(𝜆𝑖)𝑢 𝜆 𝑖 (𝑘) λのk次多項式フィルタ 𝐻 𝜆𝑖 = 𝑝=0 𝐾 𝛼 𝑝 𝜆 𝑝 グラフ上のフーリエ変換 𝐹(𝜆𝑖) = 𝑗=0 𝑁−1 𝑓(𝑗) 𝑢 𝜆 𝑖 ∗ (𝑗) 空間上でのフィルタリング 𝑓(𝑘) = 𝑎 𝑘𝑘 𝑓 𝑘 + 𝑗𝜖 𝑵 𝑘 𝑎 𝑘𝑗 𝑓(𝑗)
  • 16. • 橙枠はグラフラプラシアン L の p 乗 𝑳 𝑝 = 𝑼𝜦 𝑝 𝑼 𝑻 1 1 * 0 0 0 1 1 * 0 0 0 1 0 0 ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) i i i i N N K p ii j p N K N p ij p i N K p kjj p f j u j u k f j u j u k f j L                         λ p λ p λ λ p α λ α λ α 1 0 ( ) ( ) ( ) ( )i N i ii f k F H u k      λλ λ 16 スペクトル上でのフィルタリング 𝐿 𝑝 = 𝑢 𝜆0 (0) 𝑢 𝜆0 (1) 𝑢 𝜆0 (2) 𝑢 𝜆1 (0) 𝑢 𝜆1 (1) 𝑢 𝜆1 (2) 𝑢 𝜆2 (0) 𝑢 𝜆2 (1) 𝑢 𝜆2 (2) 𝜆0 𝑝 0 0 0 𝜆1 𝑝 0 0 0 𝜆2 𝑝 𝑢 𝜆0 ∗ (0) 𝑢 𝜆1 ∗ (0) 𝑢 𝜆2 ∗ (0) 𝑢 𝜆0 ∗ (1) 𝑢 𝜆1 ∗ (1) 𝑢 𝜆2 ∗ (1) 𝑢 𝜆0 ∗ (2) 𝑢 𝜆1 ∗ (2) 𝑢 𝜆2 ∗ (2) = 𝑢 𝜆0 (0) 𝑢 𝜆0 (1) 𝑢 𝜆0 (2) 𝑢 𝜆1 (0) 𝑢 𝜆1 (1) 𝑢 𝜆1 (2) 𝑢 𝜆2 (0) 𝑢 𝜆2 (1) 𝑢 𝜆2 (2) 𝑢 𝜆0 ∗ (0)𝜆0 𝑝 𝑢 𝜆1 ∗ (0)𝜆0 𝑝 𝑢 𝜆2 ∗ (0)𝜆0 𝑝 𝑢 𝜆0 ∗ (1)𝜆1 𝑝 𝑢 𝜆1 ∗ (1)𝜆1 𝑝 𝑢 𝜆2 ∗ (1)𝜆1 𝑝 𝑢 𝜆0 ∗ (2)𝜆2 𝑝 𝑢 𝜆1 ∗ (2)𝜆2 𝑝 𝑢 𝜆2 ∗ (2)𝜆2 𝑝
  • 17. スペクトル上でのフィルタリング 𝑳 𝑝 = 𝑼𝜦 𝑝 𝑼 𝑻 𝑎 𝑘𝑗 = 𝑝=0 𝐾 𝛼 𝑝(𝐿 𝑝) 𝑘𝑗 空間上でのフィルタリング 𝑓(𝑘) = 𝑗𝜖 𝑵 𝑘 𝑎 𝑘𝑗 𝑓(𝑗) • スペクトル上でも空間上でのフィルタリングと 同じことを行うことが可能であると示された 空間上でのフィルタリング • 注目ノードとその隣接ノードにフィルタ係数を かけて和を求めること 17 スペクトル上でのフィルタリング 1 1 * 0 0 0 1 0 0 ( ) ( ) ( ) ( ) ( ) i i N K N p ij p i N K p kjj p f j u j u k f j L                p λ λ p α λ α 1 0 ( ) ( ) ( ) ( )i N i ii f k F H u k      λλ λ (1) (2) 𝑎 𝑘𝑗 スペクトル領域上でフィルタ (式1) 𝑎 𝑘𝑗 空間上でのフィルタ (式2) =
  • 18. スペクトル領域上での畳み込み 𝒚 = 𝑼𝑔 𝜃 𝜦 𝑼 𝑻 𝒙 = 𝑔 𝜃 𝑼𝜦𝑼 𝑻 𝒙 = 𝑔 𝜃 𝑳 𝒙 • フィルタ𝑔 𝜃(𝑳) 𝑔 𝜃(𝑳)= 𝑘=0 𝐾−1 𝜃 𝑘 𝑳 𝑘 • 𝑎 𝑘𝑗 を学習することで, 注目ノードからKステップ離れたノードまで を畳み込む グラフ上でのフィルタリングからグラフ上の畳み込みへの導出 18 スペクトル領域上でのフィルタリング • フィルタ 𝑎 𝑘𝑗 𝑎 𝑘𝑗 = 𝑝=0 𝐾 𝛼 𝑝(𝐿 𝑝) 𝑘𝑗 • ノードkに対してpステップで行ける ノードに対してフィルタリングできる 1 1 * 0 0 0 1 0 0 ( ) ( ) ( ) ( ) ( ) i i N K N p ij p i N K p kjj p f j u j u k f j L                p λ λ p α λ α 1 0 ( ) ( ) ( ) ( )i N i ii f k F H u k      λλ λ
  • 20. 𝒚 = 𝑼𝑔 𝜃 𝜦 𝑼 𝑻 𝒙 = 𝑔 𝜃 𝑳 𝒙 • フィルタ𝑔 𝜃(𝑳) 𝑔 𝜃(𝑳)= 𝑘=0 𝐾−1 𝜃 𝑘 𝑳 𝑘 • 𝜃 𝑘(k = 0 ~ K-1)を学習される重み • 注目ノードからkステップ離れたノードまでを畳み込む • 1回畳み込みこむために𝑳 𝑘 の計算を行う必要がある (𝑳 𝑘 はノード数の 2 乗の k 乗の計算量) ➡ 層を重ねると計算量が増大 スペクトル領域上での畳み込み 20 フーリエ変換 フーリエ逆変換
  • 21. スペクトル領域上での畳み込み 𝒚 = 𝑼𝑔 𝜃 𝜦 𝑼 𝑻 𝒙 = 𝑔 𝜃 𝑳 𝒙 • フィルタ𝑔 𝜃(𝑳) 𝑔 𝜃(𝑳)= 𝑘=0 𝐾−1 𝜃 𝑘 𝑳 𝑘 • 𝜃 𝑘(k = 0 ~ K-1)を学習することで, 注目ノードからkステップ離れたノードまで を畳み込む Chevnetについて 21 Chevnetの畳み込みは 𝑔 𝜃(𝑳) をチェビシェフ多項式T𝑘 ( 𝐿)に置換 𝑔 𝜃(𝑳) 𝒙 = 𝑘=0 𝐾−1 𝜃 𝑘T𝑘 ( 𝑳) • T𝑘 𝑳 = 2 𝑳T𝑘−1( 𝑳) - T𝑘−2( 𝑳) • T0 𝑳 = 1, T1 𝑳 = 𝑳 • グラフラプラシアンをリスケーリング • 𝑳 = 2 𝜆 𝑚𝑎𝑥 𝑳 − 𝑰 𝑁
  • 22. • 正規化ラプラシアン • 固有値 𝛬 が 0 ~ 2 までの範囲になる 𝑫− 𝟏 𝟐 𝑨𝑫− 𝟏 𝟐 • 𝐿 について • 固有値 𝛬 が -1 ~ 1 までの範囲になる 𝑳 = 2 𝜆 𝑚𝑎𝑥 𝑳 − 𝑰 𝑁 𝐿 について 22
  • 23. 𝒚 = 𝑔 𝜃 𝑳 𝒙 = 𝑔 𝜃 𝑼𝜦𝑼 𝑻 𝒙 = 𝑼𝑔 𝜃 𝜦 𝑼 𝑻 𝒙 • スペクトル上での畳み込みは 1. ノードの情報のフーリエ変換 → 各基底(固有ベクトル)上の信号に変換 2. 基底別(固有値別)にフィルタをかける 3. 逆フーリエ変換(固有ベクトルの積) Chevnetでの 𝑔 𝜃 𝑳 は 𝑼𝑔 𝜃(𝚲)𝑼 𝑻 𝒙 = 𝑘=0 𝐾−1 𝜃 𝑘 𝑼T𝑘 ( 𝚲)𝑼 𝑻 𝒙 固有値との関係 23 T𝑘 𝑳 ① ② ③
  • 24. グラフ構造の変化に弱い • グラフ構造が変化すると基底が変化する • グラフラプラシアンは隣接行列で変化 • 基底はグラフラプラシアンの固有ベクトル • 学習するデータのグラフ構造が変化する ➡ 固有ベクトル(基底)が変化 ➡ 同じノード情報でも信号が変化 ➡ 学習が不安定になる 1畳み込み1次元分のノード情報しか畳み込めない • チャネル方向の畳み込みが不可能 • 1つのノード情報が n 次元 ➡ 畳み込みユニットを n 個用意する必要がある ➡ 計算量増大 Chevnetの問題点 24
  • 25. 実験 • ユークリッド構造のデータ • MNIST • 非ユークリッドのデータ • 20NEWS Chevnetで行われていた実験 25
  • 26. 実験 • MNISTをグラフ化しグラフそのものを分類 • ノード数 : 976(784(28×28)ピクセルと192個の偽ノード) • 偽ノード • pooling時にクラスタリングするノードがないときにグループ化させるためのノード • 接続を持たない➡フィルタ学習に影響しない • エッジ数 : 3198 • エッジはk-NNグラフ化(8-NN)で決められる • 8-NNつまり注目ノードの最も近い8近傍が選ばれて接続される • CNNと同じモデル構造でChevnetが近い精度を出した ユークリッド構造のデータでの実験 26 ドロップアウト : 0.5 正則化重み : 5*10-4 初期学習率 : 0.03 学習率減衰率 : 0.95 モーメンタム : 0.9 CNNフィルタ : 5*5 Chevnetフィルタ : K = 25 エポック数 : 20
  • 27. 実験 • データセット : 20NEWS Dataset(テキスト分類・クラスタリングに用いるデータセット) • ノード数 : 10000 (word2vec埋め込み) • エッジ数 : 132834 ( 16-NNで構築 ) (それぞれのクラスの文書特有のユニークワード1000語を抽出) • 各文書 x は単語間で正規化された bag-of-words モデル • モデル : GC32 ( K = 5 , 1層 ) • タスク : テキスト分類(グラフ分類) • 全結合よりはいい 非ユークリッド構造のデータでの実験 27 初期学習率 : 0.001 Chevnetフィルタ : K = 5 エポック数 : 20 最適化手法 : Adam
  • 29. Chevnetの畳み込み • 一回の畳み込みで注目ノードから k 近傍のノードを畳み込める 𝑔 𝜃(𝑳) 𝒙 = 𝑘=0 𝐾−1 𝜃 𝑘T𝑘 ( 𝑳) T𝑘 𝑳 = 2𝑥T𝑘−1( 𝑳) − T𝑘−2( 𝑳) T0 𝑳 = 1, T1 𝑳 = 𝑳 ①上式を𝑳に対して線形に限定(𝐾 = 2)( 𝑳 は非正規化ラプラシアン) 𝑔 𝜃 𝑳 𝒙 = 𝜃0T0 𝑳 + 𝜃1T1 (𝑳) T0 𝑳 = 1, T1 𝑳 = 𝑳 𝑔 𝜃 𝑳 𝒙 = 𝜃0 + 𝜃1 𝑳 𝒙 GCNのConvolutionの導出 29
  • 30. ①ChevNetのConvを𝑳に対して線形に限定し単純化 𝑔 𝜃 𝑳 𝒙 = 𝜃0 + 𝜃1 𝑳 𝒙 = 𝜃0 𝒙 + 𝜃1 𝑰 𝑁 − 𝑫− 𝟏 𝟐 𝑨𝑫− 𝟏 𝟐 𝒙 ≈ 𝜃0 𝒙 − 𝜃1 𝑫− 𝟏 𝟐 𝑨𝑫− 𝟏 𝟐 𝒙 • 1層で注目ノードに対して 1 エッジ分の隣接ノードを畳み込み可能 • 層を k 回重ねることで k エッジ分の隣接ノードを畳み込み可能 • 学習可能なパラメータ 𝜃0 , 𝜃1 GCNのConvolutionの導出 30
  • 31. ①ChevNetのConvを𝑳に対して線形に限定し単純化 𝑔 𝜃 𝑳 𝒙 = 𝜃0 + 𝜃1 𝑳 𝒙 = 𝜃0 𝒙 + 𝜃1 𝑰 𝑁 − 𝑫− 𝟏 𝟐 𝑨𝑫− 𝟏 𝟐 𝒙 = 𝜃0 𝒙 + 𝜃1 𝑰 𝑁 𝒙+𝜃1 −𝑫− 𝟏 𝟐 𝑨𝑫− 𝟏 𝟐 𝒙 ≈ 𝜃0 𝒙 − 𝜃1 𝑫− 𝟏 𝟐 𝑨𝑫− 𝟏 𝟐 𝒙 GCNのConvolutionの導出 31 𝑰 − 𝑫− 𝟏 𝟐 𝑨𝑫− 𝟏 𝟐 𝒊𝒋 = 𝑳𝒊𝒋 = 1 − 1 𝑑𝑒𝑔(𝑣 𝑖)𝑑𝑒𝑔(𝑣 𝑗) 0 𝑖 = 𝑗 𝑎𝑛𝑑 𝑑𝑒𝑔(𝑣𝑖) ≠ 0 𝑖 ≠ 𝑗 𝑎𝑛𝑑 𝑣𝑖 𝑖𝑠 𝑎𝑑𝑗𝑎𝑐𝑒𝑛𝑡 𝑡𝑜 𝑣𝑗 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒
  • 32. ChevNetのConvを𝑳に対して線形に限定し単純化する 𝒚 = 𝑔 𝜃 𝑳 𝒙 ≈ 𝜃0 𝒙 − 𝜃1 𝑫− 𝟏 𝟐 𝑨𝑫− 𝟏 𝟐 𝒙 ②上式に対して 𝜃0 = −𝜃1 とパラメータ数を制限 𝑔 𝜃 𝑳 𝒙 ≈ 𝜃0 𝒙 − 𝜃1 𝑫− 𝟏 𝟐 𝑨𝑫− 𝟏 𝟐 𝒙 ≈ 𝜃 𝐼 𝑁 + 𝑫− 𝟏 𝟐 𝑨𝑫− 𝟏 𝟐 𝒙 • オーバーフィッティング対策 • レイヤごとの演算(行列乗算など)を最小限に抑える GCNのConvolutionの導出 32 1つのノードの情報は1次元
  • 33. 𝐼 𝑁 − 𝑫− 𝟏 𝟐 𝑨𝑫− 𝟏 𝟐 と 𝐼 𝑁 + 𝑫− 𝟏 𝟐 𝑨𝑫− 𝟏 𝟐 の違い 33 𝑰 + 𝑫− 𝟏 𝟐 𝑨𝑫− 𝟏 𝟐 = 𝟏 𝟏 𝟐 𝟏 𝟐 𝟏 𝟐 𝟏 𝟎 𝟏 𝟐 𝟎 𝟏 = 𝟏 𝟎. 𝟕 𝟎. 𝟕 𝟎. 𝟕 𝟏 𝟎 𝟎. 𝟕 𝟎 𝟏 𝑰 − 𝑫− 𝟏 𝟐 𝑨𝑫− 𝟏 𝟐 𝒊𝒋 = 𝑳𝒊𝒋 = 1 − 1 𝑑𝑒𝑔(𝑣𝑖)𝑑𝑒𝑔(𝑣𝑗) 0 𝑖 = 𝑗 𝑎𝑛𝑑 𝑑𝑒𝑔(𝑣𝑖) ≠ 0 𝑖 ≠ 𝑗 𝑎𝑛𝑑 𝑣𝑖 𝑖𝑠 𝑎𝑑𝑗𝑎𝑐𝑒𝑛𝑡 𝑡𝑜 𝑣𝑗 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 𝑰 − 𝑫− 𝟏 𝟐 𝑨𝑫− 𝟏 𝟐 = 𝟏 − 𝟏 𝟐 − 𝟏 𝟐 − 𝟏 𝟐 𝟏 𝟎 − 𝟏 𝟐 𝟎 𝟏 = 𝟏 −𝟎. 𝟕 −𝟎. 𝟕 −𝟎. 𝟕 𝟏 𝟎 −𝟎. 𝟕 𝟎 𝟏 0 1 2 0 0 1 1 1 1 0 0 2 1 0 0 隣接行列 A 𝑰 + 𝑫− 𝟏 𝟐 𝑨𝑫− 𝟏 𝟐 𝒊𝒋 = 𝑳𝒊𝒋 = 1 1 𝑑𝑒𝑔(𝑣𝑖)𝑑𝑒𝑔(𝑣𝑗) 0 𝑖 = 𝑗 𝑎𝑛𝑑 𝑑𝑒𝑔(𝑣𝑖) ≠ 0 𝑖 ≠ 𝑗 𝑎𝑛𝑑 𝑣𝑖 𝑖𝑠 𝑎𝑑𝑗𝑎𝑐𝑒𝑛𝑡 𝑡𝑜 𝑣𝑗 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 0 1 2 正規化ラプラシアンとほぼ同じ
  • 34. 𝑔 𝜃 𝑳 𝒙 ≈ 𝜃 𝑰 𝑁 + 𝑫− 𝟏 𝟐 𝑨𝑫− 𝟏 𝟐 𝒙 • 𝑰 𝑁 + 𝑫− 𝟏 𝟐 𝑨𝑫− 𝟏 𝟐 は 0 ≤ 𝜆 𝑚𝑎𝑥 ≤ 2 の最大固有値を持つ • 𝑰 𝑁 + 𝑫− 𝟏 𝟐 𝑨𝑫− 𝟏 𝟐 を繰り返すと数値的に不安定になる ➡ 勾配爆発/消失につながる ➡ ”renormalization trick” を使用して軽減させる 𝑰 𝑁 + 𝑫− 𝟏 𝟐 𝑨𝑫− 𝟏 𝟐 → 𝑫− 𝟏 𝟐 𝑨 𝑫− 𝟏 𝟐 𝑨 = 𝑨 + 𝑰 𝑁 𝑫 = 𝒋 𝑨𝒊𝒋 GCNのConvolutionの導出 34
  • 35. ③GCN 𝒚 = 𝑨𝒙Θ = 𝑫− 𝟏 𝟐 𝑨 𝑫− 𝟏 𝟐 𝒙Θ • Θ をフィルタ行列とする ➡ 1つのノードのノード情報が多次元情報でも1回の計算で畳み込み可能 GCNのConvolutionの導出 35
  • 36. GCNのConvolutionについて 次の例で考える 0 1 2 0 0 1 1 1 1 0 0 2 1 0 0 隣接行列 A 0 1 2
  • 37. GCNのConvolutionについて 37 𝑫− 𝟏 𝟐 𝑨 𝑫− 𝟏 𝟐 𝒊𝒋 = 1 𝑑𝑒𝑔 𝑣 𝑖 +1 𝑑𝑒𝑔(𝑣 𝑖)+1) 1 𝑑𝑒𝑔 𝑣 𝑖 +1 𝑑𝑒𝑔(𝑣 𝑗)+1) 0 𝑖 = 𝑗 𝑎𝑛𝑑 𝑑𝑒𝑔(𝑣𝑖) ≠ 0 𝑖 ≠ 𝑗 𝑎𝑛𝑑 𝑣𝑖 𝑖𝑠 𝑎𝑑𝑗𝑎𝑐𝑒𝑛𝑡 𝑡𝑜 𝑣𝑗 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 𝑫− 𝟏 𝟐 𝑨 𝑫− 𝟏 𝟐 = 𝟏 𝟑 𝟏 𝟔 𝟏 𝟔 𝟏 𝟔 𝟏 𝟐 𝟎 𝟏 𝟔 𝟎 𝟏 𝟐 = 𝟎. 𝟑 𝟎. 𝟒 𝟎. 𝟒 𝟎. 𝟒 𝟎. 𝟓 𝟎 𝟎. 𝟒 𝟎 𝟎. 𝟓 0 1 2 0 0 1 1 1 1 0 0 2 1 0 0 隣接行列 A • 𝑫− 𝟏 𝟐 𝑨 𝑫− 𝟏 𝟐 のそれぞの要素は 2つのノードの関係(エッジ)の関係を 表している • 注目ノードと隣接ノードの接続数が多い ➡ 𝑫− 𝟏 𝟐 𝑨 𝑫− 𝟏 𝟐 の要素値は小さい値をとる • 注目ノードと隣接ノードの接続数が少ない ➡ 𝑫− 𝟏 𝟐 𝑨 𝑫− 𝟏 𝟐 の要素値は大きい値をとる • つまり,注目ノードと隣接ノード数が少ない ノード情報を重視する
  • 38. GCNのConvolutionについて 38 𝑫− 𝟏 𝟐 𝑨 𝑫− 𝟏 𝟐 𝒊𝒋 = 1 𝑑𝑒𝑔 𝑣 𝑖 +1 𝑑𝑒𝑔(𝑣 𝑖)+1) 1 𝑑𝑒𝑔 𝑣 𝑖 +1 𝑑𝑒𝑔(𝑣 𝑗)+1) 0 𝑖 = 𝑗 𝑎𝑛𝑑 𝑑𝑒𝑔(𝑣𝑖) ≠ 0 𝑖 ≠ 𝑗 𝑎𝑛𝑑 𝑣𝑖 𝑖𝑠 𝑎𝑑𝑗𝑎𝑐𝑒𝑛𝑡 𝑡𝑜 𝑣𝑗 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 𝑫− 𝟏 𝟐 𝑨 𝑫− 𝟏 𝟐 = 𝟏 𝟑 𝟏 𝟔 𝟏 𝟔 𝟏 𝟔 𝟏 𝟐 𝟎 𝟏 𝟔 𝟎 𝟏 𝟐 = 𝟎. 𝟑 𝟎. 𝟒 𝟎. 𝟒 𝟎. 𝟒 𝟎. 𝟓 𝟎 𝟎. 𝟒 𝟎 𝟎. 𝟓 𝑰 − 𝑫− 𝟏 𝟐 𝑨𝑫− 𝟏 𝟐 𝒊𝒋 = 𝑳𝒊𝒋 = 1 − 1 𝑑𝑒𝑔(𝑣𝑖)𝑑𝑒𝑔(𝑣𝑗) 0 𝑖 = 𝑗 𝑎𝑛𝑑 𝑑𝑒𝑔(𝑣𝑖) ≠ 0 𝑖 ≠ 𝑗 𝑎𝑛𝑑 𝑣𝑖 𝑖𝑠 𝑎𝑑𝑗𝑎𝑐𝑒𝑛𝑡 𝑡𝑜 𝑣𝑗 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 𝑰 − 𝑫− 𝟏 𝟐 𝑨𝑫− 𝟏 𝟐 = 𝟏 − 𝟏 𝟐 − 𝟏 𝟐 − 𝟏 𝟐 𝟏 𝟎 − 𝟏 𝟐 𝟎 𝟏 = 𝟏 −𝟎. 𝟕 −𝟎. 𝟕 −𝟎. 𝟕 𝟏 𝟎 −𝟎. 𝟕 𝟎 𝟏 0 1 2 0 0 1 1 1 1 0 0 2 1 0 0 隣接行列 Aを下のように定義した時の 𝑫− 𝟏 𝟐 𝑨 𝑫− 𝟏 𝟐と正規化ラプラシアンの比較 隣接行列 A
  • 39. GCNのConvolutionについて 𝑫− 𝟏 𝟐 𝑨 𝑫− 𝟏 𝟐 𝒙 は自己ノードとその隣接ノード情報を集める • 橙枠の計算を行うとき、 • 自己ノード : 1 𝑑𝑒𝑔 𝑣 𝑖 +1 deg(𝑣 𝑖) +1) × 自己ノード情報 • 隣接ノード : 1 𝑑𝑒𝑔 𝑣 𝑖 +1 𝑑𝑒𝑔(𝑣 𝑗) +1) × 隣接ノード情報 • 接続していないノード : 0 × ノード情報 𝑫− 𝟏 𝟐 𝑨 𝑫− 𝟏 𝟐 𝒙 = 𝟎. 𝟑 𝟎. 𝟒 𝟎. 𝟒 𝟎. 𝟒 𝟎. 𝟓 𝟎 𝟎. 𝟒 𝟎 𝟎. 𝟓 𝟓 𝟕 𝟖 𝟏 𝟑 𝟒 = 𝟓. 𝟗 𝟒. 𝟏 𝟔 𝟑. 𝟑 𝟑. 𝟓 𝟒. 𝟖 39 0 1 2 注目ノードと隣接ノードの関係を表す正規化定数(エッジ重み)
  • 40. 𝑫− 𝟏 𝟐 𝑨 𝑫− 𝟏 𝟐 𝒙𝑾 = 𝟓. 𝟗 𝟒. 𝟏 𝟔 𝟑. 𝟑 𝟑. 𝟓 𝟒. 𝟖 𝟏 𝟐 𝟑 𝟒 𝟓 𝟏 𝟐 𝟑 𝟒 𝟓 = 𝟏𝟎 𝟐𝟎 𝟑𝟎 𝟒𝟎 𝟓𝟎 𝟗. 𝟑 𝟏𝟖. 𝟔 𝟐𝟕. 𝟗 𝟑𝟕. 𝟐 𝟒𝟔. 𝟓 𝟖. 𝟑 𝟏𝟔. 𝟔 𝟐𝟒. 𝟗 𝟑𝟑. 𝟐 𝟒𝟏. 𝟓 1 2 3 4 5 1 2 3 4 5 ←畳み込む前のノードのチャネル ↑畳み込み後のノードのチャネル GCNのConvolutionについて • 𝑫− 𝟏 𝟐 𝑨 𝑫− 𝟏 𝟐 𝒙は自己ノードとその隣接ノード情報を集めた値だった • その値に対して重みをかけて計算した結果が畳み込み処理後の値となる • 空間的な畳み込みに近い 重み 𝑾 畳み込み後のノード3のノード情報↑↑重み𝑾↑ 𝑫− 𝟏 𝟐 𝑨 𝑫− 𝟏 𝟐 𝒙 0 1 2 40
  • 41. 𝑫− 𝟏 𝟐 𝑨 𝑫− 𝟏 𝟐が固定値 • 注目ノードに対するそれぞれの隣接ノードが必要不必要関係なく統合されてしまう ➡注目ノードと隣接ノードの値から求められるようにパラメータ化できれば理想 空間方向の局所的な畳み込みができていない • 畳み込み演算を行うときに 𝑫− 𝟏 𝟐 𝑨 𝑫− 𝟏 𝟐 𝒙 で注目・隣接ノード情報を集めてしまう ➡ それぞれのノードに対して重みをかけられない チャネルの方向および空間方向の畳み込むにしてはパラメータが少ない • CNNに使用するConvolution だと畳み込みフィルタがチャネルごとに分かれている • GCNのほうはConvolution前のチャネル数× Convolutionあとのチャネル数しかない ➡ 著者曰く画像のようなデータに対してはモデルが貧弱 GCNのGraph Convolutionの問題点 41
  • 43. データセット • 文書引用ネットワークのデータセット : Citeseer, Cora, Pubmed • ノード : 文書データ • エッジ : 引用リンク(文書 I が文書 j を引用した場合2つのエッジは1(接続)) • ノードのクラス = 文書の内容別クラス GCNで行われていた実験 43
  • 44. データセット • 知識グラフのデータセット : NELL • ノード : 単語(ベクトル表現) • エッジ : 関係 • ノードのクラス例 • Tront, Canada : country GCNで行われていた実験 44
  • 45. GCNで行われていた実験 45 • GCNモデル構造 : GCN2層 𝑍 = 𝑓 𝑋, 𝐴 = 𝑠𝑜𝑓𝑡𝑚𝑎𝑥 𝐴 𝑅𝑒𝐿𝑈 𝐴𝑋𝑊(0) 𝑊(1)

Editor's Notes

  • #3: ノードの情報は 行ごとに入っている
  • #5: グラフラプラシアンというグラフの構造に依存した行列の固有値固有ベクトルを用いてフーリエ変換を行う 固有値 λ 𝒊 :グラフ周波数 固有ベクトル 𝒖 λ 𝒊 :フーリエ基底 になってます グラフのノード情報のベクトルに対して基底ベクトルとの内積をとることでその周波数成分が取り出せる 後でフーリエ変換で使用するので説明しておく ーーーーーーーーーーーーーーーーーーーー 基底とは 与えられたベクトル空間の全てのベクトルを表すことができるものを言う ベクトル空間に基底が与えられれば、その空間の元は必ず基底ベクトルの線型結合としてただ一通りに表すことができる ーーーーーーーーーーーーーーーーーーーーーーー 固有値(グラフ周波数)が 大きい➡固有ベクトルは激しく振動 小さい➡固有ベクトルは緩やかに振動
  • #6: 後でフーリエ変換で使用するので説明しておく フーリエ変換とラプラシアンの関係があるように グラフフーリエ変換もグラフラプラシアンと関係がありますが その関係はまだ理解できていません ここではフーリエ変換するためにグラフラプラシアンを使用するという理解でもいいと思います ーーーーーーーーーーーーーーーーーーーーーー 個人的に正規化することでフィルタリングがしやすくなるのではないか
  • #7: 逆フーリエ変換後のノードkの情報
  • #8: 逆フーリエ変換後のノードkの情報 N:ノード数
  • #9: 逆フーリエ変換後のノードkの情報
  • #10: ・λにおける応答が 通常の周波数特性に対応する
  • #16: オレンジの部分はラプラシン行列Lのp乗になる
  • #17: オレンジの部分はラプラシン行列Lのp乗になる
  • #18: Kの数は近似したλ多項式の数と一致 Kは複数ある
  • #19: フィルタ 𝑎 𝑘𝑗 は行列Lが定数なのでフィルタ係数はαpであり、この操作で注目ノードにと注目ノードからpステップで行けるノードをまとめてフィルタリング処理をする スペクトル上での畳み込みは左側での式のαpを学習させればいいじゃんという考えでできたもの スペクトル上でのグラフコンボリューションはこれが始まりのきっかけ
  • #20: 改めてchevnetに注目
  • #21: 漸化式 T 𝑘 𝐿 = 2𝑥T 𝑘−1 ( 𝐿 ) - T 𝑘−2 ( 𝐿 )
  • #22: Chevnetはスペクトル上での畳み込みで問題だった計算量の増大をチェビシェフの多項式にすることで抑えた 漸化式 T 𝑘 𝐿 = 2𝑥T 𝑘−1 ( 𝐿 ) - T 𝑘−2 ( 𝐿 ) この近似はグラフ信号処理でよく行われている Cosnθはcosθのn次多項式式で近似可能 そのn次多項式は漸化式 Tn(x)  を満たす
  • #23: 理由はあとで
  • #24: チェビシェフにしても グラフラプラシアンを使用しているので 固有値固有ベクトル関係してますよ
  • #25: 固有値を-1 ~ 1 にしてできるだけ変化しないように抑えているが
  • #28: 各文書xは単語間で正規化されたbag-of-wordsモデル 我々のモデルをテストするために用いて16-NNグラフを構築 各単語の意味をベクトル表現化する手法
  • #29: 最も使用率の高いGraphConvolution これを改善したとかエンコーダデコーダモデルを作ったりといろいろ利用されていることが多い
  • #30: K=2はシグマのK-1のところのK
  • #31: 余因子行列  𝐿
  • #32: 𝑰− 𝑫 − 𝟏 𝟐 𝑨 𝑫 − 𝟏 𝟐  から  𝑫 − 𝟏 𝟐 𝑨 𝑫 − 𝟏 𝟐 への単純化は Θ0でのところに I はあるからそれほど変化しない ・ 𝜃 0 𝒙+ 𝜃 1 𝑰 𝑁 𝒙+ 𝜃 1 − 𝑫 − 𝟏 𝟐 𝑨 𝑫 − 𝟏 𝟐 𝒙 𝜃 0 𝒙と 𝜃 1 𝑰 𝑁 𝒙を 𝜃 0 𝒙にまとめた
  • #33: 正規化ラプラシアンのすべてに要素に同じ重み 𝜃 0 をかける すべての要素に同じ重み 𝜃 1 を加える
  • #34: 𝑰− 𝑫 − 𝟏 𝟐 𝑨 𝑫 − 𝟏 𝟐 は正規化ラプラシアン 𝑰+ 𝑫 − 𝟏 𝟐 𝑨 𝑫 − 𝟏 𝟐 は正規化ラプラシアンの要素が同じですべて正
  • #35: ここはよくわからない
  • #36: 余因子行列  𝐿
  • #37: 別の見方で説明する 計算に注目してみる
  • #38: GCNはは同じエポック数で約72秒
  • #39: 0の位置以外はほぼ違う スペクトルと空間の中間のような状態
  • #40: GCNはは同じエポック数で約72秒
  • #41: GCNはは同じエポック数で約72秒
  • #42: 固有値を-1 ~ 1 にしてできるだけ変化しないように抑えているが複数のGCNレイヤを積み重ねると、過度に平滑化されます。つまり、すべての頂点が同じ値に収束します。
  • #43: 固有値を-1 ~ 1
  • #44: 隣接ノードが似たような特徴を持っているので 2層でいい 文書データ:bag of words 引用ネットワークデータセットでは、 Coraのみでハイパーパラメータを最適化 CiteseerとPubmedに対して同じパラメータセットを使用します。 Adam 学習率0.01 ウィンドウサイズ10で早期停止 (例:検証の損失が10の連続したエポックで減少しなければ、トレーニングを中止します。) 最大200エポック(トレーニング反復)のすべてのモデルを訓練 Glorot&Bengio(2010)で説明した初期化を使用して重みを初期化 それに応じて(行)正規化入力フィーチャベクトルを使用 Citeseer, Cora, Pubmed 0.5(ドロップアウト率) L2正則化 16(隠れ層のチャネル数) NELL 0.1(ドロップアウト率) L2正則化 64(隠れ層のチャネル数)
  • #45: もともとこのようなグラフがある ノードには単語 エッジには例えばトヨタとGMがライバル関係にある とか Skydomeはカナダのcitystadiumだよみたいな感じで 意味情報を使用せずその接続だけを利用する データセットの中にノードのクラスデータが入っているのでそれでノード分類を学習する 例えばトロントとカナダはカントリークラスのようなかんじで
  • #46: 余因子行列  𝐿
  • #47: データセットが似たようなノードが接続されているので 2層つまり2エッジ分しか畳み込まなくてもいいような気がする ノードクラスタリングはグラフそのものを識別するよりも問題が簡単
  翻译: