목록Research (6)
기억보다 기록을
지난번 포스팅 (1), (2)에 이어, 이번에는 Reservoir Computing (RC)에서의 Bayesian Optimization (BO)을 MATLAB으로 구현해보고자 한다 $$ \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}), $$ RC는 hyperparameter의 값에 따라 예측 성능이 꽤나 달라지는데, hyperparameter 목록은 크게 다음과 같다 :\( N \) : Reservoir network의 노드 개수\( \alpha \) : Leakage rate\( D \) : ER..
요즘에는 Arizona State University의 Zheng-Meng Zhai 아저씨가 작성한 이런 저런 논문을 읽는 중인데, Reservoir Computing (RC)을 사용할 때 필요한 hyperparameter들을 optimize할 때 Bayesian Optimization (BO)을 자주 사용했다고 한다. 그의 논문을 리뷰하기 위한 초석을 다지는 의미로, Bayesian Optimization에 대한 아주 기본적인 컨셉과 코드 실습, 추후에는 RC에서의 BO를 해보고자 한다. 머신러닝에서의 Hyperparameter optimization 기법은 아주 다양하다 [1]. 대표적으로 Grid search, Random search 등이 있는데, BO는 두 방법과는 달리 바로 직전의 ..
오늘은 MATLAB으로 Next Generation Reservoir Computing (NG-RC)를 구현해보려고 한다. 코드의 전체적인 구성은 다음과 같다.Lorenz attractor 데이터셋 생성Feature vector 구성Ridge regression을 통해 가중치 계산시계열 예측이번 실습에서는 Fig 2의 결과를 재현해보고자 한다.즉, \( x,\,y,\,z \) 를 모두 넣어서 전체 시스템을 forecasting하는 것을 목표로 한다. 1. Lorenz attractor 데이터셋 생성 코드clear; clc; close all;%% 1. 데이터 생성 (Ground Truth: Lorenz System)sigma = 10; rho = 28; beta = 8/3;lorenz = @(t,s..
Next Generation Reservoir Computing (NG-RC) 에 대해 알아보자. Reservoir computing (RC)의 고질적인 문제점은...행렬 \( A \)나 \( W_{in} \) 을 랜덤하게 설정했기 때문에 성능이 들쭉날쭉함\( \alpha \) 등의 parameter 값에 따라 성능이 달라지기 때문에 tuning하는데 드는 cost가 많았음 그래서 저자들이 NG-RC를 소개하며 이야기하고 싶은 것이 무엇인가?RC에서처럼 행렬을 랜덤하게 만들어서 학습할 필요 없이, Time-delayed data와 약간의 nonlinear term정도만 가지고도 좋은 성능을 낼 수 있다기존의 RC에서 parameter tuning에 소요가 많이 들었던 반면 NG-RC는 그 정도가 ..
논문의 예제처럼 Lorenz system에서의 Reservoir Computing (RC)를 MATLAB으로 구현해보려고 한다. 코드의 전체적인 구성은 다음과 같다.샘플 데이터 생성 및 정규화RC 모델 구축 (행렬 \( A, W_{in}\ 등)Ridge regression을 통해 \( W_{out}\) & \(c \) 계산\( s(t) \) 추론 및 시각화 1. 샘플 데이터 생성 및 정규화Lorenz system의 샘플 데이터 생성 (초기조건 : \( (x(0),\,y(0),\,z(0)) = (1,\,1,\,1) \) )$$ \begin{aligned} \frac{dx}{dt} &= a(y - x), \\ \frac{dy}{dt} &= x(b- z) - y, \\ \frac{dz}{dt} &= xy -..
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) ..