함수를 함수로 보내는 신경망 — DeepONet과 푸리에 신경연산자가 보고한 숫자

DeepONet과 Fourier Neural Operator 원논문을 읽어 연산자 보편근사정리에서 나온 branch·trunk 구조, MSE ∝ 8^T 같은 수렴 관측, 격자를 256에서 8192로 올려도 유지되는 FNO의 오차, 파라미터 60분의 1로 U-Net을 이긴 벤치마크, 그리고 0.005초 대

함수를 함수로 보내는 신경망 — DeepONet과 푸리에 신경연산자가 보고한 숫자

신경연산자(neural operator)는 함수를 입력받아 함수를 내놓는 사상, 즉 연산자를 학습하는 신경망이다. 쓰는 목적은 하나다 — 방정식 하나의 해가 아니라 계수·초기조건·물성이 바뀌는 방정식 족(族) 전체의 해 사상을 한 번 배워 두고, 새로운 조건이 들어오면 다시 풀지 않고 평가만 하는 것이다. 반복 해석이 필요한 최적설계, 불확실성 전파, 역해석이 이 방법이 겨냥하는 자리다.

이 글은 두 계열의 원논문을 인용한다 — DeepONet (Lu, Jin, Karniadakis, 2019)과 Fourier Neural Operator (Li et al., ICLR 2021). 방정식을 손실에 넣어 한 개의 해를 구하는 PINN과는 목표가 다르다. 인용한 수치는 두 논문의 표와 본문에서 읽은 값이다.

1. 유한차원 벡터가 아니라 함수 공간 사이의 사상

고전 수치해법의 위치를 FNO 논문이 한 문단으로 정리한다.

유한요소법이나 유한차분법 같은 전통적 해법은 공간을 이산화해서 방정식을 푼다. 따라서 해상도에 대한 절충을 강요한다 — 성긴 격자는 빠르지만 부정확하고, 촘촘한 격자는 정확하지만 느리다. — Li et al., §1

유한요소법이나 유한차분법 같은 전통적 해법은 공간을 이산화해서 방정식을 푼다. 따라서 해상도에 대한 절충을 강요한다 — 성긴 격자는 빠르지만 부정확하고, 촘촘한 격자는 정확하지만 느리다. — Li et al., §1

그리고 학습 기반 방법의 문제도 같이 적는다 — "고전적인 신경망은 유한차원 공간 사이를 사상하므로 특정한 이산화에 묶인 해만 배울 수 있다". 64 × 64 격자로 학습한 보통 신경망은 128 × 128 격자에서 쓸 수 없다. 연산자 학습은 이 두 문제를 동시에 겨냥한다.

2. DeepONet — 정리가 먼저 있었다

DeepONet의 출발점은 새로운 발상이 아니라 1990년대에 증명된 정리다.

신경망이 연속함수의 보편근사기라는 것은 널리 알려져 있지만, 덜 알려졌고 어쩌면 더 강력한 결과는 은닉층이 하나뿐인 신경망이 임의의 비선형 연속 연산자를 정확히 근사할 수 있다는 것이다. — Lu et al., 초록

신경망이 연속함수의 보편근사기라는 것은 널리 알려져 있지만, 덜 알려졌고 어쩌면 더 강력한 결과는 은닉층이 하나뿐인 신경망이 임의의 비선형 연속 연산자를 정확히 근사할 수 있다는 것이다. — Lu et al., 초록

논문이 정리 1(연산자에 대한 보편근사정리)로 인용하는 이 결과가 신경망의 구조를 지정한다. 입력 함수 u는 고정된 m개의 센서 위치 x₁, …, x_m에서의 값으로 표현되고, 출력은 평가하고 싶은 위치 y에서의 값 G(u)(y)이다. 정리의 식은 두 개의 합성으로 쪼개진다 — 센서 값들을 받는 부분과 위치 y를 받는 부분이다. DeepONet은 그 둘을 각각 신경망으로 만든다.

branch net — m개 센서에서의 입력 함수 값 u(x₁), …, u(x_m)을 인코딩한다.

trunk net — 출력을 평가할 위치 y를 인코딩한다.

두 출력의 내적이 G(u)(y)가 된다.

중요한 것은 논문이 정리의 한계를 먼저 밝힌다는 점이다 — "정리는 충분히 큰 신경망에 대해 작은 근사오차만 보장하며, 중요한 최적화 오차와 일반화 오차는 고려하지 않는다". DeepONet의 기여는 정리 자체가 아니라 그 구조를 실제로 학습 가능하게 만든 설계다.

구조는 두 가지로 나뉜다. stacked는 정리의 형태대로 trunk 하나에 branch를 p개 쌓고, unstacked는 trunk 하나와 branch 하나만 쓴다. 실험 결과는 명확하다 — "unstacked DeepONet이 더 작은 일반화 오차를 가지며", 편향(bias)을 더한 unstacked + bias 조합이 가장 좋은 성능을 낸다. 그리고 완전연결 신경망(FNN)과 비교해 "DeepONet은 훨씬 작은 일반화 오차를 가지므로 시험오차도 작다".

3. 논문이 관측한 수렴 — 지수와 다항 사이

DeepONet 논문의 후반부는 무엇을 늘리면 오차가 어떻게 줄어드는가를 계량한다. 중력 진자 문제에서 관측한 것들이다.

바꾼 것관측

센서 수 mm이 작을 때는 센서를 늘릴수록 오차가 지수적으로 감소하고, 어느 지점부터 감소율이 꺾인다. T = 5에는 센서 100점이면 충분했다.

예측 구간 T훈련·시험 오차가 MSE ∝ 8^T로 지수적으로 증가한다. 오차는 시각 T의 오차가 아니라 구간 [0, T] 전체의 평균이다.

신경망 폭폭 1에서 100까지는 오차가 줄지만, 더 키우면 오차가 다시 커진다 — 논문은 최적화 오차의 증가를 이유로 든다.

훈련 데이터 크기 x데이터가 작을 때는 e^(−x/2000)로 지수적으로, 커지면 x^(−0.5)로 다항적으로 줄어든다.

오차가 예측 구간에 대해 8의 거듭제곱으로 커진다는 관측이 실무적으로 가장 무겁다. 짧은 구간의 정확도를 긴 구간으로 외삽할 수 없다는 뜻이다. 논문이 초록에서 요약한 수렴률도 이 범위 안에 있다 — "반차수에서 4차까지의 다항 수렴률, 그리고 훈련 데이터 크기에 대해서는 지수 수렴까지 관측했다".

4. FNO — 커널을 푸리에 공간에서 매개변수화한다

FNO는 다른 길로 간다. 연산자를 적분 커널로 보고, 그 커널을 푸리에 공간에서 직접 매개변수화한다. 각 층은 입력을 푸리에 변환하고, 낮은 모드만 남겨 선형 변환한 뒤 역변환하고, 여기에 비선형 활성함수를 적용한다.

이 구성에서 곧바로 따라 나오는 성질이 해상도 불변이다.

구성상 이 방법은 입력·출력 공간에 쓰인 이산화와 무관하게 같은 학습 파라미터를 공유한다. 따라서 zero-shot 초해상이 가능하다 — 낮은 해상도로 학습하고 높은 해상도에서 그대로 평가할 수 있다. — Li et al., §1

구성상 이 방법은 입력·출력 공간에 쓰인 이산화와 무관하게 같은 학습 파라미터를 공유한다. 따라서 zero-shot 초해상이 가능하다 — 낮은 해상도로 학습하고 높은 해상도에서 그대로 평가할 수 있다. — Li et al., §1

1차원 Burgers 방정식 벤치마크가 이 성질을 숫자로 보여 준다. 같은 문제를 격자 수 s를 256에서 8192까지 올려 가며 푼 상대오차다.

모델s = 256s = 512s = 1024s = 2048s = 4096s = 8192

FCN (완전합성곱)0.09580.14070.18770.23130.28550.3238

PCANN0.03980.03950.03910.03830.03920.0393

GNO0.05550.05940.06510.06630.06660.0699

LNO0.02120.02210.02170.02190.02000.0189

MGNO0.02430.03550.03740.03600.03640.0364

FNO0.01490.01580.01600.01460.01420.0139

완전합성곱망의 오차는 0.0958에서 0.3238로 세 배 넘게 커지고, FNO의 오차는 0.0149에서 0.0139로 그대로다. 격자를 촘촘히 할수록 나빠지는 쪽과 무관해지는 쪽이 갈린다. 논문이 "이산화에 묶인 해"라고 부른 것이 표의 첫 줄이다.

5. 난류에서의 성적표

Navier–Stokes 벤치마크는 훈련과 시험 해상도를 64 × 64로 고정하고 비교한다(비교 대상들이 해상도 불변이 아니기 때문이다).

모델파라미터 수에폭당 시간ν = 1e−3, T = 50, N = 1000ν = 1e−4, T = 30, N = 10000

FNO-3D6,558,53738.99 s0.00860.0820

FNO-2D414,517127.80 s0.01280.0834

U-Net24,950,49148.67 s0.02450.1190

TF-Net7,451,72447.21 s0.02250.1168

ResNet266,64178.47 s0.07010.2311

주목할 것은 FNO-2D의 파라미터가 414,517개로 U-Net의 60분의 1인데 오차는 절반 아래라는 점이다. 크기가 아니라 연산자를 표현하는 방식이 성능을 만든다.

개선 폭은 논문이 직접 요약한다 — 해상도를 64 × 64로 고정해도 "Burgers에서 30%, Darcy 흐름에서 60%, Navier–Stokes(점성 ν = 1e−4의 난류 영역)에서 30% 낮은 오차"를 낸다. 시계열 전체를 사상으로 배울 때는 "ν = 1e−3에서 1% 미만, ν = 1e−4에서 8% 오차"다.

점성이 낮아질수록(난류가 강해질수록) 오차가 커진다는 사실은 표에도 그대로 있다 — 같은 FNO-3D가 ν = 1e−3에서 0.0086, ν = 1e−4에서 0.0820이다. 한 자릿수 차이다.

6. 속도가 바꾸는 것 — 0.005초와 2.2초

연산자 학습의 실질적 가치는 정확도보다 추론 시간에 있다.

FNO는 하나의 사례를 평가하는 데 0.005초가 걸리는 반면, 전통적 해법은 발산하지 않는 최대 내부 시간 간격으로 최적화한 뒤에도 2.2초가 걸린다. 이는 MCMC 전체로 보면 FNO는 2.5분, 전통적 해법은 18시간 이상에 해당한다. — Li et al., §5.5

FNO는 하나의 사례를 평가하는 데 0.005초가 걸리는 반면, 전통적 해법은 발산하지 않는 최대 내부 시간 간격으로 최적화한 뒤에도 2.2초가 걸린다. 이는 MCMC 전체로 보면 FNO는 2.5분, 전통적 해법은 18시간 이상에 해당한다. — Li et al., §5.5

이 비교의 조건은 베이지안 역문제다 — 사후분포에서 25,000개 표본(번인 5,000 포함)을 뽑기 위해 순방향 연산자를 30,000번 평가해야 했다. 논문은 여기에 정직한 단서를 단다 — "데이터 생성과 훈련이라는 오프라인 단계에 12시간이 걸리는 것을 계산에 넣어도 FNO 쪽이 여전히 빠르다". 한 번 학습하면 초기조건과 관측을 바꿔 가며 여러 번의 MCMC를 돌릴 수 있고, 전통적 해법은 매번 18시간이다.

그리고 부수적이지만 중요한 성질 — FNO는 미분 가능하므로 편미분방정식 제약 최적화에 그대로 붙는다.

7. 정리

연산자 학습은 방정식 하나의 해가 아니라 방정식 족 전체의 해 사상을 배운다. 새 조건에서는 다시 푸는 대신 평가한다.

DeepONet의 구조는 연산자에 대한 보편근사정리에서 나온다 — 센서 m개의 값을 받는 branch net과 평가 위치 y를 받는 trunk net.

그 정리는 근사오차만 보장하고 최적화·일반화 오차는 다루지 않는다고 논문이 먼저 밝힌다. unstacked + bias 구성이 가장 작은 일반화 오차를 냈다.

오차는 예측 구간에 대해 MSE ∝ 8^T로 커지고, 훈련 데이터에 대해서는 e^(−x/2000)에서 x^(−0.5)로 넘어간다.

FNO는 적분 커널을 푸리에 공간에서 매개변수화하고, 그 결과 이산화와 무관하게 같은 파라미터를 공유한다 — zero-shot 초해상이 가능하다.

격자를 256에서 8192로 올릴 때 완전합성곱망의 오차는 0.0958 → 0.3238로 커지고, FNO는 0.0149 → 0.0139로 유지된다.

Navier–Stokes 벤치마크에서 FNO-2D는 414,517개 파라미터로 U-Net(24,950,491개)보다 낮은 오차를 냈다.

같은 FNO-3D가 ν = 1e−3에서 0.0086, ν = 1e−4에서 0.0820 — 난류가 강해지면 오차는 한 자릿수 커진다.

256 × 256 격자에서 추론 0.005초 대 유사스펙트럴 해법 2.2초, 30,000회 평가가 필요한 MCMC에서 2.5분 대 18시간 이상이다.

토목·구조에서 이 방법이 겨냥할 자리는 같은 해석을 조건만 바꿔 수천 번 반복하는 문제다 — 단면·배치를 바꿔 가며 도는 최적설계, 물성 분포의 불확실성 전파, 계측 기반 역해석. 다만 두 논문 모두 훈련 데이터를 기존 해석 코드로 만들었다. 연산자를 배우려면 먼저 정확한 해가 충분히 많아야 하고, 그 정확한 해를 만드는 것은 여전히 유한요소법과 스펙트럴법이다. 이 방법이 대체하는 것은 해석 자체가 아니라 같은 해석의 수천 번째 반복이다.