티스토리 뷰
GNN을 공부하다 보면 반드시 접하게 되는 3가지 레이어가 있다.
1. GCN
2. Graph SAGE
3. GAT(Graph Attation)
공부를 하다보면.. 수학식이 나오면 뭔가 좌절감이 들고 못할 것만 같은 생각이 드는데, 이번 기회를 통해 수학식을 천천히 어떤 뜻을 내포하고 있는지 살펴보고자 한다.
첫번째 내용은 GCN이다.
GCN은 Graph Convolution Network, CNN 필터 개념(weigth 공유 개념)을 한번쯤은 접해 봤을것이다. CNN의 개념을 GNN에 활용했다고 생각해도 무방하다.
일단 GCN 이전 GNN에서 노드를 업데이트 할때 사용한 공식을 한번 봐보자.
위 공식은 단순 GNN에서 노드를 업데이트 하는 방식이다.
일단 이 공식부터 한번 살펴보기로 하자.
이처럼 식을 하나씩 살펴 볼 수 있다. 수학식을 보면 어렵다는 인식때문에 어려워 보일뿐, 하나씩 보면 상당히 단순하다.
1. 노드 v와 연결된 모든 노드 u의 임베딩 값을 더한 후 W1(학습가능한 weigth)를 곱한다.
2. 노드 v와 W2(학습가능한 weigth)를 곱한다.
3. 1,2를 더한다.
4. Non-linear funtion을 취한 후 노드 v로 업데이트 한다.
이처럼 단순한 방식으로 GNN은 노드 v를 업데이트 한다.
여기서 기억해야 할 것이 몇가지 있다.
식을 간략하게 쓰면 이런식으로 쓸 수 있는데, 기억하고 있어야 하는 것은,
1. 노드 v와 노드 u에 곱해지는 W가 서로 다르다는 점
2. 노드 v와 노드 u를 단순 합을 한다는 점이다.
그럼 이번 포스팅의 진짜 주제인 GCN의 식으로 한번 가보자!
GCN의 노드 v를 업데이트 하는 방법이다.
이것도 천천히 한번 살펴보자.
GCN node 업데이트 공식도 어렵지 않다. 거의 기존 업데이트 방식과 비슷하면서 간단해졌다.
간단하게 식을 써보자면... 이렇게 구성할 수 있겠는데, 기존 업데이트와 가장 큰 차이점이 한가지 있다.
기존 업데이트 방식에서는 W1,W2를 따로 구성하여 노드u, v에 곱했지만, GCN에서는 W하나를 share하여 사용한다.
수식이 있어서 어렵다고 처음엔 생각했지만, 막상 식을 뜯어보면 그렇게 어렵지 않고 누구나 할 수 있겠다!
다음에는 Graph SAGE 공식을 한번 살펴보고자 한다!
'Deep-learning' 카테고리의 다른 글
GNN 수학식 뜯어보기 - 3. GAT(Attention) (0) | 2022.10.18 |
---|---|
GNN 수학식 뜯어보기 - 2. Graph SAGE (0) | 2022.10.18 |
GNN, Graph SAGEConv 코드로 보기 (0) | 2022.10.14 |
1. GNN 뜻 (1) | 2022.10.08 |
딥러닝 네트워크 종류 (1) | 2022.09.30 |
- Total
- Today
- Yesterday
- GIT
- 깃
- 정리
- 오류
- c3k2
- java
- 티스토리챌린지
- 딥러닝
- 자바
- 이미지
- GNN
- yolov11
- YOLO
- DeepLearning
- github
- 뜯어보기
- 초보자
- 어탠션
- 백준
- 알고리즘
- 욜로
- CNN
- 디텍션
- 오블완
- python
- YOLOv8
- Tree
- 도커
- V11
- docker
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |