| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
| 31 |
- 데이터
- 개발자
- 코테
- Database
- Leet Code
- sort
- 데이터베이스
- 컴퓨터사이언스
- 대학생
- 컴퓨터공학
- code
- 오블완
- 티스토리챌린지
- 코딩테스트
- GNN
- CS
- LeetCode
- Data_Structure
- DS
- SQL
- 데베
- coding
- db
- adaptive remeshing
- CNN
- Mesh
- Python
- mysql
- meshgraphnet
- 자료구조
- Today
- Total
sy1214ei 님의 블로그
[논문리뷰] Learning Mesh-Based Simulation with Graph Networks 본문
[논문리뷰] Learning Mesh-Based Simulation with Graph Networks
sy1214ei 2024. 12. 27. 10:320. Abstract
MESHGRAPHNETS는 복잡한 물리 시스템을 효과적으로 시뮬레이션하기 위해 개발된 혁신적인 프레임워크이다. 이 프레임워크는 과학과 공학의 다양한 분야에서 활용되는 메시 기반 시뮬레이션의 단점을 해결하고자 설계되었다. 그래프 신경망(GNN)을 활용하여 메시 그래프에서 메시지를 전달하고, 시뮬레이션 과정 중 메시의 구조를 동적으로 조정할 수 있는 기능을 제공한다.
MESHGRAPHNETS의 가장 큰 특징은 해상도에 의존하지 않는 동역학을 학습할 수 있다는 점이다. 이를 통해 다양한 복잡도와 규모의 시스템에 적용 가능하도록 설계되었다. 이 프레임워크는 공기역학, 구조 역학, 천 시뮬레이션과 같은 물리 시스템의 동역학을 정확히 예측할 수 있는 능력을 보여준다. 또한, 기존 시뮬레이션 대비 1~2배 이상 빠른 속도로 실행 가능하여 높은 효율성을 제공한다.
MESHGRAPHNETS는 신경망 시뮬레이터가 처리할 수 있는 문제의 범위를 넓히고, 복잡한 과학적 모델링 작업의 효율성을 크게 개선할 수 있는 가능성을 제시한다.
1. Introduction
최신 물리 시스템 모델링에서는 복잡한 변형 표면과 부피를 다루기 위해 주로 메시 기반의 유한 요소 시뮬레이션을 사용한다. 이러한 방식은 구조 역학, 공기역학, 전자기학, 지구물리학, 음향학 등 다양한 분야에서 널리 활용된다. 메시 표현은 특정 영역에 더 높은 해상도를 할당할 수 있는 적응형 기능을 제공하며, 이를 통해 강한 기울기가 예상되거나 높은 정확도가 필요한 부분에서 자원을 효율적으로 사용할 수 있다. 예를 들어, 공기역학 시뮬레이션에서는 에어포일 끝부분에 더 세밀한 해상도를 적용하여 정밀도를 높일 수 있다. 이러한 적응형 메시 덕분에 기존 방법으로는 불가능했던 수준의 높은 정확도와 해상도로 시뮬레이션을 실행할 수 있다.
하지만 메시 표현은 머신러닝 분야에서 상대적으로 적은 주목을 받았다. 기존에는 주로 CNN 기반의 격자 표현이 하드웨어 지원과 높은 인기를 바탕으로 사용되었기 때문이다. 이에 따라 우리는 적응형 메시 표현의 장점을 활용하여 물리 시스템의 동역학을 예측하는 새로운 방법을 제안한다. 이 방법은 시뮬레이션 상태를 그래프로 인코딩하고, 메시 공간과 유클리드 세계 공간이라는 두 가지 독립된 공간에서 계산을 수행하도록 설계되었다. 메시 공간에서 메시지를 전달함으로써 내부 동역학을 근사하고, 세계 공간에서 메시지를 전달하여 충돌이나 접촉과 같은 외부 동역학을 추정할 수 있다.


- 모델 구조
- 인코더(Encoder): 입력으로 주어진 메쉬를 그래프로 변환하며, 추가적인 세계 공간 엣지를 생성하는 과정을 포함한다.
- 프로세서(Processor): 메쉬 엣지와 세계 엣지를 따라 여러 번 메시지를 전달하여 모든 노드와 엣지의 임베딩을 업데이트하는 역할을 담당한다.
- 디코더(Decoder): 각 노드에 대한 가속도를 추출하여 메쉬를 업데이트하는 기능을 지닌다.
- 시뮬레이션 과정
- 모델은 메쉬를 업데이트하여 다음 시간 단계의 상태를 예측하며, 이 과정을 통해 반복적으로 메쉬의 동작을 시뮬레이션할 수 있는 기반을 제공한다.
- 장점
- 이 방법은 구조 역학, 유체 역학 등 다양한 물리적 시스템의 동역학을 학습할 수 있는 가능성을 지니며, 메쉬 공간 계산을 활용하여 더 복잡한 동역학에 일반화할 수 있는 능력을 갖춘다.
3. Model
[시스템의 상태 표현]
- 시뮬레이션 메쉬
- 시간 t에서 시스템의 상태는 시뮬레이션 Mesh M_t = (V,E_M)으로 설명된다.
- V: Mesh node집합으로 각각의 노드는 특정 위치를 나타낸다.
- E_M: nodes를 연결하는 Mesh Edge이다.
- 시간 t에서 시스템의 상태는 시뮬레이션 Mesh M_t = (V,E_M)으로 설명된다.
- Node와 Dynamical quantities q_i
- 각 Node i는 두가지 주요 정보를 갖는다.
- 참조 Mesh 공간좌표 u_i: Mesh의 기본 위치
- Dynamical quantities q_i: 모델링 하고자하는 물리적 특성(예: 속도, 압력 등)이다.
- Word Space 좌표 x_i: 3D 공간에서 Mesh의 동적상태를 설명한다. 즉, Mesh가 어떻게 움직이고 변형되는지를 나타낸다.
- 각 Node i는 두가지 주요 정보를 갖는다.
[오일러 시스템 VS 라그랑주 시스템]
- 오일러 시스템
- 오일러 시스템은 고정된 메쉬 위에서 연속적인 필드(예: 속도)의 변화를 모델링한다.
- 여기서 각 노드에서 샘플링된 동적 양 𝑞_𝑖는 Mesh의 Node에서 이러한 필드를 측정한다.
- 라그랑주 시스템
- 라그랑주 시스템은 움직이고 변형되는 표면 또는 부피를 나타낸다.
- 라그랑주 시스템에서는 두가지 좌표가 필요하다.
- Mesh space u_i: 메쉬의 기본 위치.
- world space x_i: 3D 공간에서 메쉬의 동적 상태를 설명한다. 즉, 메쉬가 어떻게 움직이고 변형되는지를 나타낸다.

3.1 Learning Forward Dynamics
- Encoder
- 모델은 물리적 상호작용을 학습하기 위해 노드와 엣지의 위치 정보와 동적 특성을 활용하는데, 이를 효과적으로 처리하기 위해 다양한 특성을 결합한다.이 외에도, 각 노드에는 동적 특성 qi와 노드의 유형(예: 고정 노드, 가동 노드)을 나타내는 one-hot 벡터를 포함시킨다. 이러한 정보는 그래프의 노드가 어떤 역할을 하는지 모델이 이해할 수 있도록 돕는다.
- 모든 특성은 결합되어 각 노드와 엣지에 대해 크기 128의 잠재 벡터(latent vector)로 변환된다. 이 변환 과정은 메시 엣지, world 엣지, 그리고 노드 각각에 대해 설계된 다층 퍼셉트론(MLP)을 통해 이루어진다.
- 먼저, 메시 공간에서의 상대적 위치 정보인 변위 벡터 uij=ui−uj와 그 크기 ∣uij∣|를 메시 엣지에 포함시킨다. 이 정보는 노드 간의 상대적인 위치를 표현하며, 메시의 구조를 이해하는 데 중요한 역할을 한다. 또, 세계 좌표계에서의 상대적 변위 벡터 xij=xi−xj와 그 크기 ∣xij∣|는 메시 엣지뿐만 아니라 세계 엣지에도 포함된다. 이는 메시 공간에서는 멀리 떨어져 있지만 세계 좌표계에서 가까운 노드들 간의 상호작용을 모델링하는 데 도움을 준다.
- 최종 결합
- 위에서 설명한 모든 특성(위치, 크기, 동적 특성, 노드 타입)을 결합하여 각 노드와 엣지에 대해 128 크기의 잠재 벡터(latent vector)로 변환된다.
- 변환 과정은 다음과 같은 인코더 MLP(다층 퍼셉트론)를 사용한다
- : 메시 엣지 eij^M를 인코딩
- ϵ^W: 세계 엣지 eij^W를 인코딩
- ϵ^V: 노드 vi를 인코딩
- Processor (: Update)
- Processor는 L개의 동일한 구조를 가진 메시지 전달 블록으로 구성된다. 각 블록은 그래프 네트워크(GraphNet) 블록의 일반화된 형태로, 여러 종류의 엣지(메시 엣지와 세계 엣지)를 처리할 수 있도록 설계되었다.
- 작동과정
- 입력 데이터 처리
각 블록은 이전 단계의 출력을 입력으로 받아 작동하며, 그래프의 mesh edge, world edge , 그리고 노드(v_i)의 정보를 순차적으로 업데이트한다. - 엣지 업데이트
- mesh edge :
함수 f^M를 사용하여 메시 엣지를 업데이트한다. 이 과정에서 메시 엣지의 현재 값, 연결된 두 노드(v_i, v_j)의 정보를 함께 활용한다. - world edge :
함수 f^W를 사용하여 세계 엣지를 업데이트한다. 메시 엣지와 유사하게, 세계 엣지의 현재 값과 연결된 노드들의 정보를 함께 활용한다.
- mesh edge :
- 노드 업데이트
- 각 노드 (vi′)는 함수 f^V를 통해 업데이트되며, 노드의 기존 정보와 해당 노드에 연결된 모든 메시 엣지 및 세계 엣지의 합산 값을 입력으로 받는다.
- 입력 데이터 처리
- 이 모든 업데이트 함수(f^M, f^W, f^V)는 다층 퍼셉트론(MLP)을 통해 구현되며, 학습 안정성을 높이기 위해 잔차 연결(residual connection)을 포함한다.
- Processor는 메시 엣지, 세계 엣지, 노드의 정보를 순차적으로 업데이트하며, 이를 통해 그래프의 전체적인 구조와 동역학을 학습한다. 이 단계는 모델이 그래프 내에서의 상호작용을 이해하고, 다음 단계에서 사용할 더 정교한 특징을 생성하도록 돕는 중요한 역할을 한다.
- Decoder and state updater
- Decoder의 역할
- Decoder는 최종 처리 단계에서 나온 노드의 잠재 특성 v_i를 출력 특성 p_i로 변환한다. 이 과정은 MLP δ^V를 통해 이루어진다.
- 출력 특성 pi와 통합
- 출력 특성 p_i는 상태 q_i의 고차 미분(higher-order derivatives)으로 해석될 수 있으며, 이를 이용해 다음 시간 단계의 동적 상태 q_i^{t+1}를 계산한다. 계산 과정은 Forward-Euler 적분를 사용한다.
- Decoder의 역할



- 메시 노드 업데이트
- 최종적으로, 업데이트된 q_i^{t+1} 값을 사용해 메시 노드 를 업데이트하여 M^{t+1} 상태를 생성한다. 특정 시스템의 경우, 각 예측 단계 후 메시를 동적으로 적응시키는 과정이 추가로 포함된다.
3.2 Adaptive Remeshing
적응형 리메싱(Adaptive Remeshing)은 시뮬레이션 도메인에서 필요한 영역의 메시 해상도를 동적으로 조정하는 기법이다. 이 과정은 크게 두 가지 단계로 이루어진다.
- 시뮬레이션 도메인에서 어떤 영역이 세밀한(fine) 해상도가 필요한지 또는 거친(coarse) 해상도로 충분한지 식별한다.
- 해당 영역의 노드와 엣지 연결성을 조정하여 목표 해상도를 달성한다.
특정 도메인에서는 물리적 시스템의 특성에 따라 휴리스틱(heuristics)을 사용해 세부적인 기준을 설정한다. 예를 들어, 천 시뮬레이션에서는 곡률이 높은 영역을 세밀하게 조정해 부드러운 움직임을 표현하고, 유체 역학 시뮬레이션에서는 속도장의 기울기가 큰 벽면 근처를 세밀하게 조정한다.
이 연구에서는 Sizing Field Methodology를 사용해 리메싱 과정을 수행한다. 이 방법은 각 지역에서 최대 허용 엣지 길이를 지정하는 텐서 S(u)를 활용한다. 메시 엣지 u_{ij}는 특정 기준을 만족할 때 유효하다고 간주되며, 기준은 다음과 같다

이 조건을 만족하지 않으면 해당 엣지는 너무 길다고 판단되어 분할(split)된다. 반대로, 유효하지 않은 엣지를 줄이는(collapsing) 과정을 통해 메시를 거칠게(coarse) 조정한다.
최종적으로, 리메싱 과정은 입력 메시 과 Sizing Field S를 기반으로 Mesh M′를 생성한다. 이 과정은 메시 구조를 최적화하여 계산 자원을 효율적으로 사용하면서도 중요한 물리적 세부 사항을 정확히 표현할 수 있도록 돕는다. 이는 시뮬레이션의 정확성과 효율성을 동시에 보장하는 중요한 기법이다.

[Learned Remeshing]
Learned Remeshing(학습된 리메싱)은 동적 리메싱(dynamic remeshing)의 효율성과 정확성을 활용하기 위해, 테스트 단계에서도 메시를 적응적으로 조정할 수 있어야 한다는 점을 강조한다. 그러나 기존의 리메싱 과정에서는 도메인 지식이 필요하며, 모델 실행 중 각 단계에서 리메싱 작업을 반복적으로 호출해야 하기 때문에, 학습된 모델의 이점을 충분히 활용하기 어렵다.
이를 해결하기 위해, 이 연구에서는 리메싱의 도메인 특화 부분인 Sizing Field(크기 필드)를 모델링하는 방법을 제안한다. 이를 위해 Section 3.1에서 사용한 아키텍처와 동일한 구조를 사용하여, 디코더 출력 p_i를 통해 각 노드에 대한 크기 텐서(sizing tensor)를 생성하도록 학습한다. 테스트 단계에서는 각 시간 단계마다 다음 시뮬레이션 상태와 크기 필드를 동시에 예측하며, 이를 기반으로 도메인에 독립적인 일반적인 리메셔(remesher)를 사용하여 다음 단계의 메시 M^{t+1}를 계산한다. 이 과정은 아래 식으로 표현된다.

연구에서는 이 과정을 삼각형 메시(triangular mesh)에 대해 설명하며, 간단한 리메셔를 사용해 이를 구현한다. 크기 필드는 메시의 유형에 구애받지 않지만, 메시 유형에 따라 다른 로컬 리메셔가 필요할 수 있다. 예를 들어, 사면체 메시(tetrahedral mesh)의 경우 Wicke et al.의 방법을 사용할 수 있고, 사각형 메시(quad mesh)는 삼각형 메시로 쉽게 분할할 수 있다.
결론적으로, 학습된 리메싱은 도메인 지식에 의존하지 않고도 테스트 단계에서 메시를 적응적으로 조정할 수 있는 효율적이고 일반화된 방법을 제공한다. 이를 통해 모델의 유연성과 적용 가능성을 크게 확장할 수 있다.
3.3 Model Training
- Dynamics model 학습
- 동역학 모델은 디코더가 생성하는 각 노드의 출력 특성 p_i를 기반으로 학습된다. 이를 위해 p_i와 대응하는 실제 값(ground truth) ~\tilde{p_i} 간의 차이를 측정하는 L2 손실을 사용한다. 즉, 모델이 예측한 값이 실제 값에 가까워지도록 학습을 진행한다.
- Sizing Field Model 학습
- 크기 필드 모델 또한 실제 크기 필드(ground truth sizing field)와 예측 값 간의 L2손실을 기반으로 학습된다.
- 만약 학습 데이터에 크기 필드 정보가 포함되지 않은 경우(예: 실제 시뮬레이터에서 제공되지 않는 경우), 시뮬레이터 메시 샘플 데이터를 사용해 호환 가능한 크기 필드를 추정할 수 있다.
모델은 동역학 특성과 크기 필드를 각각 학습하여 시뮬레이션 정확도를 높인다. 학습 데이터가 제한적이거나 직접적인 크기 필드 정보가 없더라도, 시뮬레이터 데이터를 활용해 대체 레이블을 생성함으로써 모델 학습을 가능하게 한다. 이를 통해 모델은 더 다양한 상황에 적응할 수 있는 유연성을 갖춘다.
4. Experimental Domains
1. 실험 영역
MeshGraphNet은 다음과 같은 다양한 물리적 시스템에 대해 테스트되었다.
- 천 시뮬레이션 (Cloth Simulation)
- 구조 역학 (Structural Mechanics)
- 비압축성 및 압축성 유체 (Incompressible and Compressible Fluids)
각 실험에서 학습 및 테스트 데이터는 도메인별로 다른 시뮬레이터를 사용해 생성되었다.
2. 메시의 특성
- 실험에 사용된 메시(mesh)는 정규 메시(regular mesh)부터 매우 불규칙한 메시(irregular mesh)까지 다양하다.
- 예를 들어, 데이터셋 "AIRFOIL"의 엣지 길이는 2*10^{-4}에서 까지 다양하다.
- 메시의 해상도는 시간 경과에 따라 동적으로 변경되도록 설정되었다(Adaptive Remeshing).
3. 구조 역학 실험 (Structural Mechanics Experiment)
- 시스템 구성
- 이 실험은 초탄성체(hyper-elastic plate)를 다루며, 이는 운동학적 작동기(kinematic actuator)에 의해 변형된다.
- 시뮬레이션은 준정적 시뮬레이터(quasi-static simulator)를 사용해 수행되었다.
- 메시 구성
- 라그랑주 사면체 메시(Lagrangian tetrahedral mesh)를 사용하며, Node 타입은 one-hot 벡터로 구분된다.
- 입력 데이터
- 메시 노드에서 다음 정보를 인코딩한다
- 변위 벡터 u_i
- 위치 x_i
- 노드 타입 n_i
- 메시 노드에서 다음 정보를 인코딩한다
- 출력 데이터
- 모델은 라그랑주 속도 x_i를 예측하고, 이를 적분해 다음 위치 x_i^{t+1}를 계산한다.
- 두 번째 출력으로는 각 노드에서 폰미세스 응력(von-Mises stress) 를 예측한다.

MeshGraphNet은 다양한 도메인에서 효과적으로 작동하며, Adaptive Meshing을 통해 소규모와 대규모 스케일 모두에서 정확한 예측을 수행한다. 특히, 학습에서 사용한 메시보다 훨씬 더 큰 크기의 메시에서도 일반화 능력을 보여준다. 이를 통해 모델은 다양한 물리적 시스템에 적용 가능한 강력한 도구임을 입증했다.
4. 데이터와 코드
- 실험에 사용된 데이터셋과 코드베이스는 GitHub에서 제공된다.
https://github.com/google-deepmind/deepmind-research/tree/master/meshgraphnets
deepmind-research/meshgraphnets at master · google-deepmind/deepmind-research
This repository contains implementations and illustrative code to accompany DeepMind publications - google-deepmind/deepmind-research
github.com
5. Result

(a) 모델 성능 비교
MeshGraphNet은 모든 데이터셋에서 다른 모델들보다 낮은 RMSE(Root Mean Square Error)를 기록하며 가장 우수한 성능을 보여준다. 특히, U-Net보다 적은 자원을 사용하면서도 높은 정확도를 달성했다.
(b) 히스토리와 메시 공간 위치
FLAGSimple 데이터셋에서 모델의 히스토리 크기와 메시 공간 위치 정보가 성능에 미치는 영향을 분석한 것이다.
- GNS는 메시 공간 위치(mesh-pos)를 추가해도 동적 메시에서의 성능이 떨어지는 경향을 보인다.
- MeshGraphNet은 동적 메시에서도 안정적으로 낮은 RMSE를 유지하며 성능이 뛰어나다.
(c) Remeshing
FLAGDynamic과 SPHEREDynamic 데이터셋에서 학습된 리메싱 방법의 성능을 분석한 것이다.
- Ground truth meshes를 사용할 때 성능이 가장 좋지만, 학습된 크기 필드를 사용하는 경우에도 정확한 예측이 가능하다.
- 추정된 타겟을 기반으로 한 크기 필드의 경우에도 안정적인 성능을 보여준다.
(d) 메시지 전달 단계와 히스토리 크기의 영향
- Messaging Passing Step (왼쪽 그래프)
- 메시지 전달 단계 수(L)가 증가할수록 성능이 개선된다. 이 충분하지 않으면 성능이 떨어질 수 있다.
- History Size (오른쪽 그래프)
- 너무 큰 히스토리 크기(h)를 사용하면 과적합(overfitting) 위험이 증가하며 성능이 저하될 수 있다.
- 적절한 히스토리 크기(1~2단계)가 성능 향상에 유리하다.
- MeshGraphNet은 다른 모델보다 모든 데이터셋에서 더 나은 성능을 보여준다.
- 학습된 크기 필드와 적응형 리메싱은 실제 메시 데이터가 없을 때에도 안정적인 결과를 제공한다.
- 충분한 메시지 전달 단계와 적절한 히스토리 크기를 설정하는 것이 성능 최적화에 중요하다.
이 실험은 MeshGraphNet의 유연성과 안정성을 잘 입증한다.
'[Paper Review]' 카테고리의 다른 글
| [Paper Review] Learning Mesh-Based Simulation with Graph Networks_Shape Tracking (3) | 2025.01.11 |
|---|---|
| [Paper Review] Learning Mesh-Based Simulation with Graph Networks_이모저모 (0) | 2025.01.11 |
| [논문리뷰 Based] MeshGraphNet이 무엇인가? (0) | 2024.12.27 |
| [논문리뷰] MeshNet: Mesh Neural Network for 3D shape Representation (3) | 2024.12.27 |
| [논문리뷰] MeshCNN: A Network with an Edge (0) | 2024.12.26 |