분수 함수를 극복하기 위한 신디: SINDyPI
알고리즘 1 2
신디 알고리즘: 상태공간이 $\mathbb{R}^{n}$ 인 동역학계가 다음과 같이 스무스 함수 $f : \mathbb{R}^{n} \to \mathbb{R}^{n}$ 에 의해 주어진다고 하자. $$ \dot{\mathbf{x}} = f \left( \mathbf{x} \right) $$ $X$ 의 독립변수들에 어떤 비선형함수를 취해서 얻는 파생변수로 만든 행렬 $\Theta \left( X \right) \in \mathbb{R}^{m \times p}$ 과 다음 행렬방정식에 STLSQ을 수행해서 지배 방정식governing equation을 찾는 알고리즘을 신디SINDy라 한다. $$ \dot{X} = \Theta \left( X \right) \Xi $$
암시적 미분방정식: 특히 상미분방정식에서, 다음과 같이 암시적implicit으로 표현되는 미분방정식을 암시적 상미분방정식이라 한다. $$ f \left( x , \dot{x} \right) = 0 $$
신디의 변형으로, 암시적 미분방정식으로 우회해서 분수 함수를 복원하는 알고리즘으로 암시적 신디implicit-SINDy 또는 신디파이SINDy-PI가 알려져 있다.
설명
$$ \dot{x} = {\frac{ x }{ x + a }} $$ 신디는 기본적으로 비선형항의 선형결합으로써 지배 방정식을 복원하기 때문에, 위와 같이 간단한 형태의 분수 함수조차 찾아내기 어렵다는 결점이 있다. 단순히 $1/x$ 가 곱해진 정도는 라이브러리를 늘려서 극복할 수 있지만, $a$ 를 특정하려면 무한히 많은 항이 후보로 들어가야 하기 때문에 현실적으로 불가능하다.
여기서 나온 아이디어가 바로 암시적 미분방정식으로 표현하는 것이다. 양변에 $x + a$ 를 곱해보면 분수함수가 포함된 미분방정식은 다음과 같이 표현할 수 있다. $$ \begin{align*} & (x + a) \dot{x} = x \ \\ \implies & a \dot{x} = x - x \dot{x} \ \\ \implies & \dot{x} = {\frac{ 1 }{ a }} x - {\frac{ 1 }{ a }} x \dot{x} \end{align*} $$ 결과적으로 이들 알고리즘은 다음과 같은 형태의 방정식을 목표로 하게 된다. $$ \dot{\mathbf{x}} = {\frac{ f_{N} \left( \mathbf{x} \right) }{ f_{D} \left( \mathbf{x} \right) }} $$
어떻게 보면 수치해석적으로 봤을 때 널리 알려진 솔버를 쓸 수 없고 암시적 미분방정식을 풀기 위한 솔버로 비용이 전가된 것이지만, 아예 분수함수를 복원할 수 없었던 문제에서 방정식을 유도할 수 있다는 것만으로도 큰 진저이라 할 수 있겠다.
암시적 신디

암시적 신디는 원래의 라이브러리에 $\dot{x}$ 를 한 번 곱해서 라이브러리에 추가하는 식으로 구현된다. 위 그림에서 표현하는대로 널스페이스로 접근해도 상관 없지만, 그냥 좌변으로 $\dot{x}$ 만 있는 행렬을 넘겨서 STLSQ를 수행해도 된다.
신디파이

저자들의 주장에 따르면 신디파이는 암시적 신디에 비해 노이즈에 강하며 성공확률도 높다고 한다. 위 그림과 같이 식을 세우고 $\Xi$ 를 찾아보면 자명한 해인 항등행렬이 있으므로, 그것을 배제하기 위해 $\diag \Xi$ 가 영벡터라는 제약조건이 주어진 최적화 문제로 바꾸는 것이다.
어떻게보면 암시적 신디에 비해서 훨씬 일반적이라도 할 수 있겠지만, $p \times p$ 크기의 $\Xi$ 를 찾아야한다는 것은 문제에 따라서 다소 과할 수도 있다. 개인적인 경험으로는 $\dot{x_{2}} g(x)$ 와 같은 라이브러리가 $x_{1}$ 을 예측하기 위해서도 들어가는 식의 문제를 보았다.
Mangan, N. M., Brunton, S. L., Proctor, J. L., & Kutz, J. N. (2017). Inferring biological networks by sparse identification of nonlinear dynamics. IEEE Transactions on Molecular, Biological, and Multi-Scale Communications, 2(1), 52-63. https://doi.org/10.1109/TMBMC.2016.2633265 ↩︎
Kaheman, K., Kutz, J. N., & Brunton, S. L. (2020). SINDy-PI: a robust algorithm for parallel implicit sparse identification of nonlinear dynamics. Proceedings of the Royal Society A: Mathematical, Physical and Engineering Sciences, 476(2242). https://doi.org/10.1098/rspa.2020.0279 ↩︎

저희들의 저서 「줄리아 프로그래밍」이 2024 세종도서 학술부문에 선정되었습니다!

