일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Skip Connection
- Bottleneck Layer
- Linear
- GCN
- Optimizer
- sigmoid
- Gated Skip Connection
- iTerm2
- vim-plug
- RNN
- Vanilla RNN
- Skip Connectioin
- Inception Module
- classification
- python
- AI
- version
- GoogLeNet
- virtualenv
- DL
- ResNet
- Manager
- Residual Connection
- cnn
- Inception V1
- Regression
- DCGAN
- Peephole Connection
- jupyter
- Generative
- Today
- Total
IT Repository
(10) GCN - Advanced Techniques 본문
Inception Module¶
CNN에서의 Inception module의 핵심은 다양한 Receptive field를 취한다는 점이었습니다.
이를 GCN에서 적용하면, Receptive field는 결국 얼마만큼 떨어져 있는 노드를 반영할 것인가 라고 할 수 있습니다.
이는 Adjacency matrix를 다시 한번 dot product함으로써 구현할 수 있습니다.
즉, Graph Conv를 하는 횟수만큼 Receptive field가 넓어집니다.
예를 들어 1번 노드에 2, 3번 노드가 연결되어 있다고 가정해봅시다.
첫번째 Graph Conv 레이어에서는 1번 노드는 2, 3번 노드의 상태를 반영할 것입니다.
두번째 Graph Conv 레이어에서도 2, 3번 노드의 상태를 반영하겠죠.
하지만 여기서의 2, 3번 노드는 이미 2, 3번 노드 근처에 있는 노드의 정보를 반영한 결과일 것입니다.
따라서, 1번 노드의 Receptive field가 넓어지는 효과가 발생합니다.
그러므로 다양한 횟수의 Graph Conv를 병렬적으로 연산한 후에 그 결과를 Concatenation하는 것으로써 inception module를 GCN에서 구현할 수 있다는 결론에 도달하게 됩니다.
아래에 Inception module이 적용된 GCN의 예시를 첨부합니다.
Skip Connection¶
CNN에서 우리는 노드가 학습하는 정보의 양을 제한해서 네트워크의 학습 효율을 높이는 Skip Connection을 사용했습니다.
이를 통해 깊은 네트워크일 수록 학습이 잘 되지 않는 문제를 해결했었죠.
이 역시 GCN에서도 동일하게 적용할 수 있습니다.
$H_{i,~sc} = X_i + H_i$
다만, $X_i$와 $H_i$의 필터 개수가 다른 경우에 CNN에서와 마찬가지로 Dimension을 맞춰주는 작업을 하고 이후에 summation 합니다.
Gated Skip Conncetion¶
Gated Skip Connection은 RNN에서 배웠던 Gate의 개념을 Skip Connection에도 동일하게 적용합니다.
다시 말하면 인풋 $X$와 이번 레이어에서 학습하는 $f(x)$를 더하는 비율을 학습해서 더하는 것입니다.
$H_{i,~sc} = z_i \odot X_i + (1-z_i) \odot H_i$
gate를 담당하는 $z_i$는 아래와 같이 계산합니다.
$z_i = \sigma~ \left( W [X_i,~H_i] + b_z \right)$
Attention¶
우리가 학습했던 기존의 GCN 구조에서는 인접 노드의 중요도가 모두 동일하게 반영됩니다.
이와 달리 인접 노드의 중요도를 학습하여 주목해야할 노드를 결정하기 위해 Gate처럼 학습가능한 파라미터로써 Attention coefficient를 사용합니다.
Attention에 대한 상세한 내용은 RNN 카테고리의 Attention 포스팅에서 다룰 예정입니다.
포스팅이 업로드되면 여기에 링크를 달아놓을 예정이니 참고하시기 바랍니다.
'CNN > Study' 카테고리의 다른 글
(9) GCN - Architecture of GCN (0) | 2020.01.17 |
---|---|
(8) GCN - What is Graph (0) | 2020.01.17 |
(7) ResNet (Residual Connection) (16) | 2020.01.14 |
(6) GoogLeNet (Inception Module & BottleNeck Layer) (0) | 2020.01.14 |
(5) VGGNet (Small Filters with Deeper Networks) (0) | 2020.01.14 |