0. 포인트 클라우드 여기 의자가 있다. 접이식 철제 의자인 이 물체에 대해 움직여가며 특정 부분에 점을 찍는다고 생각해보자. 표면에도 찍고 손으로는 만질 수 없지만 내부에도 찍을 수 있다면, 이렇게 찍힌 무수히 많은 점들은 결국 접이식 철제 의자의 형상을 나타내며 공간 상에 위치하게 될 것이다. 이렇게 3차원에 존재하는 대상을 여러 개의 점으로 표현한 형태를 포인트 클라우드(point cloud)라 한다. 포인트 클라우드를 구성하는
0. Graph Convolution GNN은 CNN과 유사하게 convolution 연산을 수행한다. 다만, 그래프의 불규칙한 구조를 반영할 수 있도록 기존의 1D 또는 2D convolution가 아닌 graph convolution 연산을 사용한다. 아래 그림 출처) Graph convolution 연산의 핵심은 노드를 임베딩함에 있어 엣지로 연결된 노드들, 즉 이웃 노드들의 정보를 활용하는 것이다. 하나의 중심 노드에 대해, 그 노드가 이웃하는 노드들의 정보를 하나로 모아 중심 노드를 표현할 수 있는 벡터로 출력한다. 이러한 과정은 이웃 노드들이 엣지를 따라 중심 노드로 정보를 전달한다는 측면에서 **message passing
0. PyG Pytorch Geometric, 줄여서 PyG는 그래프 신경망(GNN)을 쉽게 작성하고 훈련할 수 있도록 PyTorch를 기반으로 구축된 라이브러리다. 그래프 혹은 불규칙한 구조에 대해 여러 논문에서 제안된 딥러닝 기법들로 구성되어 있다. 1. 데이터 1.1. 데이터 핸들링 PyG에서 다루는 데이터는 그래프다. 이에 따라 그래프를 torch_geometric.data.Data 클래스를 통해 데이터 형태로 변환한다. 예를 들어, 그림과 같이 3개의 노드로 구성된 그래프를 PyG에서 정의된 데이터로 변환해보자. 그래프 내의 노드들은 모두 1개의 feature를 갖고 있고, 이들 중 노드 0과 1, 노드 1과 2는 방향성이 없는 엣지로 연결되어 있다. 이러한 정보들을 텐서로 표
1. GNN 파이프라인 앞서 GNN 모델을 구성하는 요소들을 정리하였다. 이를 모델의 파이프라인으로 나타내면 다음과 같다. 모델은 그래프 데이터를 입력하여 레이블을 기준으로 예측을 수행하는 방향으로 진행된다. 이러한 전반적인 흐름은 크게 두 부분으로 나눠 볼 수 있다. 먼저 입력 그래프로부터 노드 임베딩을 연산하는 부분이 있고, 이렇게 산출된 노드 임베딩으로 분류와 같은 특정 task를 수행하는 부분이 있다. GNN 모델에서 특징적인 부분은 노드 임베딩을 연산하는 앞 부분이다. 앞서서는 이 부분을 구성하는 요소들에 대해 알아봤다면, 이번에는 다른 관점으로 접근한다. 2. GNN의 표현력 우선 GNN을 지칭하는데 있어, 전체 모델 내에서 노드 임베딩을 연산하는 부분으로 그 범위를 제한한다. 여기서 입력된
GNN 프레임워크 GNN 모델의 프레임워크에 대해 단계적으로 살펴보고 있다. > 1. Message : GNN 레이어에서 이웃 노드들로부터 메시지를 계산하는 방법 Aggregation : GNN 레이어에서 이웃 노드들의 메시지를 취합하는 방법 Layer connectivity : 신경망 형태로 만들기 위해 여러 레이어를 쌓는(연결하는) 방법 Graph augmentation : 입력 그래프를 적절하게 수정하는 방법 Learning objective : task에 따른 모델의 학습 방향 GNN 모
GNN 프레임워크 GNN 모델의 프레임워크에 대해 단계적으로 살펴보고 있다. > 1. Message : GNN 레이어에서 이웃 노드들로부터 메시지를 계산하는 방법 Aggregation : GNN 레이어에서 이웃 노드들의 메시지를 취합하는 방법 Layer connectivity : 신경망 형태로 만들기 위해 여러 레이어를 쌓는(연결하는) 방법 Graph augmentation : 입력 그래프를 적절하게 수정하는 방법 Learning objective : task에 따른 모델의 학습 방향 하나의 GNN 레이어는 1) Message computation과 2) Aggregation의 두 단계의 연산으로 구성되었다. 이
GNN 프레임워크 일반적인 GNN 모델의 프레임워크는 다음과 같다. GNN 모델의 디자인 요소는 크게 5가지로 나눠 볼 수 있다. > 1. Message : GNN 레이어에서 이웃 노드들로부터 메시지를 계산하는 방법 Aggregation : GNN 레이어에서 이웃 노드들의 메시지를 취합하는 방법 Layer connectivity : 신경망 형태로 만들기 위해 여러 레이어를 쌓는(연결하는) 방법 Graph augmentation : 입력 그래프를 적절하게 수정하는 방법 Learning objective : task에 따른 모델의 학습 방향 단계적으로 살펴보도록 하자. 1. GNN 레이어 GNN 레이어에서 연산은 (1) Message computation과 (2) Aggrega