[22′ Computer Methods in Applied Mechanics and Engineering] Gradient-enhanced physics-informed neural networks for forward and inverse PDE problems

This entry is 2의 6 in the series Deep Simulation

1. 들어가며

딥러닝을 활용한 물리 방정식(PDE) 해결 방식은 다양한 분야에서 주목받고 있지만, 기존 방법에는 몇 가지 한계가 존재합니다. 특히, Physics-Informed Neural Networks(PINNs) 방식은 PDE의 잔차(Residual)를 최소화하는 방식으로 학습되지만, 학습 속도가 느리고, 국소적인 최적해(Local Minima)에 갇힐 가능성이 있으며, 고차 미분이 포함된 방정식에서는 정확도가 떨어지는 문제가 있습니다.

이번 포스팅에서는 이러한 문제를 해결하기 위해 제안된 Gradient-Enhanced PINN(gPINN) 논문을 리뷰하려고 합니다. gPINN은 기존 PINN과 달리 PDE의 잔차뿐만 아니라 잔차의 기울기(Gradient)까지 최소화하는 방식을 도입하여 더 빠르고 정확한 학습이 가능하도록 개선된 모델입니다.

이번 리뷰에서는 기존 PINN 방식의 한계를 짚어보고, gPINN이 이를 어떻게 해결하는지 살펴보겠습니다. 또한, 논문에서 수행한 실험을 분석하여 gPINN이 실제로 얼마나 효과적인지 확인하고, 마지막으로 gPINN의 장점과 한계를 정리해보겠습니다.

먼저, 기존 PINN 방식이 어떤 문제를 가지고 있는지부터 살펴보겠습니다.

2. 기존 방법의 문제점

딥러닝을 활용해 물리 방정식을 해결하는 PINN(Physics-Informed Neural Networks)은 기존의 데이터 기반 신경망과 비교해 물리 법칙을 반영할 수 있다는 강점이 있습니다. 하지만 PINN 방식에도 몇 가지 한계가 존재합니다. 이번 챕터에서는 기존 PINN의 문제점을 살펴보고, 왜 gPINN이 필요하게 되었는지 그 배경을 설명하겠습니다.

2-1. 기존 PINN의 학습 방식과 한계

PINN은 물리 법칙을 따르는 신경망을 학습하기 위해, PDE(편미분방정식)의 잔차(Residual)를 최소화하는 방식으로 학습됩니다. 기존 PINN에서 사용하는 손실 함수는 다음과 같이 정의됩니다.

\[ {L}_{\text{PDE}} = \mathbb{E} [ R(x)^2 ] \]

여기서, R(x)는 PDE의 잔차(Residual)이며, 이상적인 상황에서는 R(x)=0 을 만족해야 합니다. 즉, 기존 PINN은 PDE의 잔차가 최소화되도록 학습하는 구조입니다. 하지만 이러한 방식에는 몇 가지 문제가 있습니다.

2-2. 학습 속도가 느려지고, 최적해로 수렴이 어렵다는 문제

기존 PINN 방식은 잔차 R(x) 자체를 줄이는 방식으로만 학습하기 때문에, 몇 가지 단점이 있습니다.

① 국소적인 최적해(Local Minima) 문제

기존 PINN 방식은 PDE의 해를 찾을 때, 잔차가 0에 가까워지는 방향으로 학습합니다. 하지만 모든 PDE가 단순한 형태로 해를 가질 수 있는 것은 아닙니다. 특히, 비선형 PDE에서는 여러 개의 해(해의 다중성, Multimodal Solutions)가 존재할 수 있으며, 단순히 R(x)=0 을 만족하는 값이 최적의 해가 아닐 수도 있습니다.

즉, 기존 PINN 방식에서는 PDE의 해가 여러 개 존재할 경우, 특정 국소적인 해(Local Minimum)에 갇힐 위험이 높습니다. 이 경우, 학습이 진행되더라도 정확한 해를 찾지 못할 가능성이 커집니다.

② 수렴 속도가 느림

기존 PINN은 PDE의 해를 근사할 때, 고차 미분 항이 포함된 경우 수렴 속도가 느려지는 경향을 보입니다.
특히, PDE의 고차 미분(High-Order Derivatives)이 포함된 경우, 모델이 잔차를 줄이는 방향으로 학습하는 과정에서 해의 기울기(Gradient)까지 고려하지 않기 때문에 수렴 속도가 매우 느려질 수 있습니다.

이는 기존 PINN 방식이 잔차(Residual)만 최소화하고, 잔차의 기울기(Gradient)는 고려하지 않기 때문입니다.
즉, 모델이 잔차를 줄이면서도 해의 형태를 제대로 찾아가지 못할 가능성이 존재합니다.

2-3. 높은 미분 차수에서 정확도가 떨어지는 문제

기존 PINN 방식은 1차 미분까지는 비교적 안정적으로 학습할 수 있지만, 2차 이상 미분 항이 포함된 PDE의 경우 학습이 어려운 경향을 보입니다. 그 이유는 다음과 같습니다.

① 미분 연산 과정에서의 오차 누적

PINN은 PyTorch나 TensorFlow 같은 프레임워크에서 자동 미분(Automatic Differentiation, AD)을 사용하여 PDE를 학습합니다. 하지만 고차 미분이 반복적으로 계산될수록 수치적 오차(Numerical Error)가 누적될 가능성이 커집니다. 특히, PDE의 잔차 R(x)가 작아질수록, 잔차의 기울기 ∇R(x)도 함께 안정적으로 학습되어야 하는데, 기존 PINN은 이를 고려하지 않기 때문에 학습이 불안정해질 수 있습니다.

② PINN이 학습하는 방향이 충분하지 않음

기존 PINN에서는 PDE의 잔차 R(x)를 0으로 수렴하도록 학습하지만, 잔차의 기울기(Gradient)까지 고려하지 않기 때문에 PDE의 해를 더욱 정밀하게 찾아가는 것이 어렵습니다.
이로 인해, 고차 미분 항이 포함된 방정식에서는 해가 부정확하게 근사되는 문제가 발생할 수 있습니다.

3. 제안 방법: gPINN

이전 챕터에서 기존 PINN의 한계를 살펴보았어요. 기존 PINN 방식은 PDE의 잔차(Residual) R(x)를 최소화하는 방식으로 학습되지만, 국소적인 최적해(Local Minima)에 빠지기 쉽고, 수렴 속도가 느리며, 고차 미분을 포함한 PDE에서는 정확도가 떨어지는 문제가 있었습니다.

이러한 문제를 해결하기 위해 논문에서는 Gradient-Enhanced PINN(gPINN)을 제안합니다. gPINN은 기존 PINN이 고려하지 않았던 잔차의 기울기(Gradient)를 추가적인 손실 항으로 사용하여 PDE의 해를 더욱 정밀하게 학습하도록 합니다.

이번 챕터에서는 gPINN이 기존 PINN과 어떻게 다른지, 그리고 어떻게 문제를 해결하는지 자세히 살펴보겠습니다.

3-1. gPINN이란 무엇인가?

gPINN(Gradient-Enhanced Physics-Informed Neural Networks)은 기존 PINN의 학습 방식에 새로운 개념을 추가한 모델입니다. 기존 PINN은 PDE의 잔차(Residual)를 0으로 만드는 방향으로 학습하지만, gPINN은 잔차의 기울기(Gradient)까지 0이 되도록 학습하여 더 빠르고 정확한 해를 찾을 수 있도록 개선되었습니다.

기존 PINN과 gPINN의 차이를 정리하면 다음과 같습니다.

모델손실 함수 방식학습 속도정확도
기존 PINNPDE의 잔차 R(x)만 최소화상대적으로 느림고차 미분이 포함된 PDE에서 낮음
gPINNPDE의 잔차 R(x)뿐만 아니라 잔차의 기울기 ∇R(x)도 최소화더 빠름고차 미분 문제에서도 정확도 높음

기존 PINN은 PDE의 해가 여러 개 존재할 경우, 단순히 R(x)=0을 만족하는 특정 해로만 수렴할 수 있어요. 하지만 gPINN은 잔차의 기울기까지 고려하기 때문에, 더 정확하고 물리적으로 타당한 해를 찾을 수 있습니다.

3-2. 기존 PINN vs gPINN 손실 함수 비교

기존 PINN은 PDE의 잔차(Residual)를 최소화하는 방식으로 학습됩니다. 손실 함수는 다음과 같이 정의됩니다.

\[ {L}_{\text{PDE}} = \mathbb{E} [ R(x)^2 ] \]

여기서, R(x)는 PDE의 잔차(Residual)이며, 이상적인 해에서는 R(x)=0 이 됩니다. 즉, 기존 PINN은 PDE의 해가 이 조건을 만족하도록 학습됩니다.

하지만 이 방식만으로는 PDE의 해가 여러 개 존재할 경우, 특정 국소적인 해에 수렴할 위험이 있으며, 높은 차수의 PDE에서는 학습이 어려워질 수 있습니다.

gPINN에서는 기존 PINN 손실 함수에 새로운 손실 항을 추가합니다. 즉, PDE의 잔차뿐만 아니라, 잔차의 기울기(Gradient)까지 최소화하는 방식입니다.

\[ {L}_{\text{gPINN}} = \mathbb{E} [ R(x)^2 ] + \lambda \mathbb{E} [ \nabla R(x)^2 ] \]

여기서,

  • 첫째항 : 기존 PINN에서 사용하던 PDE 잔차 손실
  • 둘째항 : 추가적으로 PDE 잔차의 기울기까지 최소화하는 손실
  • λ : 두 손실 간의 균형을 조정하는 하이퍼파라미터

즉, gPINN은 PDE의 해가 잔차뿐만 아니라, 잔차의 기울기까지 고려하여 더욱 정밀하게 학습되도록 합니다.

3-3. 핵심 원리만 쉽게 이해하기

수식이 많아 조금 어렵게 느껴질 수 있는데요. 핵심 아이디어는 간단합니다. 예를 들어서 생각해봅시다.

그림1. gPINN 핵심 원리
그림1. gPINN 핵심 원리

위와 같은 지수함수 형태의 Governing Equation을 딥러닝 모델을 사용하여 찾다고 가정해봅시다. 이때 딥러닝 모델이 학습해 가고 있는 함수의 출력 결과는 회식과 같은 곡선이라고 가정할게요.

이때 Data Loss는 샘플 x1에서의 y값들이 같아지는 것입니다. MSE Loss라면 y1-y2의 제곱값이 줄어들도록 loss를 구성하겠죠. 그리고 기존 PINN loss는 여기에 더해 PDE Loss를 더해주는데요. 아주 쉽게 생각해보면 편미분값들로 표현된 식이므로, 샘플 x1에서의 기울기라고 생각해봅시다. 그럼 PINN loss는 결국 x1에서의 기울기 m2을 Governing Eq에서의 기울기 m1과 같아지도록 유도하는 것입니다.

gPINN은 여기서 한걸음 더 나아갑니다. y값과 그때의 기울기만 같아지도록 유도해서는 고차원 PDE에서는 잘 학습이 안되기 때문이죠. x1에서의 기울기에 대한 기울기도 같아지도록 강제해줍니다. 기울기가 같아지기 위해서는 해당 값 뿐만 아니라 좌우 주변값까지 같아야만 하는데요. 따라서 주변부에 대한 데이터를 추가로 강제해주는 효과를 줌으로써 더 좋은 성능을 내는 원리라고 이해해볼 수 있습니다.

3-4. 파이썬 코드로 gPINN 구현하기

이제 gPINN이 기존 PINN과 어떻게 다른지 쉽게 이해할 수 있도록, 파이썬 코드 예제를 작성해보겠습니다.
여기서는 Poisson 방정식을 예제로 사용하며, 기존 PINN 손실과 gPINN 손실을 비교해보겠습니다.

(1) 기존 PINN 손실 함수

import torch

# PDE Residual 계산 (기존 PINN 손실)
def pde_residual(model, x):
    x.requires_grad_(True)
    u = model(x)

    # 1차 미분
    du_dx = torch.autograd.grad(u, x, torch.ones_like(u), create_graph=True)[0]

    # 2차 미분
    d2u_dx2 = torch.autograd.grad(du_dx, x, torch.ones_like(du_dx), create_graph=True)[0]

    # Poisson 방정식의 잔차 (Residual)
    residual = d2u_dx2 + torch.sin(torch.pi * x)
    return residual

# 기존 PINN 손실 (PDE의 Residual 크기 최소화)
def pde_loss(model, x):
    residual = pde_residual(model, x)
    return torch.mean(residual ** 2)

(2) gPINN 손실 함수 (잔차의 기울기까지 고려)

# gPINN 손실 (잔차의 기울기까지 최소화)
def gradient_loss(model, x):
    residual = pde_residual(model, x)

    # Residual의 기울기 (∇R(x))
    grad_residual = torch.autograd.grad(residual, x, torch.ones_like(residual), create_graph=True)[0]

    # Residual의 기울기가 0이 되도록 유도하는 손실
    return torch.mean(grad_residual ** 2)

# 최종 손실 함수 (gPINN)
def gpinn_loss(model, x, lambda_weight=0.1):
    return pde_loss(model, x) + lambda_weight * gradient_loss(model, x)

이 코드에서 기존 PINN 손실 함수는 PDE의 잔차만 최소화하지만, gPINN 손실 함수는 잔차의 기울기까지 고려하는 방식으로 학습됩니다. 즉, gPINN은 더 안정적인 학습이 가능하며, 빠른 수렴과 높은 정확도를 보장할 수 있습니다.

4. 실험 결과

지금까지 gPINN의 개념과 기존 PINN과의 차이점을 살펴보았습니다. 이제 논문에서 수행한 실험을 통해 gPINN이 실제로 얼마나 효과적인지 검증해보겠습니다. 실험은 크게 세 가지로 나누어 진행되었습니다. 각 실험에서는 기존 PINN과 gPINN을 비교하여 학습 속도, 정확도, 수렴 성능을 평가했으며, 그 결과를 Figure 및 Table로 정리하였습니다. 이제 하나씩 살펴보겠습니다.

4-1. 연속 시간 모델(Continuous Time Models) 실험

먼저 연속 시간 모델 실험입니다. 여기서는 PINN과 gPINN이 연속적인 시간 변화가 포함된 PDE 문제에서 어떻게 다른 성능을 보이는지 평가하였습니다. 대표적인 실험으로 Poisson 방정식을 사용하였습니다.

Poisson 방정식은 물리학과 공학에서 널리 사용되는 방정식으로, 전기장, 중력장 등의 모델링에 활용됩니다. 기존 PINN 방식으로 학습할 경우 해의 수렴 속도가 느려지고, 정확도가 떨어지는 문제가 발생할 수 있습니다. gPINN은 이러한 문제를 해결할 수 있는지 검증하였습니다.

그림2. 연속 시간 모델 실험 결과
그림2. 연속 시간 모델 실험 결과

실험 결과를 보면, 기존 PINN보다 gPINN이 훨씬 빠르게 수렴하며, 전반적인 정확도 또한 향상됨을 확인할 수 있습니다. 특히, PDE의 고차 미분 항이 포함된 경우 gPINN이 더 우수한 성능을 보였습니다.

4-2. 이산 시간 모델(Discrete Time Models) 실험

다음은 이산 시간 모델 실험입니다. 연속 시간 모델과 달리, 이산 시간 모델에서는 시간 변화를 특정한 간격으로 나누어 계산하는 방식을 사용합니다.

이 실험에서는 Burgers 방정식을 사용하여 gPINN이 기존 PINN보다 시간 축을 따라 어떻게 더 효과적으로 학습되는지를 검증하였습니다. Burgers 방정식은 비선형 항이 포함된 대표적인 유체역학 방정식이며, 충격파(Shock Wave)와 같은 복잡한 패턴을 정확하게 예측하는 것이 중요한 문제입니다.

실험 결과를 보면, 기존 PINN보다 gPINN이 더 적은 학습 단계에서도 정확한 해를 근사할 수 있음을 확인할 수 있습니다. 특히, 충격파 영역에서 기존 PINN 방식은 해가 흔들리거나 부정확한 결과를 보이는 반면, gPINN은 보다 부드럽고 안정적인 해를 도출하는 모습을 보였습니다.

4-3. 물리 방정식 발견(Data-Driven Discovery of PDEs) 실험

마지막으로, PINN과 gPINN이 데이터를 기반으로 물리 방정식의 특정 파라미터를 찾는 문제에서 얼마나 효과적인지 검증하였습니다. 기존 PINN 방식에서는 PDE를 만족하는 해를 찾는 데 중점을 두지만, gPINN은 PDE의 구조적 특성을 더 정확하게 반영할 수 있기 때문에 물리 방정식 자체를 추론하는 문제에서도 더 우수한 성능을 보일 가능성이 있습니다.

이 실험에서는 Navier-Stokes 방정식과 Korteweg-de Vries(KdV) 방정식을 활용하여 gPINN이 기존 PINN보다 얼마나 더 정확하게 방정식을 추론할 수 있는지 평가하였습니다.

그림3. Inverse Problem 실험 결과
그림3. Inverse Problem 실험 결과

실험 결과를 보면, 기존 PINN 방식에서는 방정식의 계수를 정확하게 찾지 못하는 경우가 많았지만, gPINN은 더욱 정밀하게 방정식의 파라미터를 추정할 수 있었습니다. 특히, 초기 데이터가 부족한 상황에서도 gPINN은 더 신뢰할 수 있는 방정식 형태를 도출하는 특징을 보였습니다.

5. 마치며

이번 포스팅에서는 Gradient-Enhanced PINN(gPINN) 논문을 리뷰하며, 기존 PINN의 한계를 어떻게 극복할 수 있는지 살펴보았습니다. 기존 PINN 방식은 PDE의 잔차(Residual)만을 최소화하는 방식으로 학습되지만, 학습 속도가 느리고, 국소적인 최적해에 갇힐 가능성이 있으며, 고차 미분 항이 포함된 PDE에서는 정확도가 떨어지는 문제가 있었습니다.

이러한 문제를 해결하기 위해 gPINN이 제안되었습니다. gPINN은 기존 PINN과 달리 PDE 잔차뿐만 아니라, 잔차의 기울기(Gradient)까지 고려하여 학습하는 방식을 도입하였습니다. 이를 통해 PDE의 해를 더욱 정밀하게 찾아갈 수 있으며, 수렴 속도를 높이고 높은 차수의 PDE에서도 안정적인 학습이 가능하게 되었습니다.

실험 결과에서도 이러한 장점이 명확하게 드러났습니다.

  • 연속 시간 모델 실험에서는 Poisson 방정식을 학습할 때 gPINN이 기존 PINN보다 빠르고 정확하게 수렴하는 것을 확인하였습니다.
  • 이산 시간 모델 실험에서는 Burgers 방정식을 학습할 때 gPINN이 기존 PINN보다 충격파 패턴을 더욱 정밀하게 포착할 수 있음을 보였습니다.
  • 물리 방정식 발견 실험에서는 Navier-Stokes 및 KdV 방정식의 계수를 추론하는 문제에서 gPINN이 기존 PINN보다 더 신뢰할 수 있는 방정식 형태를 도출할 수 있음을 확인하였습니다.

이러한 결과를 통해 gPINN이 기존 PINN과 비교했을 때 더 빠르고 정확한 학습이 가능하며, 복잡한 PDE 문제에서도 강력한 성능을 보인다는 점을 확인할 수 있었습니다.

하지만 gPINN에도 몇 가지 한계점이 있습니다.

  1. 추가적인 미분 연산으로 인해 계산 비용이 증가할 수 있습니다. gPINN은 PDE 잔차뿐만 아니라 잔차의 기울기까지 최소화해야 하므로 기존 PINN보다 연산량이 더 많아집니다.
  2. 하이퍼파라미터 λ설정이 중요합니다. PDE의 특성에 따라 잔차와 잔차 기울기의 균형을 맞추는 것이 중요하며, 이를 조정하지 않으면 학습이 불안정해질 수 있습니다.

그럼에도 불구하고, gPINN은 기존 PINN의 한계를 극복하고 물리 기반 문제를 해결하는 데 있어 중요한 발전을 이루었다고 볼 수 있습니다. 특히, 고차 미분 PDE, 복잡한 비선형 방정식, 데이터가 부족한 문제에서 더욱 효과적으로 활용될 수 있습니다.

6. 참고 자료

Deep Simulation

[19′ Journal of computational Physics] Physics-Informed Neural Networks: A Deep LearningFramework for Solving Forward and Inverse ProblemsInvolving Nonlinear Partial Differential Equations [24′ NeurIPS] RoPINN: Region Optimized Physics-Informed Neural Networks
0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x
Scroll to Top