물리를 손실함수에 넣는 신경망(PINN) — 원논문이 보고한 숫자와 한계

Raissi·Perdikaris·Karniadakis의 PINN 두 논문을 읽어 잔차 손실의 구성, 데이터 100점으로 얻은 상대 L2 오차 6.7 × 10⁻⁴, q = 500단 암묵적 Runge–Kutta로 Δt = 0.8을 한 걸음에 건너는 이산시간 모델, 전체 데이터 1%로 Navier–Stokes

물리를 손실함수에 넣는 신경망(PINN) — 원논문이 보고한 숫자와 한계

PINN(물리정보 신경망)은 편미분방정식의 해를 신경망으로 표현하고, 방정식 자체를 손실함수에 집어넣어 훈련시키는 방법이다. 쓰는 목적은 두 가지다 — 계측점이 몇 개밖에 없을 때 해를 구하는 것, 그리고 계측 데이터에서 방정식의 계수를 찾아내는 것이다. 격자를 만들지 않고, 자동미분으로 얻은 잔차를 벌점으로 쓴다.

이 글은 Raissi, Perdikaris, Karniadakis의 두 편짜리 원논문을 인용한다 — Part I: Data-driven Solutions of Nonlinear Partial Differential Equations와 Part II: Data-driven Discovery of Nonlinear Partial Differential Equations(둘 다 arXiv, 2017; 이후 Journal of Computational Physics 378권에 통합 게재). 인용한 수치는 모두 논문의 본문·표·그림 설명에서 읽은 값이고, 코드와 데이터는 저자들이 GitHub에 공개해 두었다.

1. 방정식의 잔차를 손실로 만든다

출발은 한 줄이다. 대상 방정식을 u_t + N[u] = 0 꼴로 두고, 좌변 전체를 새로운 함수로 정의한다.

We define f(t, x) to be given by the left-hand-side of equation (1); i.e., f := u_t + N[u], and proceed by approximating u(t, x) by a deep neural network. — Raissi et al., Part I, §2

We define f(t, x) to be given by the left-hand-side of equation (1); i.e., f := u_t + N[u], and proceed by approximating u(t, x) by a deep neural network. — Raissi et al., Part I, §2

u를 신경망으로 두면 f는 같은 파라미터를 공유하는 또 하나의 신경망이 된다. 미분은 수치미분이 아니라 자동미분으로 얻는다. 논문이 실은 Burgers 방정식용 코드가 이 구조를 그대로 보여 준다.

def f(t, x): u = u(t, x) u_t = tf.gradients(u, t)[0] u_x = tf.gradients(u, x)[0] u_xx = tf.gradients(u_x, x)[0] f = u_t + u*u_x - (0.01/tf.pi)*u_xx return f

훈련은 두 항의 합을 최소화한다 — MSE = MSE_u + MSE_f. 앞의 항은 초기·경계 데이터 Nu개에서의 오차이고, 뒤의 항은 선정한 collocation point Nf개에서 방정식이 얼마나 어긋나는가이다. 논문의 표현으로 "MSE_f는 방정식이 강제하는 구조를 유한한 collocation point 집합에서 부과한다".

최적화기는 L-BFGS(준뉴턴, 풀배치)를 쓴다. 논문은 훈련 데이터가 "몇백에서 몇천 점" 규모여서 풀배치가 가능하다고 밝히고, 더 큰 데이터셋에서는 미니배치 SGD를 쓸 수 있다고 적는다. 동시에 한계도 같은 문단에서 말한다 — "이 절차가 전역 최소점에 수렴한다는 이론적 보장은 없다".

2. 데이터 100점, 상대오차 6.7 × 10⁻⁴

첫 예제는 충격이 생기는 Burgers 방정식이다.

u_t + u·u_x − (0.01/π)·u_xx = 0, x ∈ [−1, 1], t ∈ [0, 1]u(0, x) = −sin(πx), u(t, −1) = u(t, 1) = 0 — Part I, 식 (3)

u_t + u·u_x − (0.01/π)·u_xx = 0, x ∈ [−1, 1], t ∈ [0, 1]u(0, x) = −sin(πx), u(t, −1) = u(t, 1) = 0 — Part I, 식 (3)

훈련 조건과 결과는 다음과 같다.

항목값

초기·경계 데이터Nu = 100 (무작위 분포)

collocation pointNf = 10,000

신경망9층 · 은닉층당 20뉴런 · tanh, 전체 3,021개 파라미터

상대 L2 오차6.7 × 10⁻⁴

논문이 강조하는 것은 정확도 자체가 아니라 얻는 방식이다 — "고전 수치해법과 달리 이 예측은 시공간 영역의 어떤 이산화도 없이 얻어진다". 그리고 t ≈ 0.4에서 생기는 급격한 내부 층을 100개의 초기·경계 데이터만으로 잡아낸다. 같은 저자들이 가우스 과정으로 푼 이전 연구보다 오차가 약 두 자릿수 낮다.

MSE_f가 과적합을 막는 정규화로 작동한다는 것도 본문에 적혀 있다 — 9층 신경망을 100개 데이터로 훈련시키면서 과적합을 걱정하지 않는 이유가 여기에 있다.

Schrödinger 방정식 예제는 주기경계·복소해를 다룬다. 5층 × 100뉴런, collocation point는 라틴 하이퍼큐브 샘플링으로 뽑은 Nf = 20,000개이고, 상대 L2 오차는 1.97 × 10⁻³이다.

3. 정확도 표는 단조롭지 않다

논문은 민감도 연구를 표로 싣는데, 값이 한 방향으로만 좋아지지 않는다. 표 1은 9층 구조를 고정하고 Nu와 Nf를 바꾼 결과다.

Nu \ Nf2,0004,0006,0007,0008,00010,000

202.9e-014.4e-018.9e-011.2e+009.9e-024.2e-02

406.5e-021.1e-025.0e-019.6e-034.6e-017.5e-02

603.6e-011.2e-021.7e-015.9e-031.9e-038.2e-03

805.5e-031.0e-033.2e-037.8e-034.9e-024.5e-03

1006.6e-022.7e-017.2e-036.8e-042.2e-036.7e-04

2001.5e-012.3e-038.2e-048.9e-046.1e-044.9e-04

Nu = 20, Nf = 7,000 칸의 오차는 1.2다. 상대오차 1.2는 해가 아니라 잡음이라는 뜻이다. 바로 옆 칸(Nf = 8,000)은 9.9 × 10⁻²로 한 자릿수 이상 떨어진다. 논문은 전체 경향을 "데이터가 늘면 정확도가 올라간다"로 요약하지만, 표 자체는 같은 설정에서도 훈련 결과가 크게 흔들린다는 사실을 함께 보여 준다. 비볼록 최적화의 결과이므로 한 번의 성공을 방법의 보장으로 읽을 수 없다.

구조를 바꾼 표 2도 같은 성격이다. Nu = 100, Nf = 10,000을 고정하고 층과 뉴런 수를 바꾼 상대 L2 오차다.

층 \ 뉴런102040

27.4e-025.3e-021.0e-01

43.0e-039.4e-046.4e-04

69.6e-031.3e-036.1e-04

82.5e-039.6e-045.6e-04

2층에서 4층으로 갈 때 오차가 두 자릿수 줄고, 그 뒤로는 거의 평평하다. 그리고 논문이 명시하듯 Nf = 0인 경우는 지배방정식을 전혀 쓰지 않는 보통 신경망에 해당한다 — 표의 왼쪽 끝이 아니라 표 밖에 있는 이 기준선이 방법의 비교 대상이다.

4. 시간을 한 걸음에 건넌다

두 번째 알고리즘은 이산시간 모델이다. q단계 암묵적 Runge–Kutta를 신경망에 얹어, 각 단계의 값 u(tⁿ+c₁Δt), …, u(tⁿ+c_qΔt), u(tⁿ+Δt)을 다출력 신경망 하나로 동시에 표현한다.

여기서 결정적인 문장이 나온다.

고전 수치해석에서 이 단계들은 안정성 제약이나 계산량 제약 때문에 작게 잡을 수밖에 없고, 그 제약은 단수 q가 커질수록 심해진다. 이와 극명하게 대조적으로, 여기서는 임의로 큰 단수의 암묵적 Runge–Kutta를 사실상 추가 비용 없이 쓸 수 있다. — Part I, §3.1

고전 수치해석에서 이 단계들은 안정성 제약이나 계산량 제약 때문에 작게 잡을 수밖에 없고, 그 제약은 단수 q가 커질수록 심해진다. 이와 극명하게 대조적으로, 여기서는 임의로 큰 단수의 암묵적 Runge–Kutta를 사실상 추가 비용 없이 쓸 수 있다. — Part I, §3.1

추가 비용이 없는 이유는 각주에 적혀 있다 — 단수에 비례해 늘어나는 것은 신경망 마지막 층의 파라미터뿐이다. 그 결과가 다음 실험이다.

항목값

초기 데이터t = 0.1에서 Nn = 250개

Runge–Kutta 단수q = 500

시간 간격Δt = 0.8 — t = 0.1 → 0.9를 한 걸음에

이론적 시간오차O(Δt^2q) = 0.8^1000 ≈ 10⁻⁹⁷ (기계 정밀도 훨씬 아래)

단수를 낮추면 어떻게 되는지도 실험으로 보인다 — q = 1(사다리꼴 공식)과 q = 2(4차 가우스–르장드르)는 Δt가 0.2를 넘으면 정확도를 유지하지 못한다. 반면 q를 32 이상으로 올리면 큰 시간 간격을 그대로 건널 수 있고, "암묵적 Runge–Kutta는 차수와 무관하게 A-안정을 유지하는 유일한 시간적분 계열"이므로 안정성도 잃지 않는다. 상변화를 다루는 Allen–Cahn 방정식에 같은 방식을 적용한 경우 상대 L2 오차는 6.99 × 10⁻³이다.

시간적분의 안정성과 차수를 어떻게 고르는지는 동적해석의 시간적분에서 다룬 것과 같은 문제다. 다만 여기서는 단수를 500까지 올리는 선택지가 생긴다.

5. 역문제 — 데이터에서 계수를 되찾는다

Part II는 같은 구조로 방정식의 계수 λ를 미지수로 두고 함께 학습시킨다. 가장 인상적인 예제는 원기둥 뒤 카르만 소용돌이(Re = 100)의 Navier–Stokes 식별이다.

구분식별된 방정식

정확한 방정식u_t + 1.000(u·u_x + v·u_y) = −p_x + 0.01000(u_xx + u_yy)

깨끗한 데이터u_t + 0.999(u·u_x + v·u_y) = −p_x + 0.01047(u_xx + u_yy)

1% 잡음u_t + 0.998(u·u_x + v·u_y) = −p_x + 0.01057(u_xx + u_yy)

훈련에 쓴 데이터는 스펙트럴/hp 요소 해석(412개 삼각형 요소, 10차 야코비 다항식 전개)으로 만든 고해상도 해에서 무작위로 뽑은 5,000점, 즉 전체의 1%다. 신경망은 9층 × 20뉴런이다.

더 중요한 결과는 계수가 아니라 압력이다 — 훈련에는 압력 데이터를 전혀 쓰지 않았는데도 전체 압력장이 복원된다. 논문의 표현으로 "압력장은 정의상 상수만큼의 차이를 두고 식별되므로" 크기 자체는 다르지만 분포는 일치한다. 계측할 수 없는 양을 지배방정식을 매개로 다른 계측량에서 추론하는 구조다.

Part II는 Burgers 방정식에 대해서도 훈련 데이터 수(N = 500 ~ 2,000)와 잡음 수준(0 · 1 · 5 · 10%)을 바꿔 가며 λ₁, λ₂의 식별 오차를 표로 싣는다. 여기서도 값은 단조롭지 않다 — 잡음이 커질수록 오차가 커지는 경향은 있으나, 특정 칸에서는 데이터가 많은 쪽이 더 나쁜 결과를 낸다.

6. 논문이 스스로 긋는 한계

결론부의 세 문장이 이 방법의 위치를 정한다.

"제안한 방법들은 편미분방정식을 푸는 고전 수치해법(유한요소법, 스펙트럴법 등)의 대체물로 보아서는 안 된다. 그런 방법들은 지난 50년간 성숙했고 많은 경우 실무가 요구하는 견고성과 계산 효율 기준을 충족한다."

연속시간 모델의 병목은 명시적이다 — 시공간 전체에 물리 제약을 부과하려면 collocation point가 많이 필요하고, "1~2차원에서는 문제가 없지만 고차원 문제에서는 심각한 병목이 될 수 있다".

"신경망 예측에 딸린 불확실성을 정량화하는 문제"는 현재 형태에서 다뤄지지 않으며 추가 연구가 필요하다.

세 번째가 구조공학 쪽에서 가장 무겁다. 설계·평가는 값 하나가 아니라 값과 그 신뢰구간으로 움직이는데, 이 방법은 아직 후자를 주지 않는다.

7. 정리

PINN은 방정식의 잔차 f := u_t + N[u]를 자동미분으로 만들어 손실에 더한다 — MSE = MSE_u + MSE_f.

Burgers 방정식은 초기·경계 데이터 100점과 collocation point 10,000점, 9층 × 20뉴런(3,021 파라미터)으로 상대 L2 오차 6.7 × 10⁻⁴에 도달했고, 시공간 이산화는 쓰지 않았다.

정확도 표는 단조롭지 않다 — Nu = 20, Nf = 7,000 칸의 오차는 1.2로, 같은 방법도 설정에 따라 완전히 실패한다.

Nf = 0은 지배방정식을 쓰지 않는 보통 신경망이며, 그것이 비교 기준선이다.

이산시간 모델은 q = 500단 암묵적 Runge–Kutta로 Δt = 0.8을 한 걸음에 건넌다. 늘어나는 비용은 마지막 층의 파라미터뿐이다.

q = 1·2는 Δt > 0.2에서 정확도를 잃는다. 고차 암묵적 Runge–Kutta는 차수와 무관하게 A-안정이다.

Navier–Stokes 역문제에서 전체 데이터의 1%(5,000점)로 계수를 0.999 / 0.01047까지 되찾았고, 1% 잡음에서도 0.998 / 0.01057이었다.

압력 데이터를 쓰지 않고 압력장을 상수 차이까지 복원했다 — 계측할 수 없는 양을 방정식으로 추론한다.

논문 스스로 유한요소법의 대체가 아니라고 못 박고, 고차원에서의 collocation 부담과 불확실성 정량화의 부재를 한계로 남긴다.

토목·구조 쪽에서 이 방법이 걸리는 자리는 명확하다. 지배방정식은 알고 있는데 계측점이 적은 문제 — 콘크리트 내부 온도장, 지반의 물성 역추정, 계측 변위에서의 하중 복원 — 이 PINN이 설계된 조건과 정확히 겹친다. 다만 논문이 보고한 성공은 해석해나 고정밀 수치해가 있는 검증 문제에서 얻은 것이고, 표에는 같은 방법이 실패한 칸도 함께 실려 있다. 실무에 옮길 때 필요한 것은 방법 자체보다 실패를 탐지할 기준선이다.