3 / 51
Contents
Data Representation: Graph
Graph Structure
Graph Convolutional Network (GCN) 기초 개념
Advanced GCN 소개
BrainNetCNN 소개
전반적으로 아직 수학적인 내용을 음미하지 못했습니다
다음 기회에 세부적으로 상세한 내용을 다뤄 보겠습니다..!
4.
4 / 51
DataRepresentation
Image & Sequential Data
• 이미지: 2차원 평면에 그려진 시각적 표현 – 각각의 픽셀마다 값이 표현
• 시계열 데이터: 시간 별로 구성된 값의 집합
· 음성, 자연 언어, 센서 데이터, 주가 등
http://minecraftpixelartbuildingideas.blogspot.com/2013/02/basic-pixel-art-iron-man-collection.html#
http://matlabcode.blogspot.com/2007/06/blog-post_9726.html
5.
5 / 51
DataRepresentation
Graph
• 일부 객체들의 쌍들이 서로 연관된 객체의 집합을 이루는 구조
https://blog.searchmetrics.com/us/google-and-the-social-graph-more-data-to-feed-the-beast/
https://www.slideshare.net/LucBrun2/graph-kernels
https://www.neurobureau.org/matlab-handle-graphics-3/
6.
6 / 51
GraphStructure
Vertex (Node) 와 Edge 로 정의
종류
• Directed / Un-directed
• Weighted / Un-weighted
12/ 51
(Remind) Convolution
Convolution 연산의 특징
• 적은 수의 파라미터 (계산량이 적고, 오버피팅 위험도 적다)
• 지역적인 특성 학습
• Translational invariances
Convolutional Neural Network (CNN)
• CNN은 합성곱(convolution) 연산을 사용하는 네트워크로, 적합한
convolution (=weight, =filter) 값을 스스로 학습한다
• CNN은 각 레이어의 activation maps의 값들을 업데이트한다
13.
13/ 51
(Remind) Convolution
Convolution 연산의 특징
• 적은 수의 파라미터 (계산량이 적고, 오버피팅 위험도 적다)
• 지역적인 특성 학습
• Translational invariances
Convolutional Neural Network (CNN)
• CNN은 합성곱(convolution) 연산을 사용하는 네트워크로, 적합한
convolution (=weight, =filter) 값을 스스로 학습한다
• CNN은 각 레이어의 activation maps의 값들을 업데이트한다
이미지에 대한 CNN 연산을 그래프에 대해 적용한다면? GCN
15/ 51
Graph ConvolutionalNetwork (GCN)
CNN GCN
https://towardsdatascience.com/a-comprehensive-guide-to-convolutional-neural-networks-the-eli5-way-3bd2b1164a53
https://tkipf.github.io/graph-convolutional-networks/
각 레이어를 거치면서
Convolution 연산을 수행하고
픽셀 값을 업데이트
16.
16/ 51
Graph ConvolutionalNetwork (GCN)
CNN GCN
https://towardsdatascience.com/a-comprehensive-guide-to-convolutional-neural-networks-the-eli5-way-3bd2b1164a53
https://tkipf.github.io/graph-convolutional-networks/
각 레이어를 거치면서
Convolution 연산을 수행하고
픽셀 값을 업데이트
17.
17/ 51
Graph ConvolutionalNetwork (GCN)
CNN GCN
https://towardsdatascience.com/a-comprehensive-guide-to-convolutional-neural-networks-the-eli5-way-3bd2b1164a53
https://tkipf.github.io/graph-convolutional-networks/
각 레이어를 거치면서
Convolution 연산을 수행하고
픽셀 값을 업데이트
각 레이어를 거치면서
Convolution 연산을 수행하고
그래프 값을 업데이트
18.
18/ 51
Graph ConvolutionalNetwork (GCN)
CNN GCN
https://towardsdatascience.com/a-comprehensive-guide-to-convolutional-neural-networks-the-eli5-way-3bd2b1164a53
https://tkipf.github.io/graph-convolutional-networks/
각 레이어를 거치면서
Convolution 연산을 수행하고
픽셀 값을 업데이트
각 레이어를 거치면서
Convolution 연산을 수행하고
그래프 값을 업데이트
노드의 feature 값 업데이트
19.
19/ 51
Graph ConvolutionalNetwork
Concept (Example)
• 4 Nodes
• 5 Features for each node 1 1 1 1
1 1 0 0
1 0 1 0
1 0 0 1
Adjacency Matrix A (4 x 4)
Feature Matrix X (4 x 5)
1
2 3
4
20.
20/ 51
Graph ConvolutionalNetwork
Concept (Example)
• Want to update feature values
1
2 3
4
1
2 3
4
?
+ Weight Sharing
+ 주변 노드 정보 활용
28/ 51
Graph ConvolutionalNetwork
Update node feature values
1
2 3
4
(𝑙 + 1) 번째 레이어
1 1 1 1
1 1 0 0
1 0 1 0
1 0 0 1
Adjacency Matrix A (4 x 4)
Feature Matrix X (4 x 5)
29.
29/ 51
Graph ConvolutionalNetwork
How to update hidden states in GCN (Matrix 연산으로 이해하기)
1 1 0 0 1
1 1 1 1 1
0 1 1 1 0
0 1 1 1 1
1 1 0 1 1
Adjacency Matrix
A (5 x 5)
Feature Matrix
X = H0 (5 x 3)
(예시) 이름 성별 나이
각 노드는 3개의
feature 값을 갖는다
30.
30/ 51
Graph ConvolutionalNetwork
How to update hidden states in GCN (Matrix 연산으로 이해하기)
1 1 0 0 1
1 1 1 1 1
0 1 1 1 0
0 1 1 1 1
1 1 0 1 1
A (5 x 5) X = H0 (5 x 3)
W0 (3 x 4)
Weight filter 4개
𝐻(𝑙+1)
= 𝜎 𝑨𝑯(𝒍)
𝑾(𝒍)
+ 𝑏(𝑙)
Learnable Parameters
31.
31/ 51
Graph ConvolutionalNetwork
How to update hidden states in GCN (Matrix 연산으로 이해하기)
1 1 0 0 1
1 1 1 1 1
0 1 1 1 0
0 1 1 1 1
1 1 0 1 1
A (5 x 5) X * W0 (5 x 4)
𝐻(𝑙+1)
= 𝜎 𝐴𝑯(𝒍)
𝑾(𝒍)
+ 𝑏(𝑙)
32.
32/ 51
Graph ConvolutionalNetwork
How to update hidden states in GCN (Matrix 연산으로 이해하기)
1 1 0 0 1
1 1 1 1 1
0 1 1 1 0
0 1 1 1 1
1 1 0 1 1
A (5 x 5) X * W0 (5 x 4)
𝐻(𝑙+1)
= 𝜎 𝐴𝐻(𝑙)
𝑊(𝑙)
+ 𝑏(𝑙)
33.
33/ 51
Graph ConvolutionalNetwork
How to update hidden states in GCN (Matrix 연산으로 이해하기)
A * X * W0 (5 x 4)
𝐻(𝑙+1)
= 𝜎 𝑨𝑯(𝒍)
𝑾(𝒍)
+ 𝑏(𝑙)
34.
34/ 51
Graph ConvolutionalNetwork
How to update hidden states in GCN (Matrix 연산으로 이해하기)
1 1 0 0 1
1 1 1 1 1
0 1 1 1 0
0 1 1 1 1
1 1 0 1 1
A (5 x 5) X = H0 (5 x 3)
𝐻(𝑙+1)
= 𝜎 𝐴𝐻(𝑙)
𝑊(𝑙)
+ 𝑏(𝑙)
35.
35/ 51
Graph ConvolutionalNetwork
How to update hidden states in GCN (Matrix 연산으로 이해하기)
1 1 0 0 1
1 1 1 1 1
0 1 1 1 0
0 1 1 1 1
1 1 0 1 1
A (5 x 5) X = H0 (5 x 3)
𝐻(𝑙+1)
= 𝜎 𝐴𝐻(𝑙)
𝑊(𝑙)
+ 𝑏(𝑙)
1 1 0 0 1
1 1 1 1 1
0 1 1 1 0
0 1 1 1 1
1 1 0 1 1
A (5 x 5) H1 (5 x 4)
36.
36/ 51
Graph ConvolutionalNetwork
How to update hidden states in GCN (Matrix 연산으로 이해하기)
𝐻(𝑙+1)
= 𝜎 𝐴𝐻(𝑙)
𝑊(𝑙)
+ 𝑏(𝑙)
Adjacency Matrix
A (n x n)
Feature Matrix
X (n x f)
Weight Matrix
W (f x d)
(참고) n: 노드의 수 / f: 특징 수 / d: 필터수 (depth)
결국 d가 다음 레이어의 f 값이 된다
37.
37/ 51
Graph ConvolutionalNetwork
Readout: Permutation Invariance
노드 순서에 따라 값의 변동이 있을 수 있다
a
b
c
a b c d
d c a b
c
a
b
38.
38/ 51
Graph ConvolutionalNetwork
Readout: Permutation Invariance
노드 순서에 따라 값의 변동이 있을 수 있다
𝑧 𝐺 = 𝜎
𝑖∈𝐺
𝑀𝐿𝑃(𝐻𝑖
(𝑙)
)
Readout 방법 중 한가지: Node-wise summation
a
b
c
a b c d
d c a b
c
a
b
39.
39/ 51
Graph ConvolutionalNetwork
Readout: Permutation Invariance
a
b
c
a b c d
d c a b
c
a
b
노드 순서에 따라 값의 변동이 있을 수 있다
𝑧 𝐺 = 𝜎
𝑖∈𝐺
𝑀𝐿𝑃(𝐻𝑖
(𝑙)
)
Readout 방법 중 한가지: Node-wise summation
𝑀𝐿𝑃(𝐻𝑖
(𝑙)
) 𝜎
𝑖∈𝐺
∙
44/ 51
문득 떠오르는의문..?
Node의 feature 값 업데이트도 중요한 건 알겠는데,
Edge 값을 업데이트 하는 게 더 필요한 경우도 있지 않을까?
45.
45/ 51
BrainNetCNN
다중센서 신호 상관관계 (인접행렬) 정보가 중요한 경우가 있다
• Correlation-coefficient / Mutual Information, Coherence, Granger causality..
Racz, F. S. et al., (2018). Multifractal dynamics of resting-state functional connectivity in the prefrontal cortex. Physiological measurement, 39(2), 024003.
Kawahara, J. et al., (2017). BrainNetCNN: convolutional neural networks for brain networks; towards predicting neurodevelopment. NeuroImage, 146, 1038-1049.
46.
46/ 51
BrainNetCNN
인접행렬에적합한 컨벌루션 필터를 적용해서 CNN 적용하기
http://brainnetcnn.cs.sfu.ca/About.html
Kawahara, J. et al., (2017). BrainNetCNN: convolutional neural networks for brain networks; towards predicting neurodevelopment. NeuroImage, 146, 1038-1049.
49/ 51
갈 길은멀다
Zhou, J., Cui, G., Zhang, Z., Yang, C., Liu, Z., & Sun, M. (2018). Graph neural networks: A review of methods and applications. arXiv preprint arXiv:1812.08434.
50.
50/ 51
Summary
그래프(Node와 Edge) 로 표현되는 데이터의 Node feature 속성을
Edge값을 고려하여 충분히 이용하기 위해 GCN 을 사용한다
GCN의 연산에는 두 가지 input이 필요하고, Weight 를 학습해야 한다
• Adjacency Matrix (A), Node Feature Matrix (X)
Advanced GCN이 가능하다
• Skip-connection/ gate/ attention
Node feature 업데이트 뿐만 아니라, Edge feature 업데이트도 가능하다
• 데이터 특성과 필요한 기법에 따라 적용이 달라진다