본문 바로가기

전체 글127

CS224w - 09. Designing the Most Powerful Graph Neural Network Part 2 Designing the Most Powerful Graph Neural Network Injective aggregation function을 기반으로 구축된 GNN은 단일한 computational graph에 단일한 embedding을 제시할 수 있을 것입니다. Neighbor aggregatin function은 원소의 중복이 허용되는 집합인 multi-set의 function과 동등한 위계에 있습니다. 우리는 이 aggregation function에서 mean(GCN)이나 max(GraphSAGE)를 활용해왔습니다. 하지만 GCN의 mean-pool은 명확하게 injective하지 않습니다. Mean pool은 왼쪽의 예시처럼 황색/청색 원소가 각각 1개 있는 경우와 2개 있는 경우를 구분하지.. 2022. 3. 28.
CS224w - 09. Designing the Most Powerful Graph Neural Network Part 1 How Expressive are Graph Neural Networks? 강의 시작하기 앞서서 팁을 먼저 주시는 Jure Leskovec 교수님이십니다. 그래프 러닝을 진행할 때 필요한 사항들인데, 딥러닝 공부를 해보신 분이면 한 번씩은 들어보셨을 내용입니다. Normalization 적용 ADAM 활용 ReLU 혹은 LeakyReLU/SWISH/rational activation 활용하고 마지막 output layer에서는 activation 제외 모든 layer에 bias 추가 32, 64, 128로 embedding하는 것이 적절 학습 안되면 zero_grad 빠졌나 확인해보고, hyperparameter 수정 및 initialization 신경쓰기 작은 데이터에도 overfit 발생하지 않으면 .. 2022. 3. 24.
CS224w - 08. GNN Augmentation and Training Part 2 Training Graph Neural Networks 여타 다른 머신 러닝과 마찬가지로 GNN에서도 task를 supervised, unsupervised(self-supervised), 그리고 semi-supervised task로 구분할 수 있습니다. 보통 $\hat{y}$은 prediction 결과, $y$는 실제 label을 의미합니다. 그리고 ground truth label $y$는 classification/regression task에 따라 discrete/continuous한 값을 가지게 됩니다. 이에 따라 loss function과 evaluation metric도 달라집니다. 일반적으로 classification에서는 cross entropy loss가 사용됩니다. 전체 loss는 .. 2022. 3. 22.
CS224w - 08. GNN Augmentation and Training Part 1 Graph Augmentation for GNNs 이미지 같은 데이터에 적용되는 augmentation은 흔히 봤을 것입니다. 하지만 그래프의 augmentation은 생소합니다. 언제 augmentation이 필요할까요? Feature가 너무 부족하거나, graph가 너무 sparse/dense/large한 경우 기존 그래프로 computational graph를 그리면 비효율적인 경우가 발생하게 됩니다. 각 문제의 경우마다 서로 다른 방향의 augmentation이 가능합니다. Sparse해서 문제라면 edge를 추가하면 되고, 너무 dense하다면 반대로 sampling 하면 될 것입니다. Adjacency matrix만 있는 경우, node에 constant value를 assign하거나, one.. 2022. 3. 21.
CS224w - 07. A General Perspective on Graph Neural Networks Part 2 GNN Layers in Practice 기존 deep learning에서 쓰이는 layer들을 함께 활용하여 높은 성능의 GNN layer를 얻을 수 있습니다. Batch normalization, dropout 등의 전통적 딥 러닝 레이어들이 어떻게 활용되는지 확인해봅시다. GNN의 batch normalization은 node feature 단에서 이루어집니다. 과정 자체는 우리가 알고 있던 normalization과 차이가 없고, batch input 별로 zero mean, unit variance로 만들어줘 학습을 안정화 시킨다는 목적도 같습니다. 기존의 dropout은 message function에서 linear layer의 weight 일부를 0으로 만드는 식으로 활용할 수 있습니다. A.. 2022. 3. 20.
CS224w - 07. A General Perspective on Graph Neural Networks Part 1 GNN의 개략적인 학습 과정은 위와 같습니다. 각 node에서 message를 받고, 이것을 aggregation하는 것이 코어입니다. Computation graph를 통해서 layer connectivity가 반영되며, graph augmentation이 활용 되기도 합니다. 마지막으로 Learning objective를 적절히 설정하면 GNN의 전체 학습 scheme이 정의됩니다. A Single Layer of a GNN 두 단계로 이루어지는 single layer GNN에서, 첫 번째 단계인 message computation에 대한 내용입니다. Message function은 각 node에서 전해지는 message를 적절히 모아서 그 다음 layer (node)로 전달합니다. Matrix $W.. 2022. 3. 19.