🧊 GCN μ΄λž€ λ¬΄μ—‡μΌκΉŒ? GλΆ€ν„° NκΉŒμ§€ μ°¨κ·Όμ°¨κ·Ό part.01 Graph

vincaΒ·2023λ…„ 1μ›” 9일
0
post-thumbnail

Introduction

GCN(Graph Convolution Network)에 λŒ€ν•˜μ—¬ 개인적으둜 κ³΅λΆ€ν•œ 뢀뢄을 ν† λŒ€λ‘œ κΈ°μˆ ν•©λ‹ˆλ‹€.
GCN을 μ΄ν•΄ν•˜κΈ° μœ„ν•œ 기초적인 κ°œλ…λΆ€ν„°, G / C / N 각각이 무엇을 λœ»ν•˜λŠ”μ§€ ν•™μŠ΅ν•©λ‹ˆλ‹€.

λ°μ΄ν„°μ˜ ν‘œν˜„ 방식

DATA representataion 즉, λ°μ΄ν„°μ˜ ν‘œν˜„λ°©μ‹μ— λŒ€ν•΄μ„œ λ¨Όμ € μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.

μ΄λ―Έμ§€μ˜ λ°μ΄ν„°λŠ” 일반적인 μ˜μƒλ°μ΄ν„°λ‘œ 2차원 평면에 그렀진 μ‹œκ°μ μœΌλ‘œ ν‘œν˜„λ˜λŠ” κ·Έλž˜ν”„λŠ” 각 ν”½μ…€λ§ˆλ‹€ ν•΄λ‹Ή 픽셀에 밝기값, 투λͺ…도 λ“± μ—¬λŸ¬ 데이터가 μ‘΄μž¬ν•©λ‹ˆλ‹€.

μ΄λŸ¬ν•œ μ΄λ―Έμ§€λŠ” 주둜 CNNλ°©μ‹μœΌλ‘œ λΆ„λ₯˜ν•˜κ²Œ λ©λ‹ˆλ‹€.

반면 μ‹œκ³„μ—΄ λ°μ΄ν„°λŠ” 말 κ·ΈλŒ€λ‘œ μ‹œκ°„ λ³„λ‘œ κ΅¬μ„±λœ μ§‘ν•©μœΌλ‘œ μŒμ„±μ΄λ‚˜ μžμ—°μ–Έμ–΄, μ„Όμ„œ 데이터, μ£Όκ°€ λ“±μ˜ 데이터λ₯Ό λ‚˜νƒ€λ‚΄λŠ”λ°, μ΄λŠ” 주둜 RNNλ°©μ‹μœΌλ‘œ λΆ„λ₯˜ν•˜κ²Œ λ©λ‹ˆλ‹€.

그럼 GCN은 데이터λ₯Ό μ–΄λ–€ λ°©μ‹μœΌλ‘œ ν‘œν˜„ν• κΉŒμš”?

λ°”λ‘œ Graph(κ·Έλž˜ν”„)μž…λ‹ˆλ‹€!

GCN : Graph

GCNμ—μ„œ 데이터λ₯Ό ν‘œν˜„ν•˜λŠ” ν‘œν˜„λ°©μ‹μ€ GCNμ—μ„œμ˜ G인 κ·Έλž˜ν”„λ‘œ ν‘œν˜„ν•©λ‹ˆλ‹€.

κ·Έλž˜ν”„μ˜ μ •μ˜λŠ” 일뢀 κ°μ²΄λ“€μ˜ μŒλ“€μ΄ μ„œλ‘œ μ—°κ΄€λœ 객체의 집합을 μ΄λ£¨λŠ” κ΅¬μ‘°μΈλ°μš”.
κ·Έλž˜ν”„ λ°μ΄ν„°μ˜ 경우 μ•žμ—μ„œ λ³΄μ•˜λ˜ 이미지 λ°μ΄ν„°μ²˜λŸΌ μ‹œκ°μ μœΌλ‘œ λ‚˜μ˜€κ±°λ‚˜, μ‹œν€€μ…œ λ°μ΄ν„°μ²˜λŸΌ 연속적인 μˆœμ„œκ°€ μ‘΄μž¬ν•˜λŠ” 것이 μ•„λ‹Œ 데이터가 λ§ŽμŠ΅λ‹ˆλ‹€.

κ·Έλž˜ν”„μ˜ 예둜 μ†Œμ…œ λ„€νŠΈμ›Œν¬μƒμ—μ„œμ˜ 관계λ₯Ό λ‚˜νƒ€λ‚΄λŠ” μ†Œμ…œ κ·Έλž˜ν”„, κ²Œμž„μ΄λ‚˜ λ””μžμΈμ—μ„œ μ‚¬μš©λ˜λŠ” 3D 메쉬, ν™”ν•™λΆ„μ•Όμ—μ„œ μ‚¬μš©λ˜λŠ” λΆ„μž κ·Έλž˜ν”„ 등이 μžˆμŠ΅λ‹ˆλ‹€.

μ΄λ“€μ˜ νŠΉμ„±μ€ μ„œλ‘œ κ°„ μ—°κ΄€λœ κ·Έλž˜ν”„λ‘œ ν‘œν˜„ν•  수 μžˆλ‹€λŠ” μ μž…λ‹ˆλ‹€.

GCN

λ°”λ‘œ μ΄λŸ¬ν•œ μ—°κ΄€λœ κ·Έλž˜ν”„λ₯Ό κ°€μž₯ 잘 ν‘œν˜„ν•  수 μžˆλŠ” 방법. 즉, 데이터 셋을 ν‘œν˜„ν•˜κ³  잘 λΆ„λ₯˜ν•  수 μžˆλŠ” 방법이 λ°”λ‘œ GCNμž…λ‹ˆλ‹€.

Graph Structure

κ·Έλ ‡λ‹€λ©΄ κ·Έλž˜ν”„μ˜ κ΅¬μ‘°λŠ” μ–΄λ–»κ²Œ μƒκ²Όμ„κΉŒμš”?

κ·Έλž˜ν”„λŠ” Vertex즉, λ…Έλ“œμΈ 꼭지점과 edge인 μ΄λŸ¬ν•œ λ…Έλ“œλ₯Ό μž‡λŠ” λ³€μœΌλ‘œ κ΅¬μ„±λ©λ‹ˆλ‹€.
μ’…λ₯˜λ‘œλŠ” λ°©ν–₯성에 따라 κ΅¬λΆ„λ˜λŠ” Directed / un-directed와
각각의 엣지듀이 κ°€μ§€λŠ” κ°€μ€‘μΉ˜μ˜ μœ λ¬΄μ— 따라 Weighted / un-weighted 둜 κ΅¬λΆ„λ©λ‹ˆλ‹€.

adjacency matrix, node feature matrix

κ·Έλ ‡λ‹€λ©΄ 이제 μ΄λŸ¬ν•œ κ·Έλž˜ν”„λ‘œ 이루어진 정보λ₯Ό μ–΄λ–»κ²Œ μ»΄ν“¨ν„°λ‘œ μ „λ‹¬ν•˜μ—¬ μ‚¬μš©ν•  수 μžˆμ„κΉŒμš”?

ν–‰λ ¬μ˜ ν˜•νƒœλ‘œ κ·Έλž˜ν”„λ₯Ό ν‘œν˜„ν•˜μ—¬, μ»΄ν“¨ν„°μ—μ„œ μ‚¬μš©ν•˜κ²Œ λ©λ‹ˆλ‹€.

주둜 두 가지 matrixλ₯Ό μ‚¬μš©ν•˜κ²Œ λ˜λŠ”λ°, adjacency matrix와 node feature matrixκ°€ μžˆμŠ΅λ‹ˆλ‹€.

adjacency matrix의 경우, λ…Έλ“œκ°„μ˜ 연결성을 λ‚˜νƒ€λ‚΄λŠ” 즉, edge에 κ΄€ν•œ 정보λ₯Ό λ‚˜νƒ€λ‚΄κ³ 
node feature matrix같은 경우, 각각의 λ…Έλ“œμ— λ‹΄κ²¨μžˆλŠ” 정보λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

adjacency matrixλž€?

adjacency matrixλΆ€ν„° μ‚΄νŽ΄λ΄…μ‹œλ‹€.

n개의 λ…Έλ“œκ°€ μžˆλ‹€λ©΄ adjacency matrix의 ν¬κΈ°λŠ” nxn이 λ©λ‹ˆλ‹€.
μ—¬κΈ°μ„œλŠ” 5개의 λ…Έλ“œκ°€ μžˆμœΌλ―€λ‘œ 5x5 크기가 되겠죠.

μ΄λŸ¬ν•œ ν–‰λ ¬ AAμ—μ„œ ii번째 ν–‰, jj번째 열에 μžˆλŠ” κ°’ AijA_{ij}κ°€ λ‚˜νƒ€λ‚΄λŠ” 숫자(0, 1)λŠ” λ…Έλ“œκ°„ μ„œλ‘œμ˜ 연결성을 λ‚˜νƒ€λƒ…λ‹ˆλ‹€. 이 λ•Œ, 연결이 있으면 1둜 연결이 μ—†μœΌλ©΄ 0으둜 λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

μ˜ˆμ‹œ

예λ₯Ό λ“€μ–΄ ν™”μ‚΄ν‘œκ°€ κ°€λ₯΄ν‚€λŠ” λ‘λ²ˆμ§Έ 행을 λ³΄κ² μŠ΅λ‹ˆλ‹€.
λ‘λ²ˆμ§Έ ν–‰ A21A_{21} ~ A25A_{25}λŠ” 2번 λ…Έλ“œμ™€ λ‹€λ₯Έ λ…Έλ“œλ“€ κ°„μ˜ 연결성을 λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

자기 μžμ‹ (2)을 μ œμ™Έν•˜κ³ λŠ” λ‹€λ₯Έ λ…Έλ“œ(1, 3, 4, 5)전뢀와 연결이 λ˜μ–΄ μžˆμœΌλ―€λ‘œ 1둜 ν‘œμ‹œλ¨μ„ μ•Œ μˆ˜μžˆμŠ΅λ‹ˆλ‹€.

연결이 있으면 1, 연결이 μ—†μœΌλ©΄ 0인 binary(이진)값을 가지며 μ΄λŠ” λ‹€λ₯Έ λ…Έλ“œλ“€ λ˜ν•œ 동일함을 μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€.

β€» μΆ”κ°€μ μœΌλ‘œ λ…Έλ“œκ°„ μ—°κ²°λœ edge의 κ°€μ€‘μΉ˜λ₯Ό λ‚˜νƒ€λ‚Ό λ•ŒλŠ”, λ‹¨μˆœνžˆ 0κ³Ό 1의 binaryκ°’ λΏλ§Œμ•„λ‹Œ 더 λ‹€μ–‘ν•œ 값을 μ‚¬μš©ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. (μ—¬κΈ°μ„œλŠ” λ„˜μ–΄κ°€λ„λ‘ ν•©μ‹œλ‹€.)

node feature matrixλž€?

두 번째둜 node feature matrix의 경우 λ…Έλ“œ 개수 n만큼의 행을 κ°€μ§‘λ‹ˆλ‹€.

μ—¬κΈ°μ„œλŠ” 5개의 λ…Έλ“œ μ΄λ―€λ‘œ 5개의 행을 가지고, μ‚¬μš©μžκ°€ μ •μ˜ν•œ νŠΉμ„±μ˜ 개수 ff에 λ”°λΌμ„œ μ—΄μ˜ κ°œμˆ˜κ°€ κ²°μ •λ©λ‹ˆλ‹€.

μ˜ˆμ‹œ

μ˜μƒ 이미지λ₯Ό 예둜 λ“€μ–΄λ³΄κ² μŠ΅λ‹ˆλ‹€. 각 λ…Έλ“œκ°€ 픽셀을 λ‚˜νƒ€λ‚Ό λ•Œ, ν•΄λ‹Ή ν”½μ…€μ˜ r/g/bκ°’, 투λͺ…도, 밝기 이런 μ‹μœΌλ‘œ 총 5개의 Featureκ°€ 픽셀에 μžˆλ‹€ 라고 κ°€μ •ν•©μ‹œλ‹€.

κ·Έλ ‡λ‹€λ©΄ node feature matrix의 ν¬κΈ°λŠ” nβˆ—fn*f μ΄λ―€λ‘œ 5x5행렬이 되게 λ©λ‹ˆλ‹€.

즉, κ·Έλ¦Όμ—μ„œμ˜ ν™”μ‚΄ν‘œκ°€ λ‚˜νƒ€λ‚΄λŠ” node feature matrix의 XijX_{ij}의 μ˜λ―ΈλŠ” ii번째 λ…Έλ“œμ˜ jjλΌλŠ” νŠΉμ„±μ˜ 값이 μ–Όλ§ˆμΈμ§€λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

κ·Έλ¦Όμ—μ„œ 보듯 2, 3(λΉ¨κ°•)번 λ…Έλ“œμ™€ 4, 5번(λ…Έλž‘) λ…Έλ“œλŠ” νŠΉμ„±μ΄ 일치(같은 색)ν•˜λ―€λ‘œ node feature matrixμ—μ„œ 같은 값을 가지고 μžˆλŠ” 것을 μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€.

κ·Έλ¦Όμƒμ—μ„œλŠ” 0κ³Ό 1둜 ν‘œν˜„λ˜μ–΄μžˆμœΌλ‚˜ r/g/b값이라면 0~255κΉŒμ§€μ˜ 값을 가지듯, 더 큰 κ°’μœΌλ‘œλ„ 자유둭게 ν‘œν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

Next

μ΄λ ‡κ²Œ GCNμ—μ„œ GκΉŒμ§€λ₯Ό μ•Œμ•„λ³΄μ•˜μŠ΅λ‹ˆλ‹€!
λ‹€μŒ κΈ€μ—μ„œλŠ” GCNμ—μ„œ C인 Convolution에 λŒ€ν•΄μ„œ μ„œμˆ ν•˜λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€.

profile
뢉은 λ°° μ˜€μƒ‰ 딱닀ꡬ리 개발자 πŸ¦ƒCloud & DevOps

0개의 λŒ“κΈ€