Geometric Deep Learning (GDL)
기하학적 딥러닝(GDL)은 격자, 그래프, 메시, 포인트 클라우드의 대칭성을 신경망에 반영해 CNN, GNN, Transformer를 통합합니다.
기하학적 딥러닝(GDL)은 데이터가 픽셀 그리드, 그래프, 점 집합, 구, 곡면 중 어디에 있든 데이터의 구조와 대칭성을 중심으로 신경망을 설계하는 딥러닝의 한 분야입니다. 핵심 아이디어는 입력의 의미는 바뀌지 않으면서 입력이 변하는 경우, 예를 들어 이미지가 이동하거나 분자의 원자에 다른 라벨이 붙거나 3D 스캔이 회전할 때 모델이 예측 가능한 방식으로 반응해야 한다는 것입니다. Michael Bronstein, Joan Bruna, Yann LeCun, Arthur Szlam, Pierre Vandergheynst는 2017년 개관 논문 기하학적 딥러닝: 유클리드 데이터를 넘어서에서 이 명칭을 널리 알렸습니다. 2021년 Bronstein, Bruna, Taco Cohen, Petar Veličković의 프로토북은 그리드, 군, 그래프, 측지선, 게이지라는 다섯 영역을 중심으로 이 분야를 체계화했습니다.
불변성, 등변성, GDL 설계 체계#
두 가지 속성이 핵심 역할을 합니다. 변환 후에도 출력이 동일하면 함수는 해당 변환에 불변입니다. 예를 들어 고양이가 움직여도 이미지 분류 라벨은 "cat"으로 유지되어야 합니다. 출력이 입력과 함께 변환되면 등변입니다. 예를 들어 시맨틱 분할 마스크는 객체와 함께 이동해야 합니다. GDL 설계 체계는 이웃 간 정보를 혼합하는 등변 레이어, 영역을 더 거칠게 만드는 풀링 단계, 작업에서 단일 답변이 필요한 경우 최종 불변 판독 단계를 쌓습니다. 영역의 대칭군을 선택하면 익숙한 아키텍처를 얻을 수 있습니다:
컨볼루션은 모든 픽셀 위치에서 하나의 커널을 공유하므로, 컨볼루션 신경망(CNN)은 그리드에서 평행 이동 등변성을 적용한 사례입니다. 그래프 신경망(GNN)은 모든 간선에 동일한 함수를 적용하므로 노드에 다시 라벨을 붙이면 출력 순서만 바뀝니다. 트랜스포머는 토큰을 완전히 연결된 그래프로 취급하며, 셀프 어텐션은 순열 등변성을 가지므로 토큰 순서를 파악하려면 위치 인코딩이 필요합니다. GNN은 가장 잘 알려진 GDL 모델이며, GDL은 세 가지 모두를 설명하는 더 넓은 프레임워크입니다. Taco Cohen과 Max Welling이 2016년에 소개한 군 등변 CNN은 가중치 공유를 회전과 반사로 확장합니다. 메시 및 다양체 네트워크는 곡면의 국소 좌표 프레임에서 컨볼루션을 정의합니다.
Ultralytics YOLO26은 그리드 사례입니다. 컨볼루션은 픽셀 위치 간에 가중치를 공유하며 아키텍처에 내장되지 않은 대칭성은 데이터 증강으로 학습합니다. 기본적으로 학습 중 각 이미지를 fliplr=0.5의 확률로 가로 반전합니다. 세로 반전(flipud)과 무작위 회전(degrees)은 기본적으로 비활성화되어 있습니다.
그래프에서의 메시지 전달#
GDL의 그래프 모델은 메시지 전달을 기반으로 구축됩니다. 각 노드는 이웃으로부터 메시지를 수집하고 합계, 평균, 최댓값과 같이 순서에 영향을 받지 않는 함수로 메시지를 결합한 다음 자체 임베딩을 업데이트합니다. Google의 Justin Gilmer와 동료들은 2017년에 여러 그래프 아키텍처가 이 메시지 전달 방식으로 표현될 수 있음을 보였으며, 이를 이용해 분자의 양자화학적 특성을 예측했습니다. 작은 그래프의 노드 라벨을 바꾸면 두 대칭 속성을 직접 확인할 수 있습니다:
import torch
torch.manual_seed(0)
nodes = torch.randn(5, 3) # 원자 또는 사용자 5개, 특성 3개씩
adjacency = torch.zeros(5, 5)
edges = torch.tensor([[0, 1], [1, 2], [0, 2], [2, 3], [3, 4]])
adjacency[edges[:, 0], edges[:, 1]] = adjacency[edges[:, 1], edges[:, 0]] = 1
w_self, w_neighbors, w_dense = torch.randn(3, 4), torch.randn(3, 4), torch.randn(15, 4)
# 노드 라벨을 무작위 순서로 바꿉니다. 같은 그래프를 다른 순서로 나열합니다.
order = torch.randperm(5)
nodes_p, adjacency_p = nodes[order], adjacency[order][:, order]
# 메시지 전달: 각 노드는 자체 특성과 이웃의 합계를 결합합니다.
out = torch.relu(nodes @ w_self + adjacency @ nodes @ w_neighbors)
out_p = torch.relu(nodes_p @ w_self + adjacency_p @ nodes_p @ w_neighbors)
print(torch.allclose(out_p, out[order])) # 등변: 출력 순서가 노드 순서에 맞춰 바뀝니다.
print(torch.allclose(out_p.sum(dim=0), out.sum(dim=0))) # 불변: 그래프 수준 판독 결과는 바뀌지 않습니다.
# 평탄화된 노드 목록에 적용한 밀집 레이어는 라벨을 바꾼 그래프를 새로운 데이터로 취급합니다.
print(torch.allclose(nodes_p.flatten() @ w_dense, nodes.flatten() @ w_dense))True, True, False를 출력합니다. 메시지 전달 레이어의 출력은 노드 순서에 맞춰 정확히 재정렬되고, 그래프 수준의 합산 판독 결과는 바뀌지 않습니다. 일반적인 밀집 레이어는 순서를 바꿔 나열한 동일한 그래프에 대해 다른 답을 냅니다. PyTorch Geometric은 다양한 크기의 그래프를 배치 처리하는 기능과 함께 이러한 레이어 수십 개를 제공합니다.
응용 분야#
분자는 원자와 결합으로 구성된 그래프이므로 메시지 전달 네트워크는 신약 개발에 필요한 용해도와 결합력 등의 특성을 예측합니다. 단백질에는 3D 기하 구조가 더해집니다. AlphaFold 2는 불변 점 어텐션으로 예측 구조를 정제하며, 이를 통해 단백질 전체를 공간에서 회전하거나 이동해도 같은 결과를 얻습니다.
LiDAR 스캔과 깊이 센서는 순서가 없는 3D 점 집합인 포인트 클라우드를 생성합니다. Stanford의 Charles Qi와 동료들이 2017년에 개발한 PointNet은 모든 점에 동일한 네트워크를 적용하고 결과를 최댓값 풀링하므로 출력이 점의 순서에 영향을 받지 않습니다. 이 설계는 자율주행차와 로보틱스를 위한 여러 3D 객체 탐지 시스템의 기반입니다. Pinterest의 PinSage와 같은 GNN 기반 추천 시스템은 사용자와 항목으로 구성된 소셜 및 상업 그래프를 활용하며, 지식 그래프는 동일한 메시지 전달을 개체와 관계에 적용합니다.
기상 모델은 구면을 대상으로 실행됩니다. Google DeepMind가 2023년 Science에 발표한 GraphCast는 지구본 주위의 정이십면체를 세분화해 만든 다중 스케일 메시에서 메시지를 전달합니다. 0.25° 해상도에서 10일 후 수백 개의 변수를 1분 이내에 예측하며, 1,380개 검증 대상의 90%에서 ECMWF의 HRES라는 대표적인 운영용 결정론적 예보보다 뛰어난 성능을 보였습니다.










