- [19′ Journal of computational Physics] Physics-Informed Neural Networks: A Deep LearningFramework for Solving Forward and Inverse ProblemsInvolving Nonlinear Partial Differential Equations
- [22′ Computer Methods in Applied Mechanics and Engineering] Gradient-enhanced physics-informed neural networks for forward and inverse PDE problems
- [24′ NeurIPS] RoPINN: Region Optimized Physics-Informed Neural Networks
- [21′ Nature Machine Intelligence] DeepONet: Learning nonlinear operators for identifying differential equations based on the universal approximation theorem of operators
1. 들어가며
최근 딥러닝은 이미지 인식, 자연어 처리뿐만 아니라 과학 및 공학 분야에서도 폭넓게 활용되고 있습니다. 특히, 편미분방정식(PDE)이나 동적 시스템을 다룰 때 딥러닝을 적용하는 연구가 활발하게 진행되고 있습니다. 이러한 문제를 해결하기 위해 신경망이 함수 값을 직접 예측하는 것이 아니라, 입력 함수 전체를 받아 이를 변환하는 연산자(operator)를 학습하는 방법이 필요합니다. 하지만 기존의 신경망 방식으로는 이러한 연산자 학습이 어렵다는 한계가 존재합니다.
기존 방법들은 주어진 입력 값에 대한 출력 값을 예측하는 데 집중하지만, 연산자 학습은 입력 함수 전체를 받아 출력 함수로 변환하는 과정을 요구합니다. 기존 신경망 방식은 특정 데이터 포인트에서의 값을 예측하는 데 최적화되어 있기 때문에 연속적인 함수 공간을 다루는 문제에서 일반화가 어렵고, 새로운 입력에 대해 다시 학습해야 하는 한계를 가지고 있습니다. 이러한 문제를 해결하기 위해 논문에서는 DeepONet(Deep Operator Network)을 제안하였습니다.
DeepONet은 보편적 연산자 근사 정리(Universal Approximation Theorem for Operators)를 기반으로 설계되었으며, 일반적인 신경망이 개별 점에서의 함수 값을 근사하는 것과 달리, 입력 함수를 받아 전체적인 연산자를 학습하는 방식을 적용하였습니다. 이를 위해 DeepONet은 Branch Net과 Trunk Net으로 구성된 아키텍처를 사용하여 입력 함수를 효율적으로 표현하고, 이를 통해 출력 함수를 생성할 수 있도록 설계되었습니다.
이번 포스팅에서는 기존 방법이 가지는 한계를 살펴본 후, DeepONet이 이를 어떻게 해결하는지에 대해 논문을 기반으로 설명하겠습니다. 또한, 논문에서 수행한 실험을 분석하여 DeepONet이 실제로 기존 방법보다 얼마나 우수한 성능을 보이는지를 살펴보고, 마지막으로 DeepONet의 장점과 한계를 정리하면서 포스팅을 마무리하겠습니다.
먼저, 기존 신경망 방식이 가지는 한계를 살펴보겠습니다.
2. 기존 방법의 한계
딥러닝을 활용한 연산자(operator) 학습은 다양한 응용 분야에서 중요한 역할을 하지만, 기존 방법에는 몇 가지 근본적인 한계가 존재합니다. 기존 신경망 방식은 일반적으로 입력과 출력을 매핑하는 함수 근사(Function Approximation)를 수행하는데 초점이 맞춰져 있습니다. 하지만, 미분 방정식이나 동적 시스템을 다루는 문제에서는 함수 자체가 아닌 연산자(Operator)를 직접 근사해야 하는 상황이 발생합니다. 이때 기존 방법으로는 효과적인 학습이 어려운 문제가 있습니다.
2.1 신경망이 연산자를 학습하는 기존 방식의 문제점
기존 신경망 방식은 주어진 입력 값 x에 대해 특정 함수 f(x)를 근사하는 역할을 수행합니다. 즉, 주어진 데이터 샘플을 기반으로 특정 함수 값을 예측하는 데 집중합니다. 하지만, 연산자 근사는 이러한 방식과는 근본적으로 다른 문제입니다. 연산자는 하나의 함수 u(x)를 입력받아 또 다른 함수 G(u)를 출력하는 개념이므로, 기존 신경망 방식으로는 이러한 관계를 효과적으로 학습하기 어렵습니다.
예를 들어, 편미분 방정식(PDE)을 학습하는 신경망 모델을 생각해보겠습니다. PDE의 해는 입력 조건과 미분 연산을 거쳐 결정되므로, 특정한 점에서의 함수 값뿐만 아니라 전체적인 함수의 구조를 고려해야 합니다. 기존 신경망 방식은 개별 점에서의 출력 값을 예측하는 데 초점이 맞춰져 있어, 전체 함수 공간에서의 연산자를 제대로 근사하지 못하는 문제가 발생할 수 있습니다.
이러한 문제는 특히 고차원 함수 공간에서 더욱 심각해집니다. 기존 방법은 높은 차원의 함수 공간을 일반화하는 능력이 부족하며, 특정 데이터셋에서만 학습이 이루어질 경우 새로운 함수 입력에 대해 일반화하기 어렵습니다.
2.2 연속 함수 근사를 위한 기존 신경망 아키텍처의 한계
연산자를 효과적으로 근사하기 위해서는 입력이 개별 점이 아니라 연속적인 함수 형태를 유지해야 하며, 신경망이 이를 학습할 수 있도록 설계되어야 합니다. 기존의 CNN이나 RNN 기반 모델들은 특정한 데이터 포인트나 시계열 데이터를 기반으로 동작하므로, 연속적인 함수 공간을 다루는 데 적합하지 않습니다.
기존 방식으로 연산자를 근사하기 위해 제안된 몇 가지 방법이 있지만, 이들 또한 여러 가지 한계를 가지고 있습니다.
첫 번째 접근 방식은 PDE를 직접 풀도록 신경망을 학습하는 방식입니다. PINN(Physics-Informed Neural Networks)과 같은 방법이 대표적인 예인데, 이 방식은 특정 PDE의 해를 만족하는 함수를 학습합니다. 하지만, 이 방식은 새로운 PDE 문제를 만날 때마다 다시 학습해야 하는 한계를 가집니다. 즉, 특정 문제에 맞춰진 모델을 학습하는 방식이므로, 보편적인 연산자를 학습하는 방식과는 거리가 있습니다.
두 번째 접근 방식은 PDE를 정형화된 방식으로 표현하여 신경망에 입력하는 방식입니다. 예를 들어, 특정 PDE를 해결하기 위해 경계 조건과 초기 조건을 함께 입력하여 신경망이 해를 생성하도록 하는 방식입니다. 하지만, 이 방식 역시 입력과 출력 간의 관계를 정형화해야 하므로, 새로운 PDE 문제에 유연하게 적용되기 어렵고 확장성이 제한됩니다.
세 번째 접근 방식은 함수 공간 자체를 신경망에 직접 입력하는 방식입니다. 예를 들어, 주어진 입력 함수를 격자(grid) 형태로 변환하여 CNN이나 RNN을 활용하는 방식이 있을 수 있습니다. 하지만, 격자 해상도에 따라 성능이 크게 달라질 수 있으며, 격자 크기를 변화시킬 경우 일반화 성능이 크게 떨어지는 문제가 발생할 수 있습니다.
결국, 기존 방법들은 특정한 문제에 대해서는 좋은 성능을 보일 수 있지만, 연산자를 일반적으로 학습할 수 있는 구조를 가지지 못했습니다. 따라서, 새로운 문제나 다양한 해상도의 입력이 주어질 때 기존 방식으로는 효과적인 학습이 어렵습니다.
3. 제안 방법: DeepONet
기존 신경망 방식이 연산자 근사 문제에서 가지는 한계를 해결하기 위해 논문에서는 DeepONet(Deep Operator Network)을 제안하였습니다. DeepONet은 기존 신경망이 개별 점에서 함수 값을 예측하는 것과 달리, 입력 함수를 받아 출력 함수로 매핑하는 연산자를 직접 학습할 수 있는 신경망 구조를 도입하였습니다. 이 장에서는 DeepONet의 핵심 개념과 아키텍처를 설명하고, 이를 통해 연산자 근사가 어떻게 가능해지는지 살펴보겠습니다.
3.1 보편적 연산자 근사 정리란?
DeepONet의 이론적 기반이 되는 핵심 개념은 보편적 연산자 근사 정리(Universal Approximation Theorem for Operators)입니다. 이는 신경망이 단순히 함수 값을 예측하는 것이 아니라, 함수 자체를 입력받아 또 다른 함수로 변환하는 연산자를 근사할 수 있다는 것을 의미합니다.
기존 보편적 근사 정리(Universal Approximation Theorem)는 신경망이 충분한 뉴런을 가지면 임의의 연속 함수를 원하는 수준의 정확도로 근사할 수 있다는 것을 보장합니다. 하지만 이는 개별 점에서의 함수 값을 근사하는 방식이므로, 함수 전체를 입력으로 받아 출력 함수로 매핑하는 연산자를 다룰 수 없습니다.
보편적 연산자 근사 정리는 이를 확장한 개념으로, 적절한 신경망 구조를 사용하면 임의의 연산자 G를 원하는 수준의 정확도로 근사할 수 있음을 보장합니다. 즉, DeepONet과 같은 적절한 신경망 아키텍처를 설계하면, 임의의 미분 연산자, 적분 연산자, 편미분 방정식의 해 연산자 등을 학습할 수 있습니다. 수식으로 표현하면 아래와 같습니다.
![[21' Nature Machine Intelligence] DeepONet: Learning nonlinear operators for identifying differential equations based on the universal approximation theorem of operators 1 그림1. 보편적 연산자 근사 정리 수식](https://ffighting.net/wp-content/uploads/2025/02/image-20.png)
3.2 DeepONet 아키텍처
DeepONet은 보편적 연산자 근사 정리를 신경망 아키텍처로 구현한 모델입니다. 일반적인 신경망이 개별 점에서의 함수 값을 예측하는 것과 달리, DeepONet은 입력 함수 전체를 받아들이고, 이를 기반으로 연산자를 학습하여 출력 함수로 변환하는 방식을 사용합니다.
DeepONet의 구조는 크게 Branch Net과 Trunk Net 두 가지 부분으로 구성됩니다.
![[21' Nature Machine Intelligence] DeepONet: Learning nonlinear operators for identifying differential equations based on the universal approximation theorem of operators 2 그림2. DeepONet Architecture](https://ffighting.net/wp-content/uploads/2025/02/image-21-1024x404.png)
Branch Net은 입력 함수 u(x)를 받아 저차원 임베딩으로 변환하는 역할을 합니다. 여기서 입력 함수는 고정된 몇 개의 샘플링된 점에서 평가된 값으로 표현되며, 이 값을 입력으로 받아 함수 전체를 대표하는 임베딩 벡터를 생성합니다.
Trunk Net은 출력 함수의 독립 변수 y (x샘플을 의미)를 입력받아, 최종적으로 출력 함수 값을 계산하는 역할을 합니다. 즉, Trunk Net은 특정 위치에서의 함수 값을 결정하는 부분이며, Branch Net이 생성한 임베딩 벡터와 결합하여 최종 출력을 계산합니다.
DeepONet의 핵심 아이디어는, Branch Net이 입력 함수의 전체적인 패턴을 학습하고, Trunk Net이 이를 활용하여 특정 위치에서의 함수 값을 출력하는 방식으로 연산자를 근사하는 것입니다. 이러한 구조를 통해 DeepONet은 기존 신경망 방식이 가지는 한계를 극복하고, 연산자 전체를 학습할 수 있습니다.
3.3 DeepONet의 장점
DeepONet의 가장 큰 장점은 기존 신경망 방식이 해결하기 어려운 연산자 근사 문제를 효과적으로 학습할 수 있다는 점입니다. 일반적인 신경망은 특정 함수의 값만 예측할 수 있지만, DeepONet은 입력 함수 전체를 받아 출력 함수로 변환하는 연산자를 학습할 수 있으므로, PDE 해석이나 동적 시스템 모델링 등 다양한 응용 분야에서 활용될 수 있습니다.
또한, 기존 신경망 방식에서는 새로운 PDE 문제나 새로운 해상도의 입력이 주어질 경우 다시 학습이 필요했지만, DeepONet은 한 번 학습되면 다양한 입력에 대해 일반화가 가능하다는 장점을 가지고 있습니다. 기존 방법이 특정 문제에 종속되는 반면, DeepONet은 연산자 자체를 학습하기 때문에 새로운 함수 입력에 대해서도 효과적으로 일반화할 수 있습니다.
3.4 핵심 아이디어만 쉽게 이해하기
말이 어려우니 핵심 아이디어만 쉽게 이해해봅시다! 예를 들어 u라는 함수는 지수함수이고, G라는 연산자는 함수u를 x에 대해 미분한 뒤 u를 더해주는 연산이라고 가정해봅시다.
![[21' Nature Machine Intelligence] DeepONet: Learning nonlinear operators for identifying differential equations based on the universal approximation theorem of operators 3 그림3. 예시](https://ffighting.net/wp-content/uploads/2025/02/image-22-1024x465.png)
이 과정을 수식으로 쓰면 어려우니 연산 Flow로 표현해보면 다음과 같습니다.
![[21' Nature Machine Intelligence] DeepONet: Learning nonlinear operators for identifying differential equations based on the universal approximation theorem of operators 4 그림4. 예시 Flow](https://ffighting.net/wp-content/uploads/2025/02/image-23-1024x928.png)
위에서는 특정 함수와 특정 연산자를 예시로 들었지만, 함수나 연산 방식이 바뀜에 따라 위 Flow는 훨씬 복잡해질수도, 더 단순해질 수도 있겠죠. 보편적 연산자 근사 정리란, 이 Flow가 아무리 복잡해져도 u와 x의 Neural Network로 근사할 수 있다는 것입니다.
![[21' Nature Machine Intelligence] DeepONet: Learning nonlinear operators for identifying differential equations based on the universal approximation theorem of operators 5 그림5. Neural Network 근사](https://ffighting.net/wp-content/uploads/2025/02/image-24-1024x409.png)
위 그림처럼 u와 x를 각각의 Neural Network로 Mapping 해준 결과값을 내적해주면, 어떠한 연산자G라도 근사할 수 있다는 것이죠. 위 그림을 그대로 Neural Network로 구현한게 DeepONet 입니다. DeepONet을 지금 설명 그대로 파이썬 코드로 구현하면 다음과 같습니다.
class DeepONet(nn.Module):
def __init__(self, branch_input_dim, trunk_input_dim, hidden_dim, feature_dim):
super(DeepONet, self).__init__()
self.branch_net = nn.Sequential(nn.Linear(branch_input_dim, hidden_dim), nn.ReLU(),
nn.Linear(hidden_dim, feature_dim))
self.trunk_net = nn.Sequential(nn.Linear(trunk_input_dim, hidden_dim), nn.ReLU(),
nn.Linear(hidden_dim, feature_dim))
def forward(self, u_samples, y_values):
branch_output = self.branch_net(u_samples)
trunk_output = self.trunk_net(y_values)
return torch.sum(branch_output * trunk_output, dim=-1)
4. 실험 결과
DeepONet의 성능을 검증하기 위해 다양한 비선형 연산자 근사 문제를 실험했습니다. 실험은 대표적인 세 가지 문제를 대상으로 진행되었습니다. 첫 번째 실험에서는 1D 동적 시스템에서 DeepONet의 일반화 성능을 분석했고, 두 번째 실험에서는 중력 진자 문제를 통해 네트워크 구조의 영향을 확인했습니다. 마지막 실험에서는 확산 반응 시스템을 이용하여 학습 데이터 수와 예측 성능 간의 관계를 연구했습니다.
4.1 1D 동적 시스템 실험
첫 번째 실험에서는 1D 동적 시스템을 이용하여 DeepONet이 비선형 연산자를 얼마나 효과적으로 근사할 수 있는지를 평가했습니다. 실험의 목표는 임의의 입력 함수 u(x)에 대해 출력 함수 s(x)를 예측하는 것입니다. 실험 결과, 기존의 Fully Connected Network (FNN)와 비교했을 때 DeepONet은 훨씬 더 낮은 테스트 오차를 기록했으며, 특히 학습 데이터가 부족한 경우에도 우수한 일반화 성능을 보였습니다.
![[21' Nature Machine Intelligence] DeepONet: Learning nonlinear operators for identifying differential equations based on the universal approximation theorem of operators 6 그림6. 1D 동적 시스템 실험 결과](https://ffighting.net/wp-content/uploads/2025/02/image-15.png)
4.2 중력 진자 문제 실험
두 번째 실험에서는 중력 진자 문제를 해결하는 과정에서 DeepONet의 구조적 특징이 결과에 미치는 영향을 분석했습니다. 실험에서는 네트워크의 폭과 깊이, 훈련 데이터 수에 따른 성능 변화를 비교했습니다. 실험 결과, 네트워크의 크기가 지나치게 작을 경우 학습 성능이 저하되었으며, 네트워크 크기가 일정 수준 이상 증가하면 오히려 오차가 증가하는 경향을 보였습니다.
4.3 확산 반응 시스템 실험
마지막 실험에서는 확산 반응 시스템을 이용하여 DeepONet이 시간-공간 연산자를 효과적으로 학습할 수 있는지를 평가했습니다. 실험에서는 입력 함수 u(x)가 주어졌을 때, PDE의 해 s(x, t)를 예측하는 문제를 다루었습니다. 실험 결과, DeepONet은 매우 적은 훈련 데이터만으로도 높은 예측 정확도를 달성할 수 있음을 확인했습니다.
![[21' Nature Machine Intelligence] DeepONet: Learning nonlinear operators for identifying differential equations based on the universal approximation theorem of operators 7 그림7. 확산 반응 시스템 실험 결과](https://ffighting.net/wp-content/uploads/2025/02/image-16.png)
이러한 실험 결과를 통해 DeepONet이 다양한 비선형 연산자를 효과적으로 근사할 수 있으며, 기존의 Fully Connected Network보다 일반화 성능이 뛰어나다는 점이 입증되었습니다. 특히 학습 데이터가 제한적인 상황에서도 높은 예측 성능을 유지할 수 있다는 점에서 DeepONet의 실용성이 강조됩니다.
5. 마치며
이번 포스팅에서는 DeepONet(Deep Operator Network) 논문을 분석하며, 기존 신경망 방식이 연산자 근사 문제에서 가지는 한계를 극복하기 위해 제안된 새로운 접근 방식을 살펴보았습니다. 기존 신경망은 특정 점에서의 함수 값을 예측하는 데 초점을 맞췄지만, DeepONet은 입력 함수 전체를 받아 연산자를 근사하는 신경망 구조를 도입함으로써 보다 일반적인 문제를 해결할 수 있도록 설계되었습니다.
기존 방법의 한계점을 살펴보면, 일반적인 신경망 방식은 개별 데이터 포인트의 관계를 학습하는 데 적합하지만, 연산자는 함수 공간 전체에서 동작해야 하기 때문에 기존 방식으로는 효과적인 학습이 어렵습니다. 또한, 기존 신경망은 특정 데이터셋에만 최적화되기 쉽고, 새로운 입력 함수가 주어질 경우 다시 학습해야 하는 한계를 가집니다. 이러한 문제를 해결하기 위해 논문에서는 보편적 연산자 근사 정리(Universal Approximation Theorem for Operators)를 기반으로 DeepONet을 제안하였으며, 이를 통해 다양한 연산자를 효과적으로 근사할 수 있는 구조를 설계하였습니다.
DeepONet의 핵심은 Branch Net과 Trunk Net의 조합을 활용하여 입력 함수를 효율적으로 표현하고, 이를 통해 출력 함수를 생성하는 방식으로 연산자를 학습하는 것입니다. 실험 결과에서도 확인할 수 있듯이, DeepONet은 기존 신경망 방식보다 뛰어난 일반화 성능을 보이며, 다양한 비선형 연산자를 효과적으로 근사할 수 있음을 입증하였습니다.
특히, 1D 동적 시스템 실험, 중력 진자 문제, 확산 반응 시스템 실험을 통해 DeepONet이 기존 방법보다 더 낮은 오차로 연산자를 근사할 수 있다는 점이 확인되었습니다. 실험 결과를 종합해 보면, DeepONet은 기존 Fully Connected Network(FNN) 방식보다 훨씬 적은 학습 데이터로도 높은 예측 성능을 유지할 수 있으며, 특히 고차원의 함수 공간에서도 일반화 능력이 뛰어난 모델임을 입증하였습니다.
하지만 DeepONet에도 몇 가지 개선할 부분이 존재합니다. 학습 과정에서 네트워크의 크기와 데이터 샘플링 방식에 따라 성능이 민감하게 변할 수 있으며, 네트워크 구조에 대한 최적의 설정을 찾기 위해 추가적인 연구가 필요할 것입니다. 또한, PDE 해석과 같은 복잡한 연산자 문제에서 DeepONet의 성능을 더욱 향상시키기 위해서는 새로운 변형 구조나 학습 기법이 추가적으로 개발될 필요가 있습니다.
그럼에도 불구하고, DeepONet은 기존 신경망 방식이 해결하지 못한 연산자 근사 문제를 효과적으로 해결하는 강력한 접근 방식을 제안하고 있으며, 다양한 과학 및 공학 분야에서 활용될 수 있는 잠재력을 가지고 있습니다. 앞으로도 이러한 연산자 학습 기법이 더욱 발전하여, 복잡한 물리 시스템이나 데이터 기반 모델링에서 핵심적인 역할을 하게 될 것으로 기대됩니다.
많은 도움 되고있습니다. 감사합니다!
감사합니다, 좋은 하루 되세요!