Deep Denoiser for Financial Time-series Data

 

Introduction

금융 시계열은 기본적으로 노이즈가 심합니다. 이는 딥러닝 학습에 방해요소로 작용합니다. 어떤 식으로 방해작용을 하는지 구체적으로 알아봅시다.

일반적으로 금융공학에서 시계열을 모델링할 때 Geometric Brownian Motion (GBM)을 주로 가정합니다. GBM은 근본적으로 AR(1)모형과 크게 다르지 않으므로, AR(1) 모형을 조금 변형한 상태에서 시작합시다.

Price(t+1) = Price(t) + Information(t) + Noise(t)

Price(t+1)에 가장 큰 영향을 주는 요소는 Price(t)입니다. Price(t)에 대한 계수는 일반적으로 1에 가깝다고 알려져있으며, 1에 가까울 수록 랜덤워크 성향은 강하게 나타납니다. 그 다음으로 영향이 큰 요소는 Noist(t)이고 간헐적으로 Information(t)가 나타나서 Price(t+1)에 영향을 주게 됩니다.

여기서 1차 차분을 통하면 Price(t+1) - Price(t) = Information(t) + Noise(t)가 되고 이를 주가지수를 이용해 Plot을 해보면 아래와 같습니다.

그림2.png

그래프에서 볼 수 있다시피 1차 차분을 했을 때 대체로 Stationary한 time-series가 나타나지만, 간헐적으로 spike같은 것이 지속되는 경우가 있는데, 이는 Information으로 인한 입니다. 하지만 이 time-series에서 지배적인 요소는 Noise라는 사실을 알 수 있습니다.

이 뜻은 AR(1) 모형과 유사한 형태가 된다는 의미입니다.

많은 사람들이 금융 데이터로 딥러닝을 시작할 때 Time-series에 대해 시도해보는 것은 LSTM을 이용한 시계열 예측입니다. 하지만 시계열은 실제로 AR(1)에 가까운 특성 때문에 직전값을 예측값으로 내놓는 경우가 많습니다. 이런 이유로 LSTM으로 주가 예측을 시도할 때 멀리서 보면 잘 맞추는 것 같아보이지만, 가까이서 보게되면 Lagging되는 형태로 예측값이 나오는 것입니다.

LSTM을 이용한 예측이 Lagging 되는 현상

LSTM을 이용한 예측이 Lagging 되는 현상

이런 이유로 금융 시계열을 다룰 때는 denoising의 중요성이 부각됩니다.



기존의 denoising 방법론

가장 기초적인 denoising 방법은 Moving Average를 이용한 방법입니다.

Denoising Through Moving Average

Denoising Through Moving Average

Moving Average denosinig은 위 그림과 같이 오른쪽으로 lagging 되는 문제점이 존재합니다.

이런 문제점을 완화하기 위해 Exponential Moving Average를 이용할 수 있습니다. 특히, Time-series sequence가 학습에 대한 batch로 들어간다면 past data가 recent data를 참조할 수 없는 상황이 아니기 때문에, bilateral filter를 이용하면 좀 더 효과적인 denoisng을 할 수 있습니다.

Bilateral Filter

Bilateral Filter

이런 방법들을 이용하면 학습개선 효과가 존재하지만, 어느 정도 수준에서 denoising을 해야하는지 결정해야하는 문제점이 있고, 학습 이전에 denoising 전처리가 필요하다는 단점이 있습니다.



Deep Time-series Denoiser

위와 같은 문제점들을 해결하기 위해 크래프트는 CNN Stacked AutoEncoder 기반의 Time-series Denoiser를 사용합니다. 이 Denoiser는 Naive AutoEncoder, LSTM Stacked AutoEncoder 등과 비교해볼 때 Robust한 성능을 보여줍니다.

그림7.png

CNN AE

이 모듈의 첫 번째 장점은 denosing 성능이 bilateral filter 만큼 좋다는 점입니다.

Blue : Original, Yellow : Denoised by CNN AutoEncoder, Green : 20 MA

Blue : Original, Yellow : Denoised by CNN AutoEncoder, Green : 20 MA

이 모듈의 두 번째 장점은 기존의 딥러닝 모듈 앞에 바로 붙여서 이용가능하다는 점입니다. 이 때 별도의 autoencoder loss를 받아와 joint loss를 gradient descent로 학습시키면 동시에 학습가능하며 계수를 일부조정하면서 스스로 denosing의 정도를 결정할 수 있습니다.

그림5.png

 
Hyojun MoonComment