Neural Operators
신경 연산자는 현재와 미래의 유동장처럼 함수 간 매핑을 학습하므로, 모든 격자 해상도에서 실행되는 빠른 PDE 대리 모델을 제공합니다.
뉴럴 연산자는 고정 크기 벡터 간의 매핑이 아닌 함수 간의 매핑을 학습하는 신경망입니다. 입력은 초기 속도장, 암석층 투과성 지도, 오늘의 대기 상태와 같은 함수이고, 출력은 몇 초 후의 유동, 그 결과로 나타나는 압력장, 내일의 날씨와 같은 또 다른 함수입니다. 학습된 연산자가 연속 영역에서 정의되므로 동일한 가중치로 입력을 성긴 그리드, 촘촘한 그리드 또는 불규칙 메시에서 샘플링해도 처리할 수 있습니다. 수치 해석 솔버가 만든 해답으로 학습하면 뉴럴 연산자는 편미분 방정식(PDE) 계열 전체를 반복 시뮬레이션하는 대신 빠른 순전파 한 번으로 결과를 냅니다.
연산자와 일반 서러게이트 비교#
64 x 64 시뮬레이션으로 서러게이트 모델을 학습한 합성곱 신경망(CNN)은 해당 픽셀 간격에 종속된 커널을 학습합니다. 반면 뉴럴 연산자 레이어는 적분 연산자를 근사합니다. 학습된 커널을 전체 영역에 걸쳐 적분한 값과 점별 선형 항을 더해 각 지점을 업데이트하며, 그리드는 적분을 얼마나 세밀하게 계산할지만 결정합니다. 그리드 해상도를 높이면 예측이 수렴하는데, 이를 이산화 불변성이라고 합니다. 따라서 저렴한 저해상도 시뮬레이션으로 학습한 모델을 더 높은 해상도에서 질의할 수 있습니다. Fourier Neural Operator 논문은 이를 제로샷 초해상도라고 했습니다.
새 해상도에서도 같은 가중치를 사용하는 방식은 비전 모델에서 익숙합니다. Ultralytics YOLO26은 예측 모드에서 모든 imgsz을 지원하며, 입력 크기는 최대 32픽셀 스트라이드의 배수로 올림 처리됩니다. 컨볼루션 커널은 이미지 크기에 종속되지 않지만 각 3 x 3 커널은 고정된 픽셀 수를 다루므로 imgsz을 두 배로 늘리면 각 커널이 포괄하는 장면의 너비는 절반으로 줄어듭니다.
뉴럴 연산자와 혼동하기 쉬운 관련 방법이 두 가지 있습니다. 물리 정보 신경망(PINN)은 계수와 초기 조건이 고정된 단일 PDE 사례를 만족하도록 네트워크 하나를 학습하며, 조건이 바뀌면 재학습해야 합니다. Neural ODE는 고정 길이 상태 벡터의 시간 미분을 학습하고, 솔버가 이를 적분합니다.
Fourier Neural Operator#
연산자 학습은 Lu Lu, George Karniadakis 등이 2019년에 발표한 DeepONet과 Zongyi Li, Nikola Kovachki, Anima Anandkumar, Andrew Stuart 등이 Caltech에서 개발한 뉴럴 연산자 프레임워크를 계기로 발전했습니다. 2021년 ICLR에서 발표된 Fourier Neural Operator(FNO)는 커널 적분을 주파수 영역의 컨볼루션으로 계산합니다. 고속 푸리에 변환(FFT)으로 각 채널을 푸리에 모드로 변환하고, 학습된 복소수 행렬로 낮은 모드의 채널을 결합한 뒤 나머지를 버리며, 역 FFT로 그리드로 되돌립니다. 한 레이어에서 모든 출력 지점이 전체 입력에 의존하므로 전역 수용 영역을 가집니다.
스펙트럼 경로는 몇 줄의 PyTorch 코드로 구현할 수 있습니다. 여기서는 같은 가중치 집합을 사용해 64개 및 256개 지점에서 샘플링한 동일한 입력 함수 네 개를 처리합니다.
import torch
torch.manual_seed(0)
channels, modes = 4, 8
# Learned complex weights act on the 8 lowest Fourier modes, whatever the grid size
weights = torch.randn(channels, channels, modes, dtype=torch.cfloat) / channels
for points in (64, 256):
x = torch.arange(points) / points # the same periodic domain [0, 1), sampled coarsely or finely
field = torch.stack([torch.sin(2 * torch.pi * k * x) + x * (1 - x) for k in range(1, channels + 1)])
spectrum = torch.fft.rfft(field) # one row of Fourier coefficients per channel
mixed = torch.zeros(channels, points // 2 + 1, dtype=torch.cfloat)
mixed[:, :modes] = torch.einsum("im,iom->om", spectrum[:, :modes], weights)
output = torch.fft.irfft(mixed, n=points) # back to the grid the input came from
print(f"{points} points: output shape {tuple(output.shape)}, u(0.25) = {output[0, points // 4]:.4f}")출력 형태가 (4, 64)이고 u(0.25) = -1.0908인 결과와 형태가 (4, 256)이며 u(0.25) = -1.0909인 결과를 출력합니다. 복소수 가중치 128개는 전혀 바뀌지 않으며, 레이어가 그리드 지점이 아닌 기본 함수의 푸리에 모드에 작용하므로 동일한 물리 지점의 출력은 소수점 셋째 자리까지 일치합니다. FNO 논문은 난류 Navier-Stokes 유동, Burgers 방정식, Darcy 유동에서 기존 PDE 솔버보다 최대 세 자릿수 빠른 예측 속도를 보고했습니다.
기타 아키텍처#
2021년 Nature Machine Intelligence에 발표된 DeepONet은 Tianping Chen과 Hong Chen이 1995년에 제시한 연산자 범용 근사 정리를 기반으로 합니다. 브랜치 네트워크는 고정 센서 위치의 값으로 입력 함수를 인코딩하고, 트렁크 네트워크는 출력이 필요한 좌표를 인코딩하며, 두 네트워크의 내적이 해당 위치의 출력값을 계산합니다. 그래프 뉴럴 연산자는 복잡한 형상의 불규칙 메시를 처리하기 위해 그래프 신경망(GNN)의 메시지 전달 방식을 활용합니다. 연산자 트랜스포머는 영역의 샘플링된 지점이나 패치를 토큰으로 취급합니다. 유체 역학 데이터로 사전 학습된 ETH Zurich의 Poseidon은 2024년 PDE용 파운데이션 모델로 공개되었으며, 사전 학습 데이터에 없던 물리 현상을 포함한 15개 다운스트림 태스크에 파인튜닝되었습니다. 오픈 소스 neuraloperator 라이브러리는 FNO와 여러 변형 모델을 구현합니다.
응용 분야#
학습 데이터는 기존 솔버에서 생성되므로 각 학습 쌍은 합성 데이터이며, 생성 비용은 한 번만 발생합니다. 학습된 연산자는 이후 여러 질의에 빠르게 답합니다. 여기에는 익형이나 원자로 형상에 대한 설계 탐색, 수천 번의 실행이 필요한 불확실성 정량화 연구, 전체 시뮬레이션보다 빠르게 업데이트해야 하는 기계 및 플랜트의 디지털 트윈이 포함됩니다. 물리 정보 뉴럴 연산자는 손실 함수에 PDE 잔차를 추가해 학습 데이터가 희소한 영역에서도 예측이 지배 방정식과 일관되도록 합니다.
기상 예측 분야에서 NVIDIA와 학계 공동 연구진이 2022년에 개발한 FourCastNet은 적응형 Fourier 뉴럴 연산자를 기반으로 하며, 0.25° 해상도의 전 지구 예보를 생성합니다. 일주일 예보를 2초 이내에 생성하므로, 단기 대규모 변수 예측 정확도가 일치하는 ECMWF 통합 예보 시스템보다 수 자릿수 빠릅니다.










