OpenAI가 새 AI 모델인 GPT‑6 Astra를 발표했는데 얼마 후 중요한 추가 소식이 나왔다. 오랫동안 풀리지 않은 "나비에-스토크스 존재성과 매끄러움 문제"의 해법을 내부 AI 시스템으로 구했다고 발표한 것이다.
대학 때 유체 역학을 배우면서 나비에-스토크스 방정식을 간단히 배우긴 했는데 전공과 거리가 있는 일을 하는 현재는 호기심으로 다시 알아보기로 했다. 예전에 Verlet 적산법에 대해 쓴 글 이래로 이제는 개인용 컴퓨터에서 유체 애니메이션 정도야 쉽게 하는 시대니까 말이다.
나비에-스토크스 방정식도 $F = ma$에서 나왔다
알다시피 뉴턴의 운동 법칙은 물체에 힘을 가하면 가속도가 생긴다는 것으로 힘을 물체의 질량으로 나누면 가속도를 구할 수 있다거나 질량에 가속도를 곱한 값이 힘이다 등으로 표현한다. 힘이 여럿일 경우 아래와 같이 표현할 수 있다. 가속도와 힘은 벡터, 질량은 스칼라다.
공기, 물 같은 유체도 같은 법칙을 따르지만 고체처럼 하나하나 독립적인 형태가 아니기 때문에 유체가 차지하는 공간의 각 위치에 벡터가 있다고 보고 이를 속도장이라고 한다.
나비에-스토크스 방정식은 여러 사람이 공동으로 기여하여 정립된 것인데 그 이름은 프랑스의 클로드루이 나비에, 영국의 조지 스토크스에서 유래한 것이다. 밀도가 일정하고 압축되지 않는 유체의 나비에-스토크스 방정식은 아래와 같다.
좌변이 $m\mathbf{a}$에 해당하여 유체의 질량밀도에 가속도를 곱한 것이고 우변은 $\sum \mathbf{F}$에 해당하여 유체에 작용하는 여러 힘을 나타낸다.
| 기호 및 항 | 의미 |
|---|---|
| $\rho$ | 유체의 밀도(부피당 질량). 밀도가 일정한 경우이므로 상수다. |
| $\mathbf{u}$ | 유체의 위치마다 계산되는 속도 벡터 |
| $\partial\mathbf{u}/\partial t$ | 시간에 대한 속도 변화율, 즉 (국소) 가속도 |
| $\nabla$ | “나블라” - 그레이디언트/발산을 만드는 미분 연산자 |
| $(\mathbf{u}\cdot\nabla)\mathbf{u}$ | 유체가 이동하면서 다른 위치의 속도에 영향 주는 가속도. 속도 자체가 속도의 변화를 결정하는 비선형 항. |
| $-\nabla p$ | 압력이 높은 곳에서 낮은 곳으로 유체를 미는 힘 |
| $\mu\nabla^2\mathbf{u}$ | 점성의 힘. $\mu$는 점성 계수를 의미하며 유체의 끈적한 정도를 나타냄 |
| $\mathbf{f}$ | 중력($\rho\mathbf{g}$)이나 부력 등 기타 다른 힘 |
| $\nabla\cdot\mathbf{u}=0$ | 유입, 유출 유량이 같아 0이 된다는 것으로 유체 부피가 줄거나 팽창하지 않는다는 조건. |
압축이 가능한 유체인 경우는 밀도도 시간 함수가 되어 또 다른 비선형 항이 추가되기 때문에 복잡해진다.
어떤 난제가 있었는가
나비에-스토크스 방정식으로 유체의 다양한 면모를 계산할 수 있다. 항공기 설계나 일기 예보 등에서 유체의 흐름을 계산하여 우리 일상에까지 영향을 주는 결과는 수없이 많다. 그럼 OpenAI가 해법을 구한 난제란 건 어떤 것일까?
클레이 수학연구소라는 단체에서 선정한 21세기 수학계에 기여할 수 있는 난제 7개 중 하나를 말하며 방정식이 쓰인 19세기 이래로 아직도 우리의 이해도는 낮다는 데서 출발한다.
공식적인 문제 설명에서는 방정식의 3차원 적용 시 가정한 몇 가지 조건을 만족하는 해가 존재하는지에 대해 네 가지 중 하나는 증명하라고 요구하고 있다.
(A) Existence and smoothness of Navier–Stokes solutions on $\mathbb{R}^3$
(B) Existence and smoothness of Navier–Stokes solutions in $\mathbb{R}^3/\mathbb{Z}^3$
(C) Breakdown of Navier–Stokes solutions on $\mathbb{R}^3$
(D) Breakdown of Navier–Stokes solutions on $\mathbb{R}^3/\mathbb{Z}^3$
OpenAI에서는 문제에 대해 아래와 같이 설명한다.
Specifically, can the Navier–Stokes equations for a three-dimensional incompressible fluid with constant density develop a “singularity,” even when the motion starts smoothly? Here, a singularity means the dynamics lead to speeds in the fluid growing without bound within a finite amount of time.
즉, 유체 속도가 유한한 시간 안에 무한히 빨라지는 특이점이 만들어질 수 있냐는 것이다. 현실에서 유체 속도는 무한대가 될 수 없기 때문에 이 지점부터 방정식은 유체 해석에 적합하지 않다. 클레이 연구소는 이를 붕괴(breakdown)라고 표현했다.
OpenAI는 앞서 C, D에 해당하는 증명, 즉 특이점이 생길 수 있다는 쪽으로 발표했다. 처음에는 정지해 있던 매끄러운 유체에 매끄러운 외력을 가했을 때 전체 에너지는 유한하게 남아 있는데도 유한한 시간 안에 유체의 속도가 무한히 커지는 예를 구성했다고 설명한다.
OpenAI는 “Astra보다 강력한 내부 모델을 사용하여” 이 문제를 증명했다고 발표했지만 실제로 해결한 게 맞는지에 대해서는 수학계 검증에 상당 시간이 필요하다고 한다.
나비에-스토크스 애니메이션 갤러리
일반인 입장에서 나비에-스토크스 방정식을 연구하는 게 목적은 아니고 그래서 방정식으로 뭘 할 수 있는지가 더 큰 관심사라 AI를 사용해 몇 가지를 구현해봤다.
3차원은 2차원보다 훨씬 복잡해지기 때문에 단순화한 2차원 실험으로 만들었고 마우스나 터치로 인터랙션이 가능하게 했다. 위 난제에서 특이점은 3차원인 경우이기 때문에 이 데모들에서는 특이점이 안오니 안심.
인터넷으로 찾아보면 나비에-스토크스 방정식 기반으로 다양한 유체 애니메이션 라이브러리와 알고리듬이 있는데 아래 구현은 그중 유명한 Jos Stam의 논문을 바탕으로 한 것이다.
참고로 동작 줄이기 설정을 사용하는 기기에서는 애니메이션이 정지된 그림으로 표시된다.
인터넷에는 본격적으로 구현한 애니메이션이 꽤 있다. 마치 기름이 퍼지는 것 같은 현상을 화려하게 표현한 예시도 그중 하나.
나비에-스토크스 방정식을 시각적으로 확인할 수 있어 재미있는 기회였다. 개발자로서 업무적으로 사용할 영역은 아니지만 옛날 배웠던 전공 과목 내용이 뉴스에 나와 반가웠다.
방정식에서 말하는 "특이점"과는 다르지만 AI가 차츰 사람의 능력을 넘어서 이해할 수 없는 영역까지 도달하는 사례가 계속 나오는 것 같다. AI가 자체적으로 발전, 진화하는 특이점이 오는 날이 멀지 않았다고 하는데 과학은, 인류는 어떻게 영향받을까?
댓글
댓글을 불러오는 중입니다.