욱이의 냉철한 공부

[논문 요약] Forecasting stock prices with a feature fusion LSTM-CNN model using different representations of the same data, 2019 본문

데이터과학/논문 : Finance, 연구분야

[논문 요약] Forecasting stock prices with a feature fusion LSTM-CNN model using different representations of the same data, 2019

냉철한 욱 2020. 5. 2. 06:59

* 논문 

Forecasting stock prices with a feature fusion LSTM-CNN model using different representations of the same data

<이 논문은 저희 연구실(MLCF) 논문입니다. >


* 목차

1. Contribution

2. Input data

3. Output data, Performance measure

4. Modeling

5. Experiment and result

6. 한계점

 


1. Contribution

이 연구의 Contribution은  동일한 데이터에서 temporal(시간적) featuresimage(이미지) features를 추출 및 조합하여 예측 오차를 줄이는 것입니다. 기존 각 features들을 유형에 따라 분리하여 사용하는 것보다 더 낳은 성능개선을 보여줍니다. 

 

An optimal architecture constructed from different representations will learn duplicate features but will also learn the different characteristics of each architecture, which can improve
the prediction accuracy. From this motivation, in this study, we propose a feature fusion
model that integrates a CNN and LSTM to fuse features of different representations from
financial time series data to improve accuracy in predicting stock prices.

 

 

2. input data

- 입력 데이터

정량적 거래데이터 : 시가, 종가, 고가, 저가, 거래량

 

- 입력 데이터 종류 : 분  단위

1. 이미지(차트)데이터 : Candlestick chart, Line chart, F-line chart, Bar chart   <= (시가, 종가, 고가, 저가, 거래량)

2. 거래데이터 : 종가, 거래량

 

- 입력 데이터 출저

minute-by-minute SPDR S&P 500 ETF Trust (SPY) ticker data

Thom-son Reuter Database

 

- 입력 데이터 분류

training data : 2016-10-14 ~ 2017-06-20, 68,800개

validation data : 2017-06-21 ~ 2017-07-31, 10,000개

test data : 2017-08-01 ~ 2017-10-16, 19,474개

 

- 입력 데이터 변환 (Data representation)

1. 이미지(차트)데이터 (크기 : 112 x 112 pixels)

1) stock chart image

Candlestick chart (a) : 종가, 시가, 고가, 저가

line chart (b) : 고가, 저가

f-line chart (c) : 고가, 저가, 중가(고가, 저가의 평균)

bar chart (d) : 거래량

 

2) Fusion chart images

Candlebar chart (a) : 종가, 시가, 고가, 저가 + 거래량

linebar chart (b) : 고가, 저가 + 거래량

f-linebar chart (c) : 고가, 저가, 중가(고가, 저가의 평균) + 거래량

 

* 더 많은 정보(feature)를 표현 및 추출하기 위해 chart를 fusion한다.

  구체적으로는 기존 4개의 chart에서 중요한 bar chart를 남은 3개의 chart와 fusion한다. 

 

2. 거래데이터

종가(P), 거래량(V) 데이터의 변화량(Return)에 log를 씌운다. 그리하여 Logarithmic return로 변환한다.

즉 거래데이터 중 조정된 종가, 거래량이 input data가 된다.

 

* 차원 표현 : (68,800, 29, 2) 

               => 총 68,800개의 data sample은 각각 29개의 window length(time length)를 가지고,

                     2개(종가, 거래량)의 Feature 차원을 갖는다.

 

* log를 씌우는 이유는, 기존의 종가(P) 데이터에서 생기는 noise를 제거하기 위해서이다. 

 

 

3. Output data, Performance meature

- 출력 데이터 

1. 그 다음 1분 후를 예측하는 것이 아닌 5분 뒤를 예측

2. 종가를 예측하는 것이 아닌, 노이즈 감축효과를 목적으로 log를 씌워 수익을 예측 : Logarithmic return

- 평가지표 (학습기준) : RMSE, RMAE, MAPE

=> XLogarithmic return이다. 

 

 

 

 

 

4. Modeling

1) Stock chart CNN (SC-CNN) : 이미지(차트)데이터 학습

이 모델에서는 residual learning bottleneck method를 사용합니다.

이를 통해 layer을 deep하게 설계하는 것이 가능합니다.

그리고 각 layer마다 비선형 함수를 사용함으로써 복잡한 feature representation이 가능합니다.

그리하여 얻는 효과는 vanishing gradient를 통해 생기는 degradation problem을 해결할 수 있고, parameter는 감소시켜 time complexity등을 줄일 수 있습니다. 

 

SC-CNN모델은 기존의 ResNet-50 모델을 변형시킨 것입니다. SC-CNN모델의 input으로 들어가는 stock chart image는 낮은 차원의 data이기 때문에 50layer만큼 deep하게 설계되지는 않았습니다. 하지만 SC-CNN모델은 stock chart image에서 비선형 feature들을 추출하기 위해서 residual learningbottleneck method을 사용합니다. 결국 SC-CNN모델은 4개의 convolution layer와 3개의 fully connected layer를 사용합니다. 

* Residual learning 

* Bottleneck architecture

 

2) ST-LSTM : 거래데이터 학습

순서정보가 담긴 거래데이터(logarithmic returns : 종가, 거래량 변환)에서 순서적 feature들을 추출하기 위해 LSTM 모델을 활용합니다. 사실 이 거래데이터는 이미지(차트) 데이터와 동일한 데이터를 사용하는 것입니다. 다만 input되는 representation이 다른 것입니다. 

 

 

 

3) LSTM-CNN : feature fusion

같은 data로부터 각각 chart image와 stock time series data로 변환하여 input합니다.

그리고 위에 설명한 모델링을 통해 각각 다른 feature들을 추출합니다.

SC-CNN model에서는 graphical feature이고, ST-LSTM model에서는 temporal feature입니다. 

마지막으로 이것을 fusion하여 feature fusion LSTM-CNN branch 구조로 전달된다.

이 때, SC-CNN branch와 ST-LSTM은 모델링에 포함되지 않습니다.  

 

4) 학습방법 : loss function 활용

Total RMSE를 통해서 학습을 진행 할 것입니다. 

Total RMSE는 아래 1번째, 2번째, 3번째 합한 값입니다. 

1번째는 SC-CNN branch를 통한 loss function입니다.

2번째는 feature fusion LSTM-CNN branch를 통한 loss function입니다. 

3번째는 ST-LSTM branch를 통한 loss function입니다.

이들을 합친 것이 Total RMSE입니다. 그리고 각각 a, B, r이라는 가중치(하이퍼파라미터)를 두어서 각각 loss function의 반영 정도를 조정합니다. 당연히 B의 값을 더 높게 조정합니다. 

 

feature fusion LSTM-CNN학습은 다음과 같이 진행됩니다. 

첫째, SC-CNN은 SC-CNN loss를 줄이기 위해 학습됩니다. 이를 통해 chart image에서 graphical feature들을 학습할 수 있습니다.

둘째, ST-LSTM은 ST-LSTM loss를 줄이기 위해 학습됩니다. 이를 통해 stock time series에서 temporal feature들을 학습 할 수 있습니다.

셋째, feature fusion LSTM-CNN은 feature fusion LSTM-CNN loss를 줄이기 위해 학습됩니다. 이를 통해 feature fusion LSTM-CNN은 SC-CNN의 convolutional layer와 ST-LSTM의 LSTM layer에 포함된 parameter들을 공유할 수 있습니다. 즉 각각의 모델에서의 다른 representation의 feature들을 fuse 할 수 있습니다. 이것은 첫번째 fully connected layer에 반영됩니다.

 

이 모델링 학습은 SC-CNN과 ST-LSTM에서 fusion한 feature와 각각 image feature와 temporal feature들의 속성도 학습에 반영할 수 있습니다. 즉 feature fusion LSTM-CNN은 다양한 feature들을 학습할 수 있게 됩니다. 더불어 이를 통해 과적합을 막는 regularization 효과도 기대할 수 있습니다. 

 

 

 

5. Experiment and result

1) 첫째, SC-CNN 모델에 최적화된 stock chart image를 구성하고, 그 다음 어떤 stock chart image가 주가 예측에 가장 적합한지 확인한다.

learning rate : 0.001

weight decay : 0.0005

iteration : 60,000

=> 시가, 종가, 고가, 저가 등 많은 정보를 반영한 Candlestick chart image를 input한 결과가 가장 좋다.

 

2) 둘째, fusion chart image를 SC-CNN 모델에 사용하여 융합되지 않은 stock chart image보다 성능이 좋은지 확인한다.

learning rate, weight decay, iteration은 위의 실험과 같다.

=> 이 실험의 결과는 stock chart image에 정보를 추가하는 것이 주가를 예측하는 데 의미가 있다는 것을 보여준다.

      실혐 결과중에는 Candlebar chart image를 input한 결과가 가장 좋다. 

 

 

3) 셋째, time series information이 포함된 ST-LSTM 모델을 만들어  feature fusion LSTM-CNN 모델을 구축한다.

=> 이 실험의 결과는 SC-CNN모델에 fusion chart image를 input한 결과보다 더 좋다. 

      이것은 feature fusion시에 temporal features의 비율을 더 높게 하는 것이 성능에 도움이 된다는 것을 뜻한다.

 

4) 마지막으로, 본 연구에서 제안하고 있는 feature fusion LSTM-CNN 모델을 구성하여 동일한 데이터의 다양한 표현 기능의 융합을 설명한다.

=> 이 실험의 결과는 LSTM-CNN모델에 Candlebar chart와 stock time series를 input한 결과가 가장 좋다는 것을 보여준다.

=> 이 실험의 결과는 LSTM-CNN모델이 Naive 모델(전 time point와 결과값이 똑같은 모델.)보다 성능이 더 좋다는 것을 보여준다.

 

=> 이 실험의 결과는 LSTM-CNN모델이 Trading simulation에서도 좋은 Profit을 가져간다는 것을 보여준다. 

 

 

 

 

6. 한계점

However, this study did not prevent the phenomenon of being lagged because only one stock price data was used. 

이것을 제거하기 위해 Logarithmic return을 사용하지만, 불충분하다.

만약에 autoencoder, wavelet transformation같은 방법을 사용하여 noise를 제거한다면 더 낳은 성능 기대할 수 있다.

혹은 time-series data에 영향을 주는 경제변수들 혹은 기술적 지표을 이미지에 추가한다면 더 낳은 성능 기대할 수 있다.