레조버 컴퓨팅
정의 1
시계열 예측의 맥락에서, $t$ 시점에서 $M$차원 입력벡터 $\mathbf{u} (t) \in \mathbb{R}^{M}$ 가 주어졌을 때 $P$차원 출력벡터 $\mathbf{s} (t) \in \mathbb{R}^{P}$ 를 예측하려 한다. 이에 대해 저장소 동역학계reservoir dynamics $\mathbf{r} (t) \in \mathbb{R}^{N}$ 를 도입하여 그 선형변환으로써 미래의 출력벡터를 예측하는 방법을 레조버 컴퓨팅reservoir computing이라 한다.

$0 < t \leq T$ 까지의 데이터가 일정한 시간간격 $\Delta t$ 으로 나뉘어져서 $K$개의 데이터포인트 $\left\{ \left( \mathbf{u} \left( k \Delta t \right) , \mathbf{s} \left( k \Delta t \right) \right) \right\}_{k=1}^{K}$ 가 주어졌다고 하자. $T$ 이후의 예측출력벡터 $\hat{ \mathbf{s} }$ 는 다음과 같이 계산된다. $$ \hat{ \mathbf{s} } (t + \Delta t) = W_{\text{out}} \left[ \left( 1 - \alpha \right) \mathbf{r} (t) + \alpha \tanh \left( A \mathbf{r} (t) + W_{\text{in}} \mathbf{u} (t) \right) \right] $$ 여기서 $W_{\text{out}}$ 외에는 하이퍼파라미터로써 다음과 같다.
- $\alpha \in [0, 1]$: 누출계수leakage rate
- $A \in \mathbb{R}^{N \times N}$: 저장소 레이어의 인접행렬
- $W_{\text{in}} \in \mathbb{R}^{N \times M}$: 입력 가중행렬
- $\tanh : \mathbb{R}^{N} \to \mathbb{R}^{N}$: 벡터화된 하이퍼볼릭탄젠트
설명
레조버 컴퓨팅은 동역학의 연구 등에 있어서 굉장히 자주 쓰이는 머신러닝 기법으로써, 과거의 데이터는 주어져 있으나 앞으로 관측이 제한되는 상황에서 유용하다.
$\hat{ \mathbf{s} }$ 의 수식적인 형태에 따르면 $t$ 시점의 입력벡터 $\mathbf{u} (t)$ 가 주어지면 기존에 학습을 통해 얻은 $W_{\text{out}}$ 를 통해 $t + \delta t$ 시점의 출력벡터 $\hat{ \mathbf{s} } (t + \Delta t)$ 를 예측할 수 있다. 레조버 컴퓨팅의 지상목표는 다음과 같이 $\mathbf{s}$ 를 $\mathbf{u}$ 로 설명하는 함수의 근사 $f$ 를 찾는 것이라고 요약해도 무방하다. $$ \mathbf{s} \left( t + \Delta t \right) = f \left( \mathbf{u} (t) \right) $$

뢰슬러 어트랙터: $$ \begin{align*} {{dx} \over {dt}} =& - y - z \\ {{dy} \over {dt}} =& x + ay \\ {{dz} \over {dt}} =& b + (x-c) z \end{align*} $$
위 그림은 뢰슬러 어트랙터를 학습한 레조버 컴퓨터가 오직 $x$ 성분만 관측하고도 $y, z$ 성분을 성공적으로 예측하는 모습을 보여준다. 이 경우 $\mathbf{u} = (x)$ 는 $M=1$차원 벡터, $\mathbf{s} = (y,z)$ 는 $P=2$차원 벡터가 된다.
구현
저장소 동역학계
우선 저장소 레이어의 노드 수 $N \in \mathbb{N}$ 이 주어져야 한다. $\mathbf{r} \in \mathbb{R}^{N}$ 는 다음과 같이 맵의 형태로 동역학계를 이루며, 일종의 잠재 공간latent space 같은 역할을 한다고 보면 된다. $$ \mathbf{r} \left( t + \Delta t \right) = \left( 1 - \alpha \right) \mathbf{r} (t) + \alpha \tanh \left( A \mathbf{r} (t) + W_{\text{in}} \mathbf{u} (t) + \xi \mathbf{1} \right) $$ 초기상태 $\mathbf{r} (0)$ 은 랜덤하게 정하면 되고, $\alpha \in [0, 1]$ 은 입력벡터 $\mathbf{u}$ 의 영향을 얼마나 반영할지에 따라 조절하면 된다. $\tanh$ 는 최소제곱법을 사용하기에 앞서서 수식에 비선형성nonlinearity를 주기 위한 역할을 하며, 정확히 같지는 않지만 기능 상으로는 활성화함수와 유사하다고 봐도 무방하고 반드시 하이퍼볼릭탄젠트일 이유도 없다. $\xi$ 는 바이어스bias의 크기, $\mathbf{1}$ 은 일벡터인데 행렬대수적으로 이 바이어스 항이 큰 의미는 없기 때문에 가장 위에 서술된 수식에서는 생략했다.
저장소 레이어
$N$차원의 $\mathbf{r}$ 이 다음 타임스텝으로 넘어가며 재귀적으로 발생하는 상호작용은 저장소 네트워크reservoir network에 의해 제어된다. $A$ 는 에르되시-레니 네트워크의 인접행렬로써, 그 랜덤 네트워크의 평균 차수는 $D$ 가 되게끔 샘플링한다. $A$ 에서 $0$ 이 아닌 성분들은 균등분포 $U[-1, 1]$ 에서 iid하게 값을 뽑아서 대체한 후, $A$ 의 고유값 중 그 크기가 가장 큰 값, 다시 말해 스펙트럴 래디어스가 $\rho > 0$ 가 되게끔 $A$ 에 어떤 스칼라를 곱해 보정한다.
이렇게 랜덤 네트워크로 레조버 컴퓨터의 구조를 잡는 방식을 에코 스테이트 네트워크echo state network라 부른다2. 보다시피 $\mathbf{r}$ 은 네트워크가 주어지는 그대로 $\mathbf{r}$ 스스로에게 영향을 주고받으며 그 자체로 순환신경망RNN의 아이디어를 반영하게 된다.
입력가중치행렬
$W_{\text{in}} \in \mathbb{R}^{N \times M}$ 는 입력벡터 $\mathbf{u} (t) \in \mathbb{R}^{M}$ 가 가진 $M$ 개의 성분 중 하나씩만 받아서 넘기는 역할을 한다. 직관적으로 설명하자면, $W_{\text{in}}$ 의 각 행은 하나의 성분만 $0$ 이 아니어야 하며 반대로 $N$ 개의 레조버 네트워크의 각 노드는 각자 단 하나의 입력 성분만 받도록 한다. 어떤 입력 성분을 받을지는 랜덤으로 정하며, 그 값 역시 균등분포 $U[-\sigma, \sigma]$ 에서 랜덤하게 뽑는다. 입력가중치스케일scale of input weights $\sigma > 0$ 는 하이퍼파라미터인데, 보다시피 $W_{\text{in}}$ 는 나름의 합리적인 이유가 있다면 꽤나 임의적으로 정해도 좋다.
출력가중치행렬
지금까지 한 것은 $\mathbf{r}$ 를 $\mathbf{u}$ 에 대한 함수로써 표현한 것이다. 결과적으로 우리가 원하는 것은 $\mathbf{s}$ 가 $\mathbf{r}$ 에 대한 함수로써 표현되어 $\mathbf{u}$ 가 투입되면 $\mathbf{s}$ 가 산출되는 것이다. $\mathbf{s}$ 의 예측벡터 $\hat{ \mathbf{s} }$ 는 다음과 같이 표현된다. $$ \hat{\mathbf{s}} (t) = W_{\text{out}} \mathbf{r} (t) + \mathbf{c} $$ 여기서 $\mathbf{c}$ 는 앞서 보았던 $\xi \mathbf{1}$ 과 마찬가지로 바이어스 항인데, 역시 큰 의미는 없기 때문에 요약된 공식에선 생략했다. $W_{\text{out}}$ 와 $\mathbf{c}$ 는 하이퍼파라미터가 아니라 우리가 실제로 계산해서, 즉 학습을 통해 얻어야 하는 파라미터다.
우선 픽스된 하이퍼파라미터에 대해 $\mathbf{u} (t)$ 로 $\mathbf{r} (t)$ 를 모두 계산한 후, 다음과 같은 행렬 $R, S$ 를 정의하려 한다. $$ \begin{align*} \overline{\mathbf{r}} =& {\frac{ 1 }{ K }} \sum_{k=1}^{K} \mathbf{r} (k \Delta t) \\ \overline{\mathbf{s}} =& {\frac{ 1 }{ K }} \sum_{k=1}^{K} \mathbf{s} (k \Delta t) \\ \left( R \right)_{:, k} =& \mathbf{r} (k \Delta t) - \overline{\mathbf{r}} \\ \left( S \right)_{:, k} =& \mathbf{s} (k \Delta t) - \overline{\mathbf{s}} \end{align*} $$ 여기서 $\left( X \right)_{:, j}$ 는 행렬의 $j$번째 열을 뜻하는 표기법이다. 쉽게 말해, $R$ 과 $S$ 는 디자인 매트릭스다. 이제 최소제곱법을 사용하기 위한 빌드업이 끝났다.
리지 회귀의 최적해: $$ L \left( \beta \right) = \left\| Y - X \beta \right\|_{2}^{2} + \lambda \left\| \beta \right\|_{2}^{2} $$ $\lambda$ 가 상수로 주어져 있을 때, 리지 회귀의 목적 함수 $L$ 을 위와 같이 나타내자. 리지 회귀의 최적해 $\hat{\beta} = \argmin_{\beta} L \left( \beta \right)$ 는 다음과 같다. $$ \hat{\beta} = \left( X^{T} X + \lambda I \right)^{-1} X^{T} Y $$ 여기서 $A^{T}$ 는 $A$ 의 전치행렬, $I$ 는 항등행렬, $A^{-1}$ 는 $A$ 의 역행렬이다.
오버피팅을 방지하기 위한 레귤러라이제이션으로써 리지 회귀를 쓴다고 치면, 희소성 파라미터 $\lambda \geq 0$ 에 대해 $W_{\text{out}}^{\ast}$ 는 다음과 같이 계산된다. $$ W_{\text{out}}^{\ast} = S R^{T} \left( R R^{T} + \lambda I \right)^{-1} $$ 인용된 공식과 곱셈의 순서가 반대인 것은 디자인 매트릭스가 학습 데이터의 양에 따라 가로로 길어지는 식으로 정의되어 트랜스포즈가 이미 취해져 있어서라고 보면 된다. $\mathbf{c}^{\ast}$ 는 다음과 같이 평균적인 의미의 드리프트같은 느낌으로 구해진다. $$ \mathbf{c}^{\ast} = \overline{\mathbf{s}} - W_{\text{out}}^{\ast} \overline{\mathbf{r}} $$
결과적으로 보면 그냥 다변량비선형회귀분석 아닌가 싶은 생각이 들텐데, 실제로 맞다. 생략 없이 구현 그대로의 수식은 다음과 같다. $$ \begin{align*} \hat{ \mathbf{s} } (t + \Delta t) =& W_{\text{out}}^{\ast} \mathbf{r} (t + \Delta t) + \mathbf{c}^{\ast} \\ =& W_{\text{out}}^{\ast} \left[ \left( 1 - \alpha \right) \mathbf{r} (t) + \alpha \tanh \left( A \mathbf{r} (t) + W_{\text{in}} \mathbf{u} (t) + \xi \mathbf{1} \right) \right] + \mathbf{c}^{\ast} \\ =& f \left( \mathbf{u} (t) \right) \end{align*} $$
최종적으로 학습된 모델을 관조해보면 경사하강법을 사용하는 딥러닝과 비교했을 때 압도적으로 가벼운 걸 알 수 있다.
표준화 이슈
논문에서 저자들이 발견한 현상으로는, 데이터를 표준화한 경우엔 잘 작동하지만 그렇지 않은 경우엔 제대로 작동하지 않은 경우를 보았다.

로렌츠 어트랙터에서 학습된 레조버 컴퓨터의 퍼포먼스다. 위는 표준화하지 않은 케이스, 아래는 표준화한 케이스의 예측 결과다.
Zhixin Lu, Jaideep Pathak, Brian Hunt, Michelle Girvan, Roger Brockett, Edward Ott; Reservoir observers: Model-free inference of unmeasured variables in chaotic systems. Chaos 1 April 2017; 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: https://doi.org/10.1126/science.1091277 ↩︎

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

