2022년 11월 6일 일요일

화학, 재료 분자, 다차원 형상 데이터 학습, 예측, 재구성에 사용되는 GCN(Graph Convolutional Networks. GNN)과 GDL (Geometric Deep Learning)에 대해

Introduction
많은 유용한 딥러닝 기술이 릴리즈되고 있다. 그 중에  GCN(Graph Convolutional Networks. GNN)과 GDL (Geometric Deep Learning)에 대해 이야기를 나누어 보자.

GCN은 다음 그림과 같이, 재료를 구성하는 화학 분자 분석, 탐지 및 설계, 영상 컨텍스트 해석 및 생성, 다차원 포인트 클라우드 세그먼테이션 등 다양한 영역에서 사용된다. 

GCN based application (Chemical toxicity prediction based on semi-supervised learning and graph convolutional neural network. link)
GCN based application (Applications of Graph Neural Networks. link)
GCN based application (Learning 3D Semantic Scene Graphs from 3D Indoor Reconstructions. link)
Example. Machine Learning for Scent: Learning Generalizable Perceptual Representations of Small Molecules (link)

Deep learning (Michael Bronstein, 2021, Geometric foundations of Deep Learning)

GCN은 용어 그대로 CNN개념을 행렬로 보았을때 바로 인접되지 않은 데이터에대한 특징을 추출할 수 있는 필터 역할을 한다. 
CNN feature map visualization (link)

GCN(Graph Convolutional Networks. GNN-Graph Neural Network)
GCN은 다음 그림 우측과 같이 인접되지 않은 그래프 형식의 데이터에서 특징을 추출할 때 유용한다.

CNN, GNN(Zongham al et, 2019, A Comprehensive Survey on Graph Neural Network)

일반적으로, CNN은 데이터를 구성하는 텐서의 인접 요소에서 특징을 수집해, 특징 벡터를 생성한다. 
CNN(Thomas Kipf, Topics in AI (CPSC 532S): Multimodal Learning with Vision, Language and Sound. Link)

그래프 형식 데이터는 이런 방식이 불가능하므로, 다음과 같은 인접행렬을 구성해, 그래프 요소간 연결성을 정의하고, 주변 인접 데이터와 관계를 포함한 특징을 계산해야 한다. 
Adjacency Matrix (link)

다음 우측 그림에서 적색 노드 근처 인접된 노드의 특징을 수집해 특징 벡터를 계산해야 한다면, kNN으로 알려진 인접 노드들을 탐색한 후, 인접 행렬을 구성해야 한다. 다음 수식에서 Ni는 이웃 노드 인덱스, Cij는 정규화를 위한 팩터, h는 노드의 특징 벡터, l은 노드 인덱스를 의미한다. 
CNN(Thomas Kipf, Link)

Node, Link, Graph prediction
GCN은 노드, 링크로 구성되는 그래프 데이터에 대한 학습이 가능하다. 다음은 학습된 모델을 통해, 가능한 데이터 분류, 에측, 재구성 등의 사례를 보여준다. 
GNN based classification(Zongham al et, 2019)

GNN based reconstruction(Zongham al et, 2019)

GDL(Geometric Deep Learning)
GDL은 GCN을 이용해 기하학적 딥러닝 모델을 정의할 수 있음을 설명하는 용어이다. 분자 구조, 다차원 포인트 등은 결론적으로 기하학적으로 다차원 요소간의 관계를 표현한 그래프 구조이다. GDL은 가장 떠오르는 딥러닝 분야 중 하나이다.
Non-Euclidean Data(Flawnson Tong, 2019, What is Geometric Deep Learning?)
다차원 데이터를 학습하는 것은 쉽지 않다. 최근 이 기술과 관련된 컨퍼런스가 개최되었다.

또한, 이 기술과 관련된 PyTorch Geometric 오픈소스 프로젝트가 개발되고 있다.
PyG (PyTorch Geometric) (githublink)

PyTorch Geometry 라이브러리는 화학 분자 모델과 같은 위상 그래프 형식 데이터셋을 딥러닝 방식으로 학습, 계산, 분류, 해석하기 위해 개발된 오픈소스로 많이 활용되고 있다. 
이외 다른 오픈소스 라이브러리는 다음 링크를 참고한다.

Practice
GCN과 유사한 개념 사용 사례로, 다음과 같이 스캔된 3차원 데이터셋을 분류하는 PointNet 딥러닝 모델이 있다. 스캔된 포인트 클라우드 해석도 그래프 모델로 분석할 수 있다. 

포인트 클라우드의 각 포인트는 화학 분자처럼 특징을 가지고, 포인트 간의 관계를 가진다. 이를 통해, 제시된 포인트 집합이 어떤 종류인지 해석 및 예측할 수 있다. 이는 화학 분자식을 이용해 어떤 단백질인지 예측하는 사례와 개념적으로 동일하다. 

다음 표시된 링크에 실행 코드를 확인할 수 있다. 
3D Object detection classifier (link. explain)

PointGNN은 포인트 클라우드 세그먼테이션에 GNN을 사용한다. 
PointGNN (github)

MeshGraphNet은 학습 모델에 의해 메쉬를 복원한다.
MeshGraphNet (github)

다음은 GNN 관련 유명예제인 카라테 쇼셜 클럽 그래프 데이터를 학습하고 예측하는 예제이다. 
Kerate club classification (colab)

그래프 데이터로 표현된 분자 모델들을 학습해, 용해도를 예측한다. 학습 모델에 목적에 맞게 다양한 분류, 복원이 가능하다(분자 모델 구조에서 향기 분류, 강도 등 분석 예측. 모델 구조 재구성 등). 
GNN classification for molecular structure (colab)

다음은 심장독성 특징이 있는 화학물 분자구조를 예측하는 모델 예이다. 
TF-GNN (kaggle)
Conclusion
이 글은 GCN, GDL의 개념, 사용 라이브러리, 응용 사례에 대해 정리해 보았다. GCN은 아직 이미지, 자연어 딥러닝 분야에 비해 발전 속도가 느리다. 데이터셋 한계, 대용량 데이터셋 이슈, 계산 과정의 복잡성 등의 문제가 있지만, 오픈소스 커뮤니티를 통해 이런 문제가 해결되고 있는 중이다. 이 분야는 하드웨어 성능 개선과 더불어 꾸준히 발전할 것이다. 

GCN 기술 개발 역사 (link)

Reference




댓글 없음:

댓글 쓰기