기억보다 기록을
레저버 옵저버 (Reservoir observer) 논문 읽기 본문

Main Question : dynamical system에서 특정 시점 \( 0 \leq t \leq T \) 까지의 데이터는 가지고 있지만, \( t > T \)부터는 일부 관측 데이터만 가지고 있다고 했을 때, 나머지 관측 데이터를 추론할 수 있는가?
Example) : Lorenz system에서 \( T \) 시점까지는 모든 정보가 있지만 \( T \) 이후부터 \( x \)에 대한 time series가 있을 때 \( y,\, z\) 값을 추론할 수 있는가?

구성 요소를 하나씩 보자 :

- \( u(t) \in \mathbb{R}^M \) : 입력값 (알고있는 정보)
- \( s(t) \in \mathbb{R}^P \) : 추론값 (모르는 정보, \(t>T\) 이후로는 관측x )
- \( r(t) \in \mathbb{R}^N \) : \(u(t),\, s(t) \) 사이에 있는 Reservoir layer. \( N \)개의 노드로 구성된 네트워크

이 논문에서 저자들은 Jaeger and Haas로부터 제안된 reservoir technique인 Echo State Network (ESN)을 사용했다 (2번 논문).
구체적으로, \( r(t) \) 에 대한 수식은 아래와 같다.
$$ \mathbf{r}(t + \Delta t) = (1 - \alpha)\mathbf{r}(t) + \alpha \tanh(\mathbf{A}\mathbf{r}(t) + \mathbf{W}_{in}\mathbf{u}(t) + \xi \mathbf{1}), $$
- \( A \) : \( N \times N \) 사이즈의 weighted adjancy matrix of reservoir layer (node간의 인접행렬)
- \( 0<\alpha \leq 1 \) : leakage rate -- 0에 근접할수록 바로 직전 타임 스텝에서의 reservoir layer 정보를 최대한 보존
- \( W_{in} \) : \( N \times M \) 크기의 weight matrix. 입력값인 \( u(t) \) 에서 \( r(t) \)로 정보를 얼마나, 어떤 식으로 줄 것인가?에 대한 행렬
- \( \xi \mathbf{1} \) : bias term. \( \mathbf{1} \)은 모든 component가 1인 \( N \times 1 \) 크기의 벡터고, \( \xi \)는 스칼라. 이 term을 넣는 이유는 symmetric한 system에서 RC를 다룰 때 corresponding 되는 추론 값이 여러개가 되는 것을 방지하기 위함임 (5페이지 단락 참고)

(추론값 \( s(t) \)는 reservoir state의 linear function 형태로 표현된다 :
$$ \hat{\mathbf{s}}(t) = \mathbf{W}_{out}\mathbf{r}(t) + \mathbf{c} $$
독특한 점은, RC에서 학습을 시키는 대상은 \( W_{out} \)과 \( \mathbf{c} \) 뿐이다. (그 덕분에 계산이 매우 빠르고 효율적임)
다시 말해서 input weight matrix인 \( W_{in} \)과 adjacency matrix인 \( A \)는 초기에 랜덤하게 설정된 이후로 바뀌지 않는다.

그럼 \( A \)와 \( W_{in} \)은 어떻게 설정하는가? 이 지점에서 3개의 parameters : \( D,\, \rho,\, \sigma \)가 등장한다.

Adjacency matrix인 \( A \) 행렬 설정 :
- \( N \)개의 노드로부터 Erdős–Rényi model을 사용하여 sparse하게 생성 & 노드가 평균적으로 \(D\)개의 edge를 가지도록 설정.
- Edge의 weight는 \( Uniform(-1, 1) \) 에서 샘플링.
- \( A \) 행렬의 eigenvalue 의 절댓값의 최대 크기가 \( \rho \) (Spectral radius) 가 되도록 \( A \)를 rescaling 한다.

\( W_{in} \) 행렬 설정 :
- \( r(t) \) 계산 식에서 \( W_{in} \)은 입력값인 \( u(t) \)와 행렬곱을 한 후 tanh 함수를 거친다. 그래서 크기는 \( N \times M \)
- \( M \) 개의 입력값 각각이 reservoir layer에서 \( N/M \)개의 node에만 연결되도록 설정
- edge의 weight는 \( Uniform[-\sigma, \, \sigma] \) 에서 샘플링.

(사실 저자들은 이런 세팅 하에서 연구를 했지만, 설정 방법은 정해진게 아니라 다른 방법으로 행렬을 구성하는 것도 가능하다고 여지를 남겨두었다.)
또한 초기 조건에 의한 영향력을 없애기 위해 학습을 시킬 때 데이터의 일정 부분 (앞부분)은 Transient time으로 보고 날려버리며 (학습에 사용하지 않음), 퍼포먼스 비교를 위해 관측 데이터는 정규화하여 사용함.
다음으로, 아래의 quadratic form을 minimize하는 최적화 문제를 풀음으로써 \( W_{out} \)과 \( \mathbf{c} \) 을 구할 수 있다.
$$ \left\{ \sum_{k=1}^{K} \| \mathbf{W}_{out}\mathbf{r}(k\Delta t) + \mathbf{c} - \mathbf{s}(k\Delta t) \|^2 \right\} + \beta [\text{Tr}(\mathbf{W}_{out}\mathbf{W}_{out}^T)] \cdots (1)$$
참고로 이 논문에서 저자들은 overfitting을 방지하기 위해서 Tikhonov Regularization (Ridge Regression)을 사용하였다 ( \( \beta \)가 붙어있는 term )
구체적으로 \( W_{out} \)과 \( \mathbf{c} \) 는 논문에서 소개된 것처럼 (7), (8)번 형태로 표현된다.

여기까지가 Model Setup 단락의 내용이었고, 저자들은 Rossler system, Lorenz system, Kuramoto-Sivashinsky equation에 대해 RC가 얼마나 잘 working하는지를 설명해두었다.
Result : A. Rossler system
RC에는 다양한 hyperparameter들이 있는데, 이 값에 따라 RC의 성능이 어떻게 달라지는지를 나타낸 그림이다.

FIG 4의 왼쪽 (a) 그림은 (1)번 수식에서 time delayed input을 추가한 후 \( s(t) \)를 추론했을 때의 성능을 나타낸 것이다 (빨강색 곡선).
$$ \sum_{k=0}^{K} d_k \mathbf{u}(t - k\Delta t) $$
대체적으로 노드의 수가 크지 않을 때에는 성능이 꽤 좋아지지만 노드의 수가 커질수록 성능 향상의 정도는 약해진다.
FIG 4의 오른쪽 (b) 그림은 관측 데이터에 noise를 \( Uniform(-\eta, \, \eta)\)에서 추가했을 때 성능이 어떻게 달라지는지를 비교한 그림이다.
대체로 \( \eta \leq 10^{-4} \) 까지는 robust하다~ 라고 저자들은 주장하고 있다.

Result : B. Lorenz system
에서의 키워드는 "observability"이다.
앞에서 언급한 RC의 절차를 똑같이 따라갔음에도,
입력값인 \( u(t) \)가 무엇이냐에 따라 모델의 성능이 저조한 경우도 있고, 우수한 경우도 있다.
실제로 Lorenz system에서 \( x \)를 \( u(t) \)로 두고 \( y,\,z\)를 추론하는 경우에는 모델이 잘 working하지만,
\( z \)를 \( u(t) \)로 두고 \( x,\,y\)를 추론하는 경우에는 아주 저조한 성능을 보인다.
그 이유는 Lorenz system이 \( (x,\,y,\,z) \) → \( (-x,\,-y,\,z) \) 변환에 대해 invariant하기 때문이다.
이러한 이유에서 \( z\)만 측정 데이터로 있는 경우에는 "non-observability"로 이어진다.
(직관적으로 생각하면, 가로 세로에 대해 대칭성이 있기 때문에 높이 정보만 주었을 때 왼쪽 날개에 있냐? 오른쪽 날개에 있냐?를 판단할 수 없음)

그래서 이런 경우에는 어떻게 해결하는가? 저자들은 크게 아래의 두가지 방법을 제안함 :
- \( x \) 를 추론하는 대신 \( x^2 \)을 추론한다. (대칭성때문에 왼쪽, 오른쪽은 몰라도 크기는 알 수 있다)
- bias term \( \xi \)를 추가해서 대칭성을 깨트린 후 추론을 한다.
요약하자면, RC의 장점과 한계점은 다음과 같다 :
- 복잡한 미분방정식 모델을 몰라도, 데이터만 있으면 측정되지 않은 변수를 추론해낼 수 있다.
- 복잡한 학습 과정 없이 Output weight \( (W_{out}) \)에 대한 회귀분석만 처리하면 되므로 기존의 AI 모델 대비 빠르고 효율적이다.
- 임의의 데이터에 대해 RC를 사용한다면, \( \rho, \alpha \) 등 tuning해야하는 hyperparameter가 많으며 이로 인해 많은 계산량이 필요하다. 또한, \( O(N^2) \) 꼴로 연산량이 증가하기 때문에 \( N \)이 커지면 연산량이 많아짐
- 행렬 \( A \)와 \( W_{in} \) 을 랜덤하게 생성했는데, 이렇게 설정한 행렬들이 꼭 working한다는 보장이 없음.
- Initial condition의 영향력을 없애기 위해 날려버려야 하는 앞부분 데이터가 많기 때문에 데이터가 매우 희소한 경우 사용이 제한적임
참고 문헌 :
- Lu, Z., Pathak, J., Hunt, B., Girvan, M., Brockett, R., & Ott, E. (2017). Reservoir observers: Model-free inference of unmeasured variables in chaotic systems. Chaos (Woodbury, N.Y.), 27(4), 041102. https://doi.org/10.1063/1.4979665
- Herbert Jaeger, Harald Haas ,Harnessing Nonlinearity: Predicting Chaotic Systems and Saving Energy in Wireless Communication.Science304,78-80(2004).DOI:10.1126/science.1091277
'Research' 카테고리의 다른 글
| Reservoir computing - Hyperparameter optimization 실습 (MATLAB) (0) | 2026.01.31 |
|---|---|
| Bayesian Optimization에 대한 컨셉 이해 & MATLAB 실습 (0) | 2026.01.31 |
| Next Generation Reservoir Computing 코드 실습 (MATLAB) (0) | 2026.01.31 |
| Next Generation Reservoir Computing 읽기 (0) | 2026.01.25 |
| 레저버 옵저버 (Reservoir observer) 실습 (MATLAB) (0) | 2026.01.24 |