동적 모드 분해

편집 역사 토론
수치해석 시뮬레이션 계산물리 마지막 수정: 2026-08-22 04:14:26

1. 개요[편집]

동적 모드 분해
Dynamic Mode Decomposition
약칭DMD
제안Schmid (2008 APS 발표 → 2010 JFM)
푸는 문제xk+1 ≈ A xk 를 가장 잘 만족하는 A 의 고유쌍
핵심 도구절단 SVD + QR 알고리즘
모드 1개가 갖는 것공간 형상 φ + 단일 주파수 + 성장률
이론적 배경쿠프만 연산자의 유한차원 근사
대표 함정측정잡음이 고유값을 감쇠 쪽으로 편향

POD는 “어느 방향에 에너지가 많냐”를 묻는다. DMD는 “다음 스냅숏을 어떻게 만들었냐”를 묻는다. 질문이 다르니 답도 다르다.

동적 모드 분해(Dynamic Mode Decomposition, DMD)는 등간격으로 찍힌 스냅숏 열에서 한 스텝 전진을 가장 잘 설명하는 선형 연산자 AA 를 최소제곱으로 찾고, 그 고유쌍을 뽑아 데이터를 “공간 형상 × 복소 지수”의 합으로 분해하는 데이터 기반 기법이다. 지배 방정식을 몰라도 되고, 실험 PIV 데이터든 대규모 직접수치모사 출력이든 스냅숏만 있으면 돌아간다.

핵심 발상은 한 줄이다. 상태 xkRnx_k \in \mathbb{R}^{n}Δt\Delta t 간격으로 m+1m+1 개 있을 때

xk+1Axk,k=1,,mx_{k+1} \approx A\,x_k, \qquad k = 1,\dots,m

를 가정하고, 두 스냅숏 행렬

X=[x1 x2  xm],X=[x2 x3  xm+1]X = [\,x_1\ x_2\ \cdots\ x_m\,], \qquad X' = [\,x_2\ x_3\ \cdots\ x_{m+1}\,]

에 대해 XAXF\lVert X' - AX \rVert_F 를 최소화하는 A=XX+A = X' X^{+} 를 잡는다(X+X^{+}최소자승법 의미의 유사역행렬). 그리고 AA 자체는 절대 만들지 않고 그 고유쌍만 저차원에서 꺼내 온다. nn10710^7 이어도 AA 의 랭크는 스냅숏 개수 mm 을 못 넘으니, 굳이 n×nn \times n 짜리 괴물을 세울 이유가 없다.

슈미트(P. J. Schmid)가 2008년 APS DFD 학회에서 발표하고 2010년 Journal of Fluid Mechanics 에 정식으로 실은 것이 출발점이다.1 비슷한 시기에 롤리(Rowley) 등이 같은 계산이 쿠프만 연산자의 스펙트럼 근사로 읽힌다는 것을 보이면서, 잔기술로 끝날 뻔한 알고리즘이 비선형 동역학 이론과 접속했다.

2. 알고리즘 — 다섯 줄[편집]

실제로 돌리는 순서는 짧다. 아래가 오늘날 표준으로 통하는 exact DMD(Tu 등, 2014)다.

1단계 — XX 의 절단 SVD. XUrΣrVrX \approx U_r \Sigma_r V_r^{*}. 랭크 rr 을 어디서 자르느냐가 사실상 유일한 사용자 결정이고, 잡음 억제도 대부분 이 단계가 한다.

2단계 — 저차원 연산자. AAUrU_r 이 치는 부분공간에 투영해 r×rr \times r 짜리로 줄인다.

A~=UrAUr=UrXVrΣr1\tilde{A} = U_r^{*} A U_r = U_r^{*} X' V_r \Sigma_r^{-1}

3단계 — 고유분해. A~W=WΛ\tilde{A} W = W \LambdaQR 알고리즘으로 푼다. Λ=diag(λ1,,λr)\Lambda = \mathrm{diag}(\lambda_1,\dots,\lambda_r) 이 곧 DMD 고유값이다.

4단계 — 모드 복원. 두 가지 관례가 있다.

Φproj=UrW,Φexact=XVrΣr1WΛ1\Phi_{\text{proj}} = U_r W, \qquad \Phi_{\text{exact}} = X' V_r \Sigma_r^{-1} W \Lambda^{-1}

5단계 — 진폭과 재구성. b=Φ+x1b = \Phi^{+} x_1 로 초기 진폭을 잡으면 전체 시계열이 닫힌 형태로 재생된다.

xkj=1rφjλjk1bj=ΦΛk1bx_k \approx \sum_{j=1}^{r} \varphi_j\,\lambda_j^{\,k-1} b_j = \Phi \Lambda^{k-1} b
주파수와 성장률을 미리 지정한 모드 셋(중립 |λ|=1, 성장 |λ|=1.045, 감쇠 |λ|=0.885)으로 128×80 시공간장을 만들고, 그람 행렬 79×79 의 야코비 고유분해로 SVD 를 얻은 뒤 Ã = UᵣᵀX′VᵣΣᵣ⁻¹ 의 고유값을 프란시스 이중시프트 QR 로 뽑아 복소평면에 찍는다. 잡음 0·r=5 에서 계산된 λ 는 해석값과 14.3자리까지 맞고, r 을 4 로 내리면 다섯 번째 방향이 없어 감쇠 모드가 통째로 빠진다(max오차 0.58). 잡음을 12 %까지 밀면 특이값이 작은 감쇠 모드의 |λ| 가 0.885 에서 0.732±0.044(24시드 앙상블)로 원 안쪽에 끌려 들어간다.

4단계의 두 관례 차이가 은근히 자주 헷갈린다. 투영 모드 UrWU_r Wrange(X)\mathrm{range}(X) 안에 놓이고, exact 모드range(X)\mathrm{range}(X') 안에 놓이면서 AA진짜 고유벡터가 된다는 것이 Tu 등이 증명한 내용이다.2 두 모드는 서로 직교 투영 관계(Φproj=UrUrΦexact\Phi_{\text{proj}} = U_r U_r^{*} \Phi_{\text{exact}})라서, 절단이 없고 XX' 의 열이 range(X)\mathrm{range}(X) 안에 들어오는 경우에는 아예 일치한다. Λ1\Lambda^{-1} 이 붙는 이유도 여기 있다 — 각 열을 1/λj1/\lambda_j 로 재스케일하는 것뿐이라 고유벡터로서는 같은 물건이지만, 이 관례를 따라야 λj=0\lambda_j = 0 인 모드를 예외로 걸러 낼 지점이 분명해진다.

3. 고유값 하나에 주파수와 성장률이 같이 들어 있다[편집]

DMD의 성격은 전부 λj\lambda_j복소수라는 데서 나온다. 이산 고유값을 연속시간으로 옮기면

ωj=lnλjΔt=lnλjΔt성장률+iargλjΔt각주파수\omega_j = \frac{\ln \lambda_j}{\Delta t} = \underbrace{\frac{\ln |\lambda_j|}{\Delta t}}_{\text{성장률}} + i\,\underbrace{\frac{\arg \lambda_j}{\Delta t}}_{\text{각주파수}}

이고, 재구성은 x(t)jφjeωjtbjx(t) \approx \sum_j \varphi_j e^{\omega_j t} b_j 가 된다. 즉 모드 하나 = 형상 하나 + 주파수 하나 + 감쇠·성장률 하나다. 실수 데이터라면 고유값이 켤레쌍으로 나오고, 그 쌍이 합쳐져 하나의 진동하는 실수 구조를 이룬다.

읽는 법도 단순하다. 복소평면 단위원 위에 고유값을 찍어 놓고 보면 된다.

위치의미유동에서의 예
λ>1\lvert\lambda\rvert > 1 (단위원 밖)지수적으로 성장선형 불안정 구간의 천이 모드
λ=1\lvert\lambda\rvert = 1 (단위원 위)중립 · 지속 진동리미트 사이클에 안착한 카르만 와열
λ<1\lvert\lambda\rvert < 1 (단위원 안)감쇠초기 과도, 또는 잡음이 만든 유령 모드
λ1\lambda \approx 1, 실수평균장진동하지 않는 배경 흐름

주의할 점 하나. lnλ\ln \lambda2πik2\pi i k 만큼의 분기 모호성이 있어서, ωj\omega_j 는 항상 주분기로 잡는다. 즉 나이퀴스트 한계 1/(2Δt)1/(2\Delta t) 를 넘는 주파수는 그냥 앨리어싱된 채로 나온다. 스냅숏 간격은 관심 주파수의 두 배보다 촘촘해야 하고, 동시에 전체 구간은 최소 몇 주기를 덮어야 한다. 이 두 조건을 동시에 만족시키려다 보면 저장해야 할 스냅숏이 순식간에 수백~수천 장이 된다.

4. POD와 무엇이 다른가[편집]

두 기법 다 스냅숏 행렬 하나에서 시작하고 둘 다 SVD를 때린다. 그래서 자주 묶여 언급되지만 답하는 질문이 다르다.

적합직교분해 (POD)동적 모드 분해 (DMD)
최적화 대상평균제곱 투영오차 최소한 스텝 전진 오차 최소
모드 정렬 기준에너지 큰 순정렬 기준 없음 (진폭·감쇠율로 사후 선별)
직교성정규직교일반적으로 비직교
시간 정보계수 ai(t)a_i(t) 는 광대역모드마다 단일 주파수
외삽불가 (기저일 뿐)Λk\Lambda^{k} 로 형식적 예측 가능

POD 모드는 단일 주파수 모드가 아니다. 에너지 순으로 정렬된 직교 기저일 뿐이라, 서로 다른 주파수의 현상이 에너지가 비슷하면 한 모드 안에 섞여 들어온다. 반대로 DMD는 주파수로 갈라 주는 대신 직교성도 에너지 순서도 포기한다. 그래서 실무에서는 압축·갤러킨 방법 기저 생성은 POD, 현상 분리·주파수 식별은 DMD로 역할을 나눠 둘 다 돌린다. 자세한 POD 쪽 사정은 적합직교분해축소차수모델 문서를 볼 것.

여담으로, DMD 모드의 순위를 매기는 문제는 의외로 열려 있다. φj\lVert \varphi_j \rVert 는 정규화 관례에 따라 달라지고, bj|b_j| 하나만 보면 초반에만 큰 과도 모드가 1등을 먹는다. 그래서 bjφjkλjk|b_j| \cdot \lVert \varphi_j \rVert \cdot \sum_k |\lambda_j|^{k} 처럼 시간구간 전체 기여를 적분한 지표를 쓰거나, 아예 아래의 희소촉진 DMD로 넘어간다.

5. 쿠프만 연산자 — DMD가 근사하고 있는 것[편집]

비선형 사상 xk+1=F(xk)x_{k+1} = F(x_k) 를 왜 선형 AA 로 근사해도 되는가? 답은 상태가 아니라 관측함수를 보라는 것이다. 쿠프만 연산자 K\mathcal{K} 는 관측함수 gg 에 작용해

(Kg)(x)=g(F(x))(\mathcal{K}g)(x) = g(F(x))

를 준다. FF 가 아무리 비선형이어도 K\mathcal{K}함수 공간 위의 선형 연산자다. 대가는 차원 — 유한차원 비선형계를 무한차원 선형계로 바꾼 것이다. 쿠프만(B. O. Koopman)이 1931년에 내놓은 이 관점을 메지치(Mezić)가 2005년에 모드 분해 도구로 부활시켰고, 롤리 등(2009)이 DMD 계산이 관측함수 g(x)=xg(x) = x 를 썼을 때의 쿠프만 스펙트럼 근사임을 지적했다.3

여기서 자주 오해가 생긴다. DMD가 쿠프만 고유값을 준다는 보장은 관측함수들이 쿠프만 불변 부분공간을 치고 있을 때만 성립한다. 좌표 자체 g(x)=xg(x)=x 는 그런 부분공간을 거의 만들지 못한다. 그래서 확장 DMD(EDMD)는 스냅숏을 xx 대신 [x, x2, xy, sinx,][\,x,\ x^2,\ xy,\ \sin x,\dots] 같은 비선형 사전(dictionary)으로 리프팅한 뒤 같은 계산을 돌린다. 관측함수를 신경망으로 학습하는 계열도 있고, 이쯤 되면 저장소 계산이나 시스템 식별과 경계가 흐려진다.

주의: 끌개가 여러 개인 계나 카오스에는 순수 점스펙트럼이 없고 연속 스펙트럼이 섞여 나온다. 유한 스냅숏에서 뽑은 유한 개 고유값은 그 연속 스펙트럼을 흉내 낸 이산 근사일 뿐이니, 계산이 예쁘게 나왔다고 진짜 주파수라고 우기면 안 된다. 쿠프만 연산자 쪽에 더 자세히 정리할 이야기다.

6. 변종 카탈로그[편집]

원 알고리즘이 워낙 단순해서, 부족한 부분마다 변종이 붙었다.

  • DMDc (DMD with control, Proctor 등 2016) — 입력 uku_k 가 있는 계에서 xk+1Axk+Bukx_{k+1} \approx A x_k + B u_k 를 함께 식별한다. 제어 입력을 무시하고 순수 DMD를 돌리면 액추에이터가 만든 응답까지 “계의 고유 동역학”으로 오판한다. 모델 예측 제어에 얹는 데이터 기반 모델의 표준 출발점.
  • 희소촉진 DMD (sparsity-promoting DMD, 요바노비치 등 2014) — 재구성 오차에 1\ell_1 벌점을 걸어 진폭 bb 를 희소하게 만든다. 즉 “몇 개만 남기고 다 죽여도 재구성이 되냐”를 최적화로 결정한다. 모드 순위 문제에 대한 가장 정직한 답. 라쏘·압축센싱과 같은 계보다.
  • 다해상도 DMD (mrDMD, 커츠 등 2016) — 시간 구간을 재귀적으로 반으로 쪼개면서 각 층에서 느린 모드부터 걷어낸다. 웨이블릿을 시간축에 적용한 셈이라, 배경 진동과 간헐적 사건이 섞인 데이터에 강하다.
  • 총최소제곱 / 전후방 DMD — 아래 잡음 편향 항목 참조.
  • 랜덤화 DMD — 1단계 SVD를 랜덤화 SVD로 갈아 끼운다. 스냅숏이 수천 장이면 여기가 병목이므로 효과가 즉시 보인다.
  • 물리 정보 DMDAA 를 직교·해밀턴·보존형 등 구조를 갖는 행렬 다양체 위로 제한해 푼다. 에너지 보존계에서 DMD가 물리적으로 말이 안 되는 감쇠를 만들어 내는 것을 구조적으로 막는다.

7. 실전 함정[편집]

잡음이 고유값을 안쪽으로 민다. 이게 가장 악명 높다. 측정잡음은 XXXX'동시에 실리는데, 최소제곱 XX+X'X^{+} 는 회귀변수 쪽 오차를 고려하지 않는다. 계량경제학에서 말하는 감쇠 편향(attenuation bias)과 같은 구조이고, 결과적으로 AA 가 0 쪽으로 수축해 모든 고유값이 단위원 안쪽으로 끌려간다. 즉 실제로는 중립 진동인 현상이 “천천히 감쇠하는 중”으로 보고된다. 신호 대 잡음비가 나쁘면 편향이 자릿수 단위로 커지므로, 스냅숏을 더 모아도 그냥 편향에 정확히 수렴할 뿐 해결되지 않는다.

처방은 두 갈래다. 전후방 DMD(forward-backward DMD)는 정방향 AfA_f 와 역방향 AbA_b 를 따로 구하고 (AfAb1)1/2(A_f A_b^{-1})^{1/2} 를 취해 대칭적으로 상쇄시킨다. 총최소제곱 DMD(TLS-DMD)는 애초에 XXXX' 양쪽의 잔차를 같이 최소화하는 총최소제곱 문제로 세운다.4 후자가 이론적으로 깔끔하지만 스냅숏이 부족하면 조건수가 나빠진다.

평균을 빼면 DMD가 DFT가 된다. POD 하던 버릇으로 시간평균을 먼저 빼는 사람이 많은데, 첸·투·롤리(2012)가 보인 바로는 스냅숏이 선형독립인 경우 평균 제거된 데이터의 DMD는 시간방향 이산 푸리에 변환과 동치가 된다. 성장률은 전부 0으로 깔리고 주파수는 DFT 격자에 못 박힌다. 그러면 애초에 고속 푸리에 변환을 돌리는 게 낫지 DMD를 쓸 이유가 없다.5 DMD에서 평균 모드(λ1\lambda \approx 1)는 빼는 게 아니라 결과로 나와야 하는 것이다.

이류 지배 유동에서 랭크가 터진다. DMD는 데이터를 φ(x)eωt\varphi(x)e^{\omega t} 꼴의 합으로 쓴다 — 공간 형상은 고정하고 시간만 지수로 흔든다는 뜻이다. 그런데 구조가 통째로 이동하는 진행파는 이 형태와 궁합이 나쁘다. 단일 파수의 순수 진행파라면 켤레쌍 하나로 끝나지만, 형상이 단일 푸리에 성분이 아닌 순간 그것을 합성하려고 모드 개수가 급격히 늘어난다. 결국 필요한 절단 랭크와 스냅숏 수가 같이 불어난다. 이건 DMD만의 병이 아니라 적합직교분해를 포함한 선형 부분공간 축약 전체의 고질병이고, 그래서 좌표 이동·정합(registration)으로 파동을 먼저 정지시킨 뒤 분해하는 처방이 나왔다.

절단 랭크가 결과를 지배한다. rr 을 크게 잡으면 잡음 모드가, 작게 잡으면 물리 모드가 사라진다. 특이값 스펙트럼의 무릎, 최적 하드 임계값(Gavish-Donoho), 혹은 그냥 rr 을 훑으며 고유값이 안정적으로 남는지 보는 방법을 쓴다. 마지막 방법이 제일 무식하고 제일 믿을 만하다.

8. 관련 문서[편집]

9. Footnotes[편집]

  1. Schmid, P. J. (2010). “Dynamic mode decomposition of numerical and experimental data.” Journal of Fluid Mechanics 656, 5–28. 학회 발표가 2008년, 논문이 2010년인데 인용 수가 폭발한 건 2014년 이후다. “SVD 하나 때리고 고유값 뽑는 게 전부”인 알고리즘이 10년 넘게 논문을 뽑아내고 있는 것을 보면, 좋은 아이디어의 조건은 복잡함이 아니라 재활용 가능성이라는 걸 알 수 있다.

  2. Tu, J. H., Rowley, C. W., Luchtenburg, D. M., Brunton, S. L., Kutz, J. N. (2014). “On dynamic mode decomposition: theory and applications.” Journal of Computational Dynamics 1(2), 391–421. 이 논문이 “스냅숏은 시간순으로 짝지어져 있어야 한다”는 원래 제약을 걷어내고 (xk,yk)(x_k, y_k) 쌍이기만 하면 된다고 일반화했다. 덕분에 서로 다른 실험 런에서 모은 데이터를 한 행렬에 몰아넣는 짓이 합법화됐다.

  3. Rowley, C. W., Mezić, I., Bagheri, S., Schlatter, P., Henningson, D. S. (2009). “Spectral analysis of nonlinear flows.” JFM 641, 115–127. 참고로 쿠프만은 1931년 PNAS 논문에서 이 연산자를 내놨는데, 당시 목적은 통계역학의 에르고딕 정리였지 유동 데이터 분석이 아니었다. 78년 뒤에 CFD 하는 사람들이 자기 논문을 이렇게 쓸 줄은 몰랐을 것이다.

  4. Hemati, M. S., Rowley, C. W., Deem, E. A., Cattafesta, L. N. (2017). “De-biasing the dynamic mode decomposition for applied Koopman spectral analysis of noisy datasets.” Theoretical and Computational Fluid Dynamics 31, 349–368. 전후방 판본은 Dawson 등(2016, Experiments in Fluids). 실험 데이터로 DMD 돌렸는데 감쇠율이 실험 반복마다 달라진다면 물리를 의심하기 전에 이걸 먼저 의심하는 게 맞다.

  5. Chen, K. K., Tu, J. H., Rowley, C. W. (2012). “Variants of dynamic mode decomposition: boundary condition, Koopman, and Fourier analyses.” Journal of Nonlinear Science 22, 887–915. “전처리로 평균 빼는 게 국룰 아니었나요”라는 질문에 대한 논문 한 편짜리 반례. 습관적 전처리가 알고리즘을 다른 알고리즘으로 바꿔 버리는 드문 사례다.