GCN(Graph Convolution Network)์ ๋ํ์ฌ ๊ฐ์ธ์ ์ผ๋ก ๊ณต๋ถํ ๋ถ๋ถ์ ํ ๋๋ก ๊ธฐ์ ํฉ๋๋ค.
GCN์ ์ดํดํ๊ธฐ ์ํ ๊ธฐ์ด์ ์ธ ๊ฐ๋
๋ถํฐ, G / C / N ๊ฐ๊ฐ์ด ๋ฌด์์ ๋ปํ๋์ง ํ์ตํฉ๋๋ค.
์ด๋ฒ ํํธ์์๋ GCN์์ C์ ๋ํ์ฌ ํ์ตํด ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
G์ ๊ดํด์๋ ์ด์ PART.01 Graph๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์.
์ ์งง๊ฒ ์ปจ๋ณผ๋ฃจ์
์ ๋ํด์ ์์๋ณด๋๋ก ํฉ์๋ค. CNN ๋ฐ ์์์ฒ๋ฆฌ๋ ์์ฃผ ๋ดค์๋ ์ฐ์ฐ์ด์ฃ .
์์ธํ๊ฒ ์ค๋ช
๋ ๊ณณ์ด ๋ค์ํ๊ณ ๋ง์ผ๋, ์ฐ๋ฆฌ๋ GCN์์์ ์ปจ๋ณผ๋ฃจ์
์ ์ค์ ์ผ๋ก ๊ฐ์ ธ๊ฐ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
์ปจ๋ณผ๋ฃจ์
์ด๋ ์ฝ๊ฒ ๋งํด ํํฐ(Kernel)๋ฅผ shift์์ผ๊ฐ๋ฉฐ, dot product์ฐ์ฐ์ ์ํํ๋ ๊ฒ์ ๋งํฉ๋๋ค.
โป ์ฌ๊ธฐ์์ dot product๋ ํ๋ ฌ๊ณฑ์ด ์๋๋ผ ์ฑ๋ถ๋ผ๋ฆฌ ๊ณฑํ๋ ๊ณฑ์
(element-wise multiplication)์
๋๋ค.
Stride ๊ฐ์ ๋ฐ๋ผ ํํฐ๋ง์ ์ ์ฉํ ๋์ ์ด๋์ด ํ์นธ์ฉ์ด ์๋ ์ฌ๋ฌ ์นธ์ผ๋ก ์ด๋๋ ์ ์๊ณ , ์ด๋ฌํ ์ปจ๋ณผ๋ฃจ์ ์ฐ์ฐ์ ์ํํ๊ฒ ๋๋ฉด ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์์์ ํฌ๊ธฐ๊ฐ ์ค์ด๋ค๊ฒ ๋ฉ๋๋ค. ์ด๋ฌํ ์์์ ํฌ๊ธฐ๋ฅผ ์ค์ด๋๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด ์ ๋ ฅ์์์ ์ธ๊ฐ์ 0์ ์ฑ์ฐ๋ ์ ๋ก ํจ๋ฉ์ ํ๊ธฐ๋ ํ์ฃ .
32x32, depth๊ฐ 3 (32x32x3)์ธ ์ด๋ฏธ์ง๊ฐ ์๊ณ , 5x5x3 ํฌ๊ธฐ์ ํํฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ปจ๋ณผ๋ฃจ์ ์ฐ์ฐ์ ์ํํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค.
์ปจ๋ณผ๋ฃจ์ ์ฐ์ฐ์์ ์ปจ๋ณผ๋ฃจ์ ํํฐ์ ์ฑ๋์ ์๋ ์ ๋ ฅ๊ฐ์ ์ฑ๋ ๊ฐ์์ ๋์ผํ๋ฏ๋ก 3์ด ๋ฉ๋๋ค.
์ด๋ฌํ ์ ๋ ฅ ์์์ ํ๋์ 5x5x3 ํํฐ๋ฅผ ์ ์ฉํ์ฌ ์ฐ์ฐ์ ์ญ ์ด์ด๋๊ฐ๊ฒ ๋๋ฉด ๋ค์๊ณผ ๊ฐ์ด ํ๋์ activation map์ด ๋ง๋ค์ด์ง๋๋ค.
์ด๋ฌํ ์ ์ฉํ ํํฐ์ ์ ์๋ฐ๋ผ feature map(ํ๋, ์ด๋ก)์ด ์์ฑ๋๊ฒ ๋ฉ๋๋ค.
โป๊ทธ๋ฆผ์ activation map์ feature map์ ํ์ฑํจ์๋ฅผ ์ ์ฉํ ๊ฒฐ๊ณผ.
์ด ์ฐ์ฐ์ด ๋๋ค๋ฅธ ํํฐ์ ๋ํด์ ์ ์ฉ๋๋ฉด ์๋ก์ด ์ฐ์ฐ์ด ์ด๋ฃจ์ด์ง๊ฒ ๋๊ณ dept 1์ง๋ฆฌ ์๋ก์ด activation map์ด ์์ฑ๋๊ฒ ๋ฉ๋๋ค.
์ด๋ฌํ Convolution ์ฐ์ฐ์ ํน์ง์ ๋ฌด์์ผ๊น์?
- ์ ์ ์์ ํ๋ผ๋ฏธํฐ (๊ณ์ฐ๋์ด ์ ๊ณ , ์ค๋ฒ ํผํ ์ ์ํ์ด ๋ฎ์)
- ์ง์ญ์ ์ธ ํน์ฑ์ ํ์ต๊ฐ๋ฅ
์ปจ๋ณผ๋ฃจ์
์ฐ์ฐ์ ๋๋ฌด ์์ธํ๊ฒ๊น์ง ์ฐ์ฐ๋๋ fully connected ๋ฐฉ์๋ณด๋ค, ํํฐ๋ฅผ ์ ์ฉํ์ฌ ํน์ง์ผ๋ก ๋ถ๋ฅํ๋ฏ๋ก ํ๋ผ๋ฏธํฐ๊ฐ ์ ์ด ๊ณ์ฐ๋์ด ์ ๊ณ ๊ณผ์ ํฉ๋๋ Overfitting์ ์ํ์ฑ๋ ๋ฎ์ถ ์ ์์ต๋๋ค.
๋ํ ์์ 5x5x3 ํํฐ์ ๊ฐ์ด ํด๋น ์์ญ์ ์ง์ญ์ ์ธ ๋ถ๋ถ์ ํ์ตํ๋ฏ๋ก ์ง์ญ์ ์ธ ํน์ฑ์ ๋ฐ์ํ ์ ์์ต๋๋ค.
ํ๋ง๋๋ก ํํํ์๋ฉด..
โก Image์ ๋ํด ์ฃผ๋ก ์ฌ์ฉํ๋ Convolution์ฐ์ฐ์ Graph์ ๋ํด ์ ์ฉํ ๊ฒ์ด GCN ์ ๋๋ค.
CNN๊ณผ GCN์ ์ฐจ์ด๋ ๋ฌด์์ผ๊น์?
conv
: ์ปจ๋ณผ๋ฃจ์
์ฐ์ฐCNN์ ๊ฒฝ์ฐ ์ด๋ฏธ์ง๊ฐ ์ฃผ์ด์ก์ ๋, conv
, pooling
๋ ์ด์ด๋ฅผ ๋ฐ๋ณตํ๋ฉฐ feature extraction(ํน์ง์ถ์ถ)์ ์ํํ๋ ๋ถ๋ถ๊ณผ flatten
, fully connected layer
๋ฅผ ํตํด classification(๋ถ๋ฅ)์ ํ๋ ๊ณผ์ ์ผ๋ก ๋๋๊ฒ ๋ฉ๋๋ค.
๊ฐ๊ฐ์ ๋ ์ด์ด๋ฅผ ๊ฑฐ์น๋ฉด์ Convolution ์ฐ์ฐ์ ์ํํ๋ฉฐ, ์ปค๋์ ํ์ต(์ ๋ฐ์ดํธ)ํ๊ฒ ๋์ฃ .
GCN์ ๊ฐ ๋ ์ด์ด๋ฅผ ๊ฑฐ์น๋ฉฐ Convolution ์ฐ์ฐ์ ์ํํ๊ณ Graph ๊ฐ์ ์ ๋ฐ์ดํธ ํฉ๋๋ค.
๊ทผ๋ฐ ๊ทธ๋ํ๋ vertex์ edge์ ๊ตฌ์ฑ์ธ๋ฐ, ๊ทธ๋ ๋ค๋ฉด ๊ทธ๋ํ๋ฅผ ์ ๋ฐ์ดํธ ํ๋ค๋ ๊ฒ์ ๋ฌด์์ ์ ๋ฐ์ดํธ ํ๋ ๊ฒ ์ผ๊น์?
โก ๋ฐ๋ก ๊ทธ๋ํ์์ ์ ๋ณด๋ฅผ ๊ฒฐ์ ํ๋ ๊ฒ์ ๋ ธ๋์ ๋ด๊ธด ์ ๋ณด. ์ฆ ๋ ธ๋์ feature๊ฐ๋ค์ด ์ ๋ฐ์ดํธ ๋๋ ๊ฒ์ ๋๋ค.
์ถ๊ฐ์ ์ธ ์ค๋ช
์ ์ํด ์ ๊น GCN ๊ทธ๋ํ์ ๊ตฌ์กฐ๋ฅผ ๋ค์ํ๋ฒ ๋ณด๊ณ ๋์ด๊ฐ๋๋ก ํ๊ฒ ์ต๋๋ค.
ํด๋น ๊ตฌ์กฐ์ ๊ดํ ์ค๋ช
์ ์ด์ PART.01 Graph์์๋ ์ค๋ช
ํ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ์ผ์ชฝ์ 4๊ฐ์ ๋ ธ๋๋ก ์ด๋ฃจ์ด์ง ๊ทธ๋ํ๊ฐ ์๊ณ , ๊ฐ ๋ ธ๋๋ 5๊ฐ์ feature๋ฅผ ๊ฐ์ง๋ค๊ณ ๊ฐ์ ํฉ์๋ค.
์ฝ๊ฒ ์ด๋ฏธ์ง์ ํฝ์ ์ด๋ผ๊ณ ์๊ฐํ๋ค๋ฉด, r/g/b, transparency(ํฌ๋ช ๋), bright(๋ฐ๊ธฐ)๊ฐ์ด ๋๊ฒ ์ฃ .
adjacency matrix
๋ ์ฐ๊ฒฐ์ฑ์ ๋ํ๋ด๋ฏ๋ก ์ค๋ฅธ์ชฝ๊ณผ ๊ฐ์ด ๋
ธ๋ ์ํธ๊ฐ์ ์ฐ๊ฒฐ์ฑ์ด 0, 1๋ก ๋ํ๋ฉ๋๋ค.
โป PART.01์์ ๋ณธ
adjacency matrix
์๋ ๋ฌ๋ฆฌ ์๊ธฐ ์์ ๊ณผ์ ์ฐ๊ฒฐ์ฑ์ธ ๋๊ฐ์ ๋ฐฉํฅ์ด ์ ๋ถ 1๋ก ํํ๋์ด ์๋๋ฐ, ์ฌ๋ฌ ๋ ผ๋ฌธ์์ ์ผ๋ฐ์ ์ผ๋กadjacency matrix
์ ๋จ์ํ๋ ฌ ๋ฅผ ๋ํ ํํ๋ก ์ฌ์ฉํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๋ผ๊ณ ํฉ๋๋ค.
Feature matrix
๋ ์ด๋ฌํ ๋
ธ๋ ๊ฐ์ 4๊ฐ, featur ๊ฐ์ 5๊ฐ๋ก 4x5 ํฌ๊ธฐ์ ๋งคํธ๋ฆญ์ค๊ฐ ๋์ค๊ฒ ๋ฉ๋๋ค.
โป ๊ฐ ๋ ธ๋์ ํน์ฑ๋ณ๋ก ๊ทธ๋ฆผ์์ ์์ ์ฝ๊ฐ์ฉ ๋ค๋ฅด๊ฒํ์ฌ, ์ ์ด๋ฏธ์ง์ ๊ฐ์ด ํํํ๋ค๊ณ ๋ณด์๋ฉด ๋ฉ๋๋ค.
์์, Convolution ์ฐ์ฐ์ ํน์ง(์ฅ์ )์ ๋ํด ์์๋ณด์์ต๋๋ค.
์ ๊ทธ๋ผ GCN์์ Convolution ์ฐ์ฐ์ ์ ์ฌ์ฉํ๋ ๊ฒ์ผ๊น์?
GCN์ ์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์ด์ ๋ ์ด์ด ๋ค์ ๋ ์ด์ด๋ก ๋์ด๊ฐ๋ฉด์ ๋
ธ๋์ feature ๊ฐ์ ์
๋ฐ์ดํธํ๊ฒ ๋ฉ๋๋ค.
์ด๋ ์ฌ์ฉ๋๋ ์ปจ๋ณผ๋ฃจ์
์ฐ์ฐ์, ์ฌ์ค์ CNN์ ์ฌ์ฉํ๋ ์ปจ๋ณผ๋ฃจ์
์ฐ์ฐ์ ๊ทธ๋๋ก ๊ทธ๋ํ์ ์ ์ฉํ ๊ฒ์ด์ฃ .
์ฆ, CNN์์์ ์ด์ ์ด ๋๋ ์ปจ๋ณผ๋ฃจ์
์ฐ์ฐ์ ํน์ฑ์, ๊ทธ๋ํ์๋ ์ ์ฉํ ๊ฒ ์
๋๋ค.
๊ทธ๋ฌํ ์ฐ์ฐ์ ํน์ฑ์ด ๋ฐ๋ก Weight Sharing๊ณผ Learn Local Features์ ๋๋ค.
์ด๋ฌํ ํน์ฑ์ ์ฌ์ฉํด์ ์ง์ญ์ ์ด๊ณ , ์ ์ ์ฐ์ฐ๋์ผ๋ก ๋ ธ๋์ feature ๊ฐ์ ์ ๋ฐ์ดํธํ๊ฒ ๋์ฃ .
Weight sharing์ด๋ ๋ฌด์์ผ๊น์?
Weight sharing์ด๋, Fully connected ๊ตฌ์กฐ์๋ ๋ค๋ฅด๊ฒ Convolution์ ๊ตฌ์กฐ์์ ๋ํ๋๋ ํน์ง์ผ๋ก,
๋ง ๊ทธ๋๋ก ๊ฐ์ค์น๋ฅผ ๊ณต์ ํ๋ค๋ ๊ฐ๋ ์ ๋๋ค.
๊ทธ๋ผ ์ด๊ฒ์ด ์ด๋ป๊ฒ ์ด๋ฃจ์ด ์ง๊น์?
์ ๊ทธ๋ฆผ์ ์์๋ฅผ ํตํด ๋น๊ตํ๋ฉฐ ์ดํด ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
S๋ ์
๋ฐ์ดํธ๊ฐ ์ํ๋ ์ดํ์ ๊ฒฐ๊ณผ, X๋ ์
๋ฐ์ดํธ ์ ์ ๊ฐ์ด๋ผ๊ณ ์๊ฐํ์๋ฉด ๋ฉ๋๋ค.
์ ์ผ์ชฝ Fully connected ๊ตฌ์กฐ๋ถํฐ ์ดํด ๋ด ์๋ค.
๊ฒฐ๊ณผ ~ ์ ๊ฒฐ์ ํ๊ธฐ ์ํด์ ~ ์ ์ ๋ ฅ๊ฐ์ด ์ ๋ถ ์ฌ์ฉ๋๊ณ , ์ ๋ถ ๊ฐ๊ฐ ๋ค๋ฅธ ๊ฐ์ค์น()๋ค์ด ์ฌ์ฉ๋๊ณ ์์ต๋๋ค.
์ด๋ ๊ฒ ๋๋ค๋ฉด, ๊ฐ ๋ ธ๋๋ง๋ค์ ๊ฐ์ค์น๊ฐ ์ ๊ฐ๊ฐ ๋ค๋ฅด๊ฒ ํ์ํ๋ ์ฐ์ฐ๋ ๋ํ ์ฆ๊ฐํ๊ณ , ์ด๋ฌํ ๊ฐ์ค์น๋ฅผ ์ ์ฅ ํด์ผํ๋ ๊ณต๊ฐ์ ์ธ ๋ถ๋ถ์์๋ ๋ถ๋ด์ด ๋ฉ๋๋ค.
๋ฐ๋ฉด ์ค๋ฅธ์ชฝ Convolution์ ๊ตฌ์กฐ๋ฅผ ๋ด ์๋ค.
์์ ๋ณด๋ฉด ~ ์ ์ถ๋ ฅ ๊ฐ์ ๋ด๊ธฐ ์ํด์ ์ธ์ ํ ์
๋ ฅ ๊ฐ์ ํญ์ ๋์ผํ ๊ฐ์ค์น๊ฐ ์ฌ์ฉ๋๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
()
์ด๊ฒ์ด ๋ฐ๋ก weight sharing์ ๋๋ค.
ํ๋์ ์ปค๋์ ํตํด ์
๋ ฅ๋ฐ์ดํฐ ์ ์ฒด์ ๋์ผํ ๊ฐ์ค์น๋ฅผ ์ ์ฉํ๋ ๊ฒ์ด์ฃ .
(โป ์์ ํ์ดํ 3๊ฐ๊ฐ ํ์ธํธ๋ก, ์ด๋ฅผ ํ๋์ ์ปค๋๋ก ์๊ฐํ๋ฉด ๋ฉ๋๋ค.)
์ด๋ฅผ ํตํด ๊ฐ์ค์น(๋ด๋ฐ, ํ์ดํ)์ ์๋ฅผ ์ค์ผ ์ ์๊ณ , ์/๊ณต๊ฐ์ ์ด์ ์ ์ด๋ฆด ์ ์์ต๋๋ค.
๋๋ฒ์งธ ํน์ฑ์ Learn local feature ์ ๋๋ค.
์ผ๋ฐ์ ์ธ MLP์ ๊ฒฝ์ฐ hidden layer์ ๋
ธ๋๋ค์ด ๋ชจ๋ input๋
ธ๋์ fullyconncted๋์ด ์๊ธฐ์ ๊ณผ์ ํฉ์ ๋ฌธ์ ๋, ์ฐ์ฐ๋์ ์ธก๋ฉด์์ ์ด์ ์ ๋ณด๊ธฐ๊ฐ ์ด๋ ต์ต๋๋ค.
ํ์ง๋ง CNN์์๋ filte๊ฐ ์ด๋ํ๋ฏ๋ก local featur๋ค์ด๋๋ง ์ฐ์ฐํ๊ณ activation map์ ์์ฑํ๋ฏ๋ก ๊ฐ activation map์ pixel๋ค์ globalํ ์ ์ฒด feature๋ค์ด ์๋ ํน์ ํ ์ง์ญ์ local feature๋ค์ ์ํด์๋ง ํ์ต๋๋ค๊ณ ํ ์ ์์ต๋๋ค.
(๋ํ ์ธต์ด ๊น์ด์ง์๋ก ํด๋น ๋ด๋ฐ์ด ๋ด๋นํ๋ receptive field๋ํ ๋ ๋์ด์ง๊ฒ ๋ฉ๋๋ค.)
์ ๋ฆฌํ์๋ฉด..
CNN์ Weight Sharing๊ณผ Learn Local Features์ ํน์ฑ์ ํตํด ์์ฑ๋๋ activation map์ ๊ฐ ํฝ์ ์๊ด ๊ด๊ณ๋ฅผ ๋์ผ ์ ์์ต๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ์ฐ์ฐ๋๋ ์ค์ด๊ณ , ์ค๋ฒํผํ ์ ๋ฌธ์ ๋ํ ์ด๋์ ๋ ํด๊ฒฐํ๋ฉฐ, ๊ทผ์ฒ pixel๋ผ๋ฆฌ์ ์๊ด ๊ด๊ณ๊ฐ ๋์ input data๋ฅผ ๋ ์ ํ์ตํ ์ ์๋ ๊ฒ์ด์ฃ .
์ด๋ฌํ CNN์ ์ปจ๋ณผ๋ฃจ์ ์ฐ์ฐ์์์ ํน์ฑ์ Graph์ ์ ์ฉํ๋ ๊ฒ์ด ๋ฐ๋ก GCN์ด๋ผ๊ณ ํ ์ ์๊ฒ ์ต๋๋ค.
๋ค์์ผ๋ก๋ GCN์์์ ์ปจ๋ณผ๋ฃจ์ ์ฐ์ฐ์ ์ ์ฐจ ๋ฐ ๊ณผ์ ์ ๋ํด์ ๋ค๋ค๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.