Graph Neural Net
in Data Science on ML/DL
Graph Neural Net
Grpah라는 자료구조
- 수학적으로는 G = (V,E)
- Node(Vertex)와 Edge로 구성된 자료 (컴싸쪽 정의)
- Node = 개체
- Edge = 노드간 관계
- 세상의 모든문제는 그래프로 치환할 수 있다는 말이 있을정도로 매우 유연한 자료구조다
Graph Neural Networks
- Grpah를 입력으로 받는 Neural Net
- Graph를 직접 다루어 분석할 수 있음
- Graph 데이터를 입력받아 학습을 수행하고, 분류/예측 등을 수행하는 NN
- 최근 가장 핫한 아키텍쳐
기존 Neural Networks와 다른점?
- Euclidean Space (기존뉴럴넷 )vs. Non-Euclidean Space
- GNN은 Non-Euclidean Space를 다룬다.
- Manifolds, Networks, Molecules, Trees
GNN의 종류
- Recurrent GNN – 주로 알아보자.
- Spatial GNN - 공간
- Spectral GNN - 신호처리
- Graph Attention Networks
- Gated Graph Neural Networks 등등
Recurrent GNN
- RNN에서 힌트를 얻어서 만들어짐
- 현재 시점에서 이전 시점의 정보를 Aggregate하여 학습
- Recurrent GNN
- 인접한 노드의 정보를 가져와서 정보를 Aggregate하여 학습
- Banach Fixed-Point Theorem (바나흐 고정점 정리)
- 상태 X -> X로 업데이트하는 함수가 있다고 했을때, T함수를 무한히 반복하면 특정 시점에 k와 k+1 시점에 차이가 생기지 않는 고정점 x’가 있다는 것
- https://ko.wikipedia.org/wiki/%EB%B0%94%EB%82%98%ED%9D%90%EA%B3%A0%EC%A0%95%EC%A0%90%EC%A0%95%EB%A6%AC#:~:text=%EC%88%98%ED%95%99%EC%97%90%EC%84%9C%20%EB%B0%94%EB%82%98%ED%9D%90%20%EA%B3%A0%EC%A0%95,%EA%B3%B5%EA%B0%84%EC%97%90%20%EA%B4%80%ED%95%9C%20%EC%A0%95%EB%A6%AC%EC%9D%B4%EB%8B%A4.&text=%ED%8F%B4%EB%9E%80%EB%93%9C%EC%9D%98%20%EC%8A%A4%ED%85%8C%ED%8C%90%20%EB%B0%94%EB%82%98%ED%9D%90,%EC%97%90%20%EC%B2%98%EC%9D%8C%EC%9C%BC%EB%A1%9C%20%EA%B8%B0%EC%88%A0%ED%95%98%EC%98%80%EB%8B%A4.
GCN(Graph Convolutional Network)
- CNN 구조를 GNN과합쳤다.
- https://untitledtblog.tistory.com/152
- GCN을 비롯한 graph neural network (GNN)을 직접 구현하는 것은 인접 행렬과 node feature matrix를 추출하는 것부터 여러 그래프의 batch를 만드는 것 까지 많은 어려움이 따른다. PyTorch를 기준으로는 Deep Graph Library (DGL)와 PyTorch Geometric이라는 라이브러리가 GNN과 이를 이용한 딥 러닝에 관한 여러 구현을 제공하고 있다.
Graph Neural Network 응용분야
- Node Classification: Node들을 분류
- Link(Edge) Prediction
- Graph Classification
- Matrix Completion
- Interacting Physical System
- Node2Vec, Subgraph2Vec,Graph2Vec
사례모음
- Scene Graph Generation from Image
- https://paperswithcode.com/task/scene-graph-generation
- Visual Question Answering
- https://visualqa.org/
- ML Scent
- https://arxiv.org/abs/1910.10685
이 글이 도움이 되셨다면 추천 클릭을 부탁드립니다 :)