과거 인공지능 분야에서는 지식 기반의 전문가 시스템 및 머신러닝 알고리즘들을 금융 분야에 적용하는 연구가 꾸준하게 수행되어 왔다. 특히 주식에 대한 지식 기반의 시스템 트레이딩은 이제 보편화되었고, 최근에는 대용량 데이터에 기반한 딥러닝 기술을 주가 예측에 적용하기 시작했다. 이중 LSTM은 시계열 데이터에 대한 검증된 모델로서 주가 예측에도 적용되고 있다. 본 논문에서는 주가 예측 모델로서 LSTM을 적용할 때 성능향상을 위해 고려해야 할 복잡한 매개변수 설정과 적용 함수들에 대해 적합한 조합 방법을 제안하도록 한다. 크게 가중치와 바이어스에 대한 초기화 대상과 설정 방법, 과적합을 피하기 위한 정규화 적용 대상과 설정 방법, 활성화 함수 적용 방법, 최적화 알고리즘 선택 등을 제시한다. 이 때 나스닥 상장사들에 대한 대용량 데이터를 바탕으로 각각의 방법들을 적용하여 정확도를 비교하면서 평가한다. 이를 통해 주가 예측을 위한 LSTM 적용 시 최적의 모델링 방법을 실증적인 형태로 제안하여 현실적인 시사점을 갖도록 한다. 향후에는 입력 데이터의 포맷과 길이, 하이퍼파라미터들에 대한 성능평가를 추가 수행하여 주요 설정 항목들의 조합에 대한 일반화 연구를 수행하고자 한다.
과거 인공지능 분야에서는 지식 기반의 전문가 시스템 및 머신러닝 알고리즘들을 금융 분야에 적용하는 연구가 꾸준하게 수행되어 왔다. 특히 주식에 대한 지식 기반의 시스템 트레이딩은 이제 보편화되었고, 최근에는 대용량 데이터에 기반한 딥러닝 기술을 주가 예측에 적용하기 시작했다. 이중 LSTM은 시계열 데이터에 대한 검증된 모델로서 주가 예측에도 적용되고 있다. 본 논문에서는 주가 예측 모델로서 LSTM을 적용할 때 성능향상을 위해 고려해야 할 복잡한 매개변수 설정과 적용 함수들에 대해 적합한 조합 방법을 제안하도록 한다. 크게 가중치와 바이어스에 대한 초기화 대상과 설정 방법, 과적합을 피하기 위한 정규화 적용 대상과 설정 방법, 활성화 함수 적용 방법, 최적화 알고리즘 선택 등을 제시한다. 이 때 나스닥 상장사들에 대한 대용량 데이터를 바탕으로 각각의 방법들을 적용하여 정확도를 비교하면서 평가한다. 이를 통해 주가 예측을 위한 LSTM 적용 시 최적의 모델링 방법을 실증적인 형태로 제안하여 현실적인 시사점을 갖도록 한다. 향후에는 입력 데이터의 포맷과 길이, 하이퍼파라미터들에 대한 성능평가를 추가 수행하여 주요 설정 항목들의 조합에 대한 일반화 연구를 수행하고자 한다.
Many developments have been steadily carried out by researchers with applying knowledge-based expert system or machine learning algorithms to the financial field. In particular, it is now common to perform knowledge based system trading in using stock prices. Recently, deep learning technologies hav...
Many developments have been steadily carried out by researchers with applying knowledge-based expert system or machine learning algorithms to the financial field. In particular, it is now common to perform knowledge based system trading in using stock prices. Recently, deep learning technologies have been applied to real fields of stock trading marketplace as GPU performance and large scaled data have been supported enough. Especially, LSTM has been tried to apply to stock price prediction because of its compatibility for time series data. In this paper, we implement stock price prediction using LSTM. In modeling of LSTM, we propose a fitness combination of model parameters and activation functions for best performance. Specifically, we propose suitable selection methods of initializers of weights and bias, regularizers to avoid over-fitting, activation functions and optimization methods. We also compare model performances according to the different selections of the above important modeling considering factors on the real-world stock price data of global major companies. Finally, our experimental work brings a fitness method of applying LSTM model to stock price prediction.
Many developments have been steadily carried out by researchers with applying knowledge-based expert system or machine learning algorithms to the financial field. In particular, it is now common to perform knowledge based system trading in using stock prices. Recently, deep learning technologies have been applied to real fields of stock trading marketplace as GPU performance and large scaled data have been supported enough. Especially, LSTM has been tried to apply to stock price prediction because of its compatibility for time series data. In this paper, we implement stock price prediction using LSTM. In modeling of LSTM, we propose a fitness combination of model parameters and activation functions for best performance. Specifically, we propose suitable selection methods of initializers of weights and bias, regularizers to avoid over-fitting, activation functions and optimization methods. We also compare model performances according to the different selections of the above important modeling considering factors on the real-world stock price data of global major companies. Finally, our experimental work brings a fitness method of applying LSTM model to stock price prediction.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
LSTM은 기존의 RNN(Recurrent Neural Network) 모델이 학습이 길어지면 초기에 학습한 결과를 잊어버리는 기울기 소실(Vanishing Gradient) 문제를 극복하기 위해 입력 게이트, 출력 게이트, 망각 게이트로 구성된 셀(Cell)을 추가해서 개선한 모델로서, 과거 학습정보를 기억하고 새로운 학습결과에 반영이 가능해서 시계열 문제 및 예측 문제에 성능을 발휘하는 학습 모델이다. 따라서 본 논문에서는 전형적인 시계열 데이터인주가 데이터에 대해 최근에 활용성이 더욱 높아지고 있는 LSTM 모델을 적용하는 방법론을 제시한다는 측면에서 의의를 두고 연구를 수행하였다.
본 연구에서는 딥러닝 모델인 LSTM(Long Short Term Memory)을 이용한 주가 예측 모델을 구현하고 모델 성능에 영향을 미치는 중요한 학습 방법들에 대해 실험하였다. LSTM은 기존의 RNN(Recurrent Neural Network) 모델이 학습이 길어지면 초기에 학습한 결과를 잊어버리는 기울기 소실(Vanishing Gradient) 문제를 극복하기 위해 입력 게이트, 출력 게이트, 망각 게이트로 구성된 셀(Cell)을 추가해서 개선한 모델로서, 과거 학습정보를 기억하고 새로운 학습결과에 반영이 가능해서 시계열 문제 및 예측 문제에 성능을 발휘하는 학습 모델이다.
또한 게이트에 포함되는 가중치(W)와 바이어스(b)는 학습해야 할 대상이다. 본 연구에서는 딥러닝 모델인 LSTM을 이용한 주가 예측 모델을 Keras[15]를 이용하여 구현하고 Keras 기반 LSTM 모델 적용 시에 모델 성능에 영향을 미치는 중요한 매개변수들에 대해 실험하였다.
본 연구에서는 미국의 대표적인 글로벌 회사들에 대한 주가 데이터를 바탕으로 LSTM 기반의 예측 모델을 수립하였다. 이 때 학습 및 예측하는데 있어서 필요한 주가 히스토리 데이터가 준비되어야 하는데, 이는 Yahoo API[16]를 통해 수집하였다.
본 연구에서는 주가 예측 모델로 LSTM을 적용하는데 있어서 Fig. 6에 표시된 것처럼 모델의 성능에 중요한 영향을 미치는 주요 학습 방법들을 어떤 형태로 정해야 최적의 성능을 발휘할 수 있는지를 실험적으로 알아보았다. 이를 위해 주가 예측 모델을 Keras 환경에서 구현하는데 있어서 정해야 할 주요 학습방법들에 대해서 각각 해당하는 매개변수 항목들을 설정하고 이들을 복합적으로 조정하면서 최적의 조건을 찾는 실험을 수행하였다.
Adamax와 Nadam은 Adam을 변형한 방법으로서, Nadam은 Adam RMSprop with Nesterov momentum이다. 본 연구에서는 활성화 함수 조합에서 성능이 잘 나온 (tanh, hard sigmoid)와 (elu, hard sigmoid)에 대해 최적화 함수를 각각 실험하였다.
주식과 같은 금융 분야에도 예외 없이 딥러닝 모델들을 적용하여 효과를 보고 있으며, LSTM 모델은 시계열 데이터에 대한 예측 모델로서 검증된 방법이다. 이에 본 연구에서는 LSTM 모델의 성능향상을 위해 고려해야 할 복잡한 매개변수 설정과 적용 함수들에 대해 실증적인 실험을 통해적합한 방법을 제시하였다. 크게 가중치와 바이어스에 대한 초기화 대상과 방법들의 설정 방법, 과적합을 피하기위해 정규화를 적용할 수 있는 대상과 방법, 활성화 함수의 종류와 적합한 방법, 최적화 알고리즘의 적용방법 등에 대해서 복합적인 형태로 실험을 수행하여 제시하였다.
제안 방법
Fig. 8과 같이, 정규화에 대해서도 유의미한 성능 개선을 보인 kernel regularizer와 activity regularizer를 조합해 실험하였다. 이때 activity는 L2(0.
bias initializer에서 RMSE가 낮은 방법들은 he uniform, random uniform, truncated normal이었다. 그러나 실제 LSTM 모델을 사용할 때에는 성능을 높이기 위해서 위의 세 가지 초기화 방법들을 모두 적용해야 하므로 이들의 조합 형태로 다시 실험하여 의미 있는결과를 도출하였다.
학습을 위한 데이터의 특징(Feature)을 선택할 때, 본 모델은 다음날의 수정종가를 예상하기 위한 모델이기 때문에 시작가, 최고가, 최저가, 종가를 사용하지 않고 수정 종가를 선택하였고, 거래량은 해당 종목의 예측에 주로 쓰이는 데이터 중 하나이기 때문에 특징값으로 사용하였다. 또한 값이 변화하는 경향을 파악하기 위해 전날 데이터와 비교한 수정종가 변화량과 거래량 변화량을 특징값으로 사용하였다. 그런데 거래량 특징값에 대해서는 거래량 수치와 경향(거래량의 변화량)을 같이 학습시켜야 하는지, 아니면 경향만 학습시키면 되는 것인지가 검토 과정에서 문제가 되었다.
크게 가중치와 바이어스에 대한 초기화 대상과 방법들의 설정 방법, 과적합을 피하기위해 정규화를 적용할 수 있는 대상과 방법, 활성화 함수의 종류와 적합한 방법, 최적화 알고리즘의 적용방법 등에 대해서 복합적인 형태로 실험을 수행하여 제시하였다. 물론 주가 데이터 셋의 대상과 경향패턴, 입력 데이터의 길이 등과 같은 데이터 모델링과 드롭아웃 비율, 학습률 설정 등의 하이퍼파라미터 설정 방법에 따라 학습 성능이 달라질 수도 있으나 이들을 다른 딥러닝 모델의 학습환경에서 일반화하여 제시하는 설정값으로 고정한 상태에서 실험하였다. 다만 본 연구에서는 주가 예측에서 성능향상을 위해 중요하게 고려해야 할 복잡한 매개변수 항목들과 함수들은 어떤 것들이 있고 이들을 어떻게 설정해야 하는지에 대해 실험을 통해 제시함으로써 모델 적용 시 복잡성을 줄일 수 있게 하였다는 측면에서 의의가 있다고 생각된다.
이 때 normal과 uniform 은 각각 정규분포와 균일분포의 형태를 의미한다. 본 논문에서는 이러한 초기화 방법들을 각각 적용하여 성능평가를 수행하였다. 이 때 앞 절에서 언급한대로 훈련에 사용한 종목은 애플을 비롯한 10개 종목에 대해 훈련 및 추론 과정을 거친 후, 실제 예측은 구글, 페이스북, 페이팔, 브로드컴, 퀄컴 등의 5개 종목에 대해 수행하였다.
본 모델의 성능향상을 위한 매개변수 조정 항목들은 크게 초기화(Initialization) 방법, 정규화(Regularization) 요소, 활성화 함수(Activation Function)로 구분되고 각각의 항목들은 다시 세분화되어 설정함에 따라 예측 정확도에 영향을 미치게 된다. 아울러, 세부 평가항목 별로 학습 시 첫 1회만 적용하는 항목들과 이후에 적용하여 학습되는 항목들로 구성된다.
7은 구글 주가에 대해 예측을 수행하였을 때 초기화 조합을 적용한 결과를 보여주고 있다. 예측에 사용한 5개 종목 모두 가장 효과가 좋았던 것은 kernel initializer에는 Xavier normal(glorot normal), recurrent initializer에는 random normal, bias initializer에는 he uniform 방법을 적용한 조합이었다.
이 연구에서는 프렉탈, 모멘텀, 변동성의 특징을 추출하고, 이 후 kNN과 SVM을 활용한 모델을 만들어 다음 달의 지수를 예측하는 방법을 구현하였다. 이 때 알고리즘의 파라미터 최적화를 위해 kNN에 대해서는 k값과 SVM에 대해서는 RBF 커널의 정규화 관련 파라미터인 C값에 따른 정확도 변화를 측정하였다. [7]은 감성 분석을 통해 주가의 움직임을 예측하려 했는데 1000만 여개의 트위터 감성을 Calm, Alert, Sure, Vital, Kind, Happy 등의 6가지 감성으로 분류하고, 이를 사용하여 미국 다우존스의 등락을 예측하였다.
본 논문에서는 이러한 초기화 방법들을 각각 적용하여 성능평가를 수행하였다. 이 때 앞 절에서 언급한대로 훈련에 사용한 종목은 애플을 비롯한 10개 종목에 대해 훈련 및 추론 과정을 거친 후, 실제 예측은 구글, 페이스북, 페이팔, 브로드컴, 퀄컴 등의 5개 종목에 대해 수행하였다. 그 결과 먼저 kernel initializer에 대한 실험에서 RMSE가 낮은 방법들은 random normal, random uniform, xavier normal, xavier uniform, lecun normal이었다.
예를 들어, [5]에서는 회사의 재무정보를 SVM에 학습하여 주가를 예측하는 연구를 수행하였고, [6]에서는 kNN과 SVM을 사용하여 주가 예측하는 시스템을 개발하였다. 이 연구에서는 프렉탈, 모멘텀, 변동성의 특징을 추출하고, 이 후 kNN과 SVM을 활용한 모델을 만들어 다음 달의 지수를 예측하는 방법을 구현하였다. 이 때 알고리즘의 파라미터 최적화를 위해 kNN에 대해서는 k값과 SVM에 대해서는 RBF 커널의 정규화 관련 파라미터인 C값에 따른 정확도 변화를 측정하였다.
6에 표시된 것처럼 모델의 성능에 중요한 영향을 미치는 주요 학습 방법들을 어떤 형태로 정해야 최적의 성능을 발휘할 수 있는지를 실험적으로 알아보았다. 이를 위해 주가 예측 모델을 Keras 환경에서 구현하는데 있어서 정해야 할 주요 학습방법들에 대해서 각각 해당하는 매개변수 항목들을 설정하고 이들을 복합적으로 조정하면서 최적의 조건을 찾는 실험을 수행하였다.
실험 결과, 기본 활성화 함수로는 elu 또는 softsign, tanh가 주로 좋은 성능을 보였고, recurrent 활성화 함수로는 elu, softsign, tanh, hard sigmoid가 좋은 성능을 보였다. 이에 따라 각각 좋은 성능을 보였던 활성화 함수들의 조합을 사용해서 다시 시도해 보았다.
이에 본 연구에서는 LSTM 모델의 성능향상을 위해 고려해야 할 복잡한 매개변수 설정과 적용 함수들에 대해 실증적인 실험을 통해적합한 방법을 제시하였다. 크게 가중치와 바이어스에 대한 초기화 대상과 방법들의 설정 방법, 과적합을 피하기위해 정규화를 적용할 수 있는 대상과 방법, 활성화 함수의 종류와 적합한 방법, 최적화 알고리즘의 적용방법 등에 대해서 복합적인 형태로 실험을 수행하여 제시하였다. 물론 주가 데이터 셋의 대상과 경향패턴, 입력 데이터의 길이 등과 같은 데이터 모델링과 드롭아웃 비율, 학습률 설정 등의 하이퍼파라미터 설정 방법에 따라 학습 성능이 달라질 수도 있으나 이들을 다른 딥러닝 모델의 학습환경에서 일반화하여 제시하는 설정값으로 고정한 상태에서 실험하였다.
학습을 위한 데이터의 특징(Feature)을 선택할 때, 본 모델은 다음날의 수정종가를 예상하기 위한 모델이기 때문에 시작가, 최고가, 최저가, 종가를 사용하지 않고 수정 종가를 선택하였고, 거래량은 해당 종목의 예측에 주로 쓰이는 데이터 중 하나이기 때문에 특징값으로 사용하였다. 또한 값이 변화하는 경향을 파악하기 위해 전날 데이터와 비교한 수정종가 변화량과 거래량 변화량을 특징값으로 사용하였다.
대상 데이터
이에 따라 훈련에사용한 종목은 애플, 어도비, 아마존, 컴캐스트, 코스트코, CISCO, 인텔, 마이크로소프트, 엔비디아, 펩시 등이며, 예측에 사용한 종목은 구글, 페이스북, 페이팔, 브로드컴, 퀄컴 등이 되었다. 데이터 수집은 2000년 1월 1일부터 2018년 11월 중순까지의 데이터를 Yahoo API[16]를 통해 이루어졌다. 원시 데이터는 날짜, 시작가, 최고가, 최저가, 종가, 수정종가, 거래량으로 구성되어 있다.
본 연구에서 적용한 LSTM 모델을 구동한 서버의 하드웨어 환경으로는 CPU intel i7 6700, RAM 16 GIB, SSD 256GB Samsung evo pro 850, VGA GTX 1080을 탑재한 서버이고, 사용된 운영체제는 Ubuntu 16.04, 사용된 딥러닝 라이브러리 및 소프트웨어는 Tensorflow의 고수준 버전인 Keras, CUDA 8.0, Cudnn 6.0 등이 사용되었다.
원시 데이터는 날짜, 시작가, 최고가, 최저가, 종가, 수정종가, 거래량으로 구성되어 있다. 사용한 데이터는 2018년 11월 1일 기준 나스닥의 상위 종목 20개 중 훈련(Training)에 10종목, 예측(Prediction)에 5종목을 사용했으며 데이터는 2000년 1월 1일부터 2018년 11월 중순까지의 데이터를 사용했다. 이에 따라 훈련에 사용한 종목은 애플, 어도비, 아마존, 컴캐스트, 코스트코, CISCO, 인텔, 마이크로소프트, 엔비디아, 펩시 등이며, 예측에 사용한 종목은 구글, 페이스북, 페이팔, 브로드컴, 퀄컴 등이다.
학습 및 예측하는데 있어서 주가 데이터는 3.1절에서 설명한 바와 같이, 나스닥의 상위 대표 종목들 15개를 선택하고 이 중 훈련(Training)에 10종목, 예측(Prediction)에 5종목을 사용하였다. 이에 따라 훈련에사용한 종목은 애플, 어도비, 아마존, 컴캐스트, 코스트코, CISCO, 인텔, 마이크로소프트, 엔비디아, 펩시 등이며, 예측에 사용한 종목은 구글, 페이스북, 페이팔, 브로드컴, 퀄컴 등이 되었다.
데이터처리
아울러, 세부 평가항목 별로 학습 시 첫 1회만 적용하는 항목들과 이후에 적용하여 학습되는 항목들로 구성된다. 또한 매개변수 조정에 따른 모델의 성능평가 방법은 앞에서 언급한 것처럼 평균제곱근오차(RMSE: Root Mean Square Error)를 사용하였다. 이 방법은 모델의 예측값과 실제 환경에서 관찰되는 값의 차이를 다룰 때 흔히 사용하는 평가방법이다.
이론/모형
본 연구의 구현 및 실험 환경인 Keras에서 각각의 초기화 방법에는 텐서(Tensor)를 0으로 초기화하는 zeros, 텐서를 1로 초기화하는 ones, 텐서를 일정한 값으로 초기화하는 constant, 텐서를 정규분포로 생성하는 random normal, 텐서를 균일분포로 생성하는 random uniform, 텐서를 잘린 정규분포로 생성하는 truncated normal 등이 있다. 또한 스케일링을 가중치의 형태(Shape)에 맞게 조절할 수 있는 variance scaling, 렌덤직교행렬을 생성하는 orthogonal, 단위행렬을 생성하는 identity, LeCun이 제안한 LeCun uniform initializer, LeCun normal initializer, Xavier가 제안한 Xavier normal initializer(=glorot normal), Xavier uniform initializer(=glorot uniform), He가 제안한 He normal initializer, He uniform initializer를 사용할 수 있다. 이 때 normal과 uniform 은 각각 정규분포와 균일분포의 형태를 의미한다.
최적화 함수는 모델의 가중치 학습 시 적용하는 알고리즘이다. 모델이 훈련 데이터를 가지고 학습을 진행하면서 데이터에 최적화된 가중치들을 탐색하는데 모델의 계산값과 결과값(레이블)의 차이를 정의하는 손실 함수 (Loss Function) 값을 최소화하기 위해 기본적으로 기울기 감소(Gradient Descent) 방법을 사용한다. 그런데 기울기 감소 방법은 최소값을 찾기 위한 최적화 경로를 탐색하는 과정에서 최소값 수렴 여부와 계산속도, 국부 최적해(Local Minimum) 등 문제점이 있으므로 이를 개선한 여러 가지 최적화 함수들이 연구되어 적용되고 있다.
그런데 기울기 감소 방법은 최소값을 찾기 위한 최적화 경로를 탐색하는 과정에서 최소값 수렴 여부와 계산속도, 국부 최적해(Local Minimum) 등 문제점이 있으므로 이를 개선한 여러 가지 최적화 함수들이 연구되어 적용되고 있다. 본 연구의 구현 및 실험 환경인 Keras에서는 대표적인 최적화 함수들인 SGD, RMSProp, Adagrad, Adadelta, Adam, Adamax, Nadam 등 7가지를 적용할 수 있다. 먼저 SGD(Stocastic Gradient Descent)는 확률적 경사하강법으로 미분을 통해 기울기를 구하여 가중치를 갱신하는 방법으로서, 훈련 데이터 셋 전체(Batch)에 대해 손실 함수를 계산하는 대신 미니 배치(Mini-batch)의 작은 크기로 계산하고 이 작업을 반복수행함으로써 계산 속도를 개선하고 국부 최적해에 빠질 위험성을 줄이는 방법이다.
성능/효과
Fig. 9에서 보이듯이, 기본 활성화 함수와 순환 활성화 함수의 조합으로 기본 설정인 (tanh, hard sigmoid)가 가장 성능이 좋았으며 아주 근소한 차이로 (elu, hard sigmoid)가 두 번째로 성능이 좋았다.
004)로 설정하여 실험하였다. 결과적으로 kernel이 L2(0.003)일 때가 약간 성능이 좋아졌다.
이 때 앞 절에서 언급한대로 훈련에 사용한 종목은 애플을 비롯한 10개 종목에 대해 훈련 및 추론 과정을 거친 후, 실제 예측은 구글, 페이스북, 페이팔, 브로드컴, 퀄컴 등의 5개 종목에 대해 수행하였다. 그 결과 먼저 kernel initializer에 대한 실험에서 RMSE가 낮은 방법들은 random normal, random uniform, xavier normal, xavier uniform, lecun normal이었다. recurrent initializer에 대한 실험에서 RMSE가 낮은 방법들은 constant, ones, random normal이었다.
10에서 보이는 바와 같이, 활성화 함수가 tanh일 때는 최적화 함수가 Adam일 경우가 가장 성능이 좋았고 RMSProp, Adamax, Nadam이 유의미한 성능 개선을 보였다. 또한 Fig. 11에서 보이는 바와 같이, 활성화 함수가 elu일 때는 최적화 함수가 Adamax 일 경우가 가장 성능이 좋았으며 Adam이 비슷한 성능을 보였다.
또한 recurrent에 대해서는 L1, L2 모두 유의미한 변화를 보이지 않았고, bias에 대해서는 L1과 L2 모두 유의미하게 성능이 나빠졌다. 또한 activity에 L1을 적용할 때 유의미하게 성능이 매우 나빠졌고 L2를 적용할 때 유의미하게 성능이 좋아졌다.
본 논문에서 여러 가지 실험을 수행해본 결과, kernel에 대해서는 L1을 적용할 때 유의미하게 성능이 매우 나빠졌고, L2를 적용할 때 성능이 유의미하게 좋아지는 것을 확인할 수 있었다. 또한 recurrent에 대해서는 L1, L2 모두 유의미한 변화를 보이지 않았고, bias에 대해서는 L1과 L2 모두 유의미하게 성능이 나빠졌다. 또한 activity에 L1을 적용할 때 유의미하게 성능이 매우 나빠졌고 L2를 적용할 때 유의미하게 성능이 좋아졌다.
LSTM에 적용할 수 있는 정규화 대상으로는 kernel regularizer, recurrent regularizer, bias regularizer, activity regularizer가 있고, 각각에 대해서 L1 정규화 혹은 L2 정규화를 적용할 수 있다. 본 논문에서 여러 가지 실험을 수행해본 결과, kernel에 대해서는 L1을 적용할 때 유의미하게 성능이 매우 나빠졌고, L2를 적용할 때 성능이 유의미하게 좋아지는 것을 확인할 수 있었다. 또한 recurrent에 대해서는 L1, L2 모두 유의미한 변화를 보이지 않았고, bias에 대해서는 L1과 L2 모두 유의미하게 성능이 나빠졌다.
실험 결과, Fig. 10에서 보이는 바와 같이, 활성화 함수가 tanh일 때는 최적화 함수가 Adam일 경우가 가장 성능이 좋았고 RMSProp, Adamax, Nadam이 유의미한 성능 개선을 보였다. 또한 Fig.
여기에는 딥러닝 분야에서 연구되어 적용되고있는 다양한 함수들을 사용 가능하고, softmax, elu, selu, softplus, softsign, relu, tanh, hard sigmoid 등이 있다. 실험 결과, 기본 활성화 함수로는 elu 또는 softsign, tanh가 주로 좋은 성능을 보였고, recurrent 활성화 함수로는 elu, softsign, tanh, hard sigmoid가 좋은 성능을 보였다. 이에 따라 각각 좋은 성능을 보였던 활성화 함수들의 조합을 사용해서 다시 시도해 보았다.
후속연구
다만 본 연구에서는 주가 예측에서 성능향상을 위해 중요하게 고려해야 할 복잡한 매개변수 항목들과 함수들은 어떤 것들이 있고 이들을 어떻게 설정해야 하는지에 대해 실험을 통해 제시함으로써 모델 적용 시 복잡성을 줄일 수 있게 하였다는 측면에서 의의가 있다고 생각된다. 향후에는 입력 데이터의 포맷과 길이, 하이퍼파라미터들에 대한 성능평가를 추가적으로 수행함으로써 주요 설정 항목들의 조합에 대한 일반화 연구를 수행하고자 한다.
참고문헌 (17)
Alizadeh, M., et al. (2011). An adaptive neuro fuzzy system for portfolio analysis, International Journal of Intelligent Systems, 22(2), 99-114.
Behnoush Shakeri et al (2015). Fuzzy Clustering Rule-Based Expert System for Stock Price Movement Prediction, NAFIPS, Redmond, Washington, USA, August 17-19.
R. Lakshman Naik & D. Ramesh & B. Manjula & Dr. A. Govardhan (2012). Prediction of Stock Market Index Using Genetic Algorithm, Computer Engineering and Intelligent Systems, 3(7).
H. J. Kim et al. (2018). Stock Price Prediction Using Deep Learning Ensemble, SIGDB 34(2), 113-120.
S. W. Kim & H. C Ahn (2010). Development of an Intelligent Trading System Using Support Vector Machines and Genetic Algorithms, Journal of Intelligence and Information Systems, 16(1), 71-92.
J. Y. Heo & J. Y. Yang. (2015). SVM based Stock Price Forecasting Using Financial Statements, KIISE transactons on computing practices, 21(3), 167-172.
G. B. Nam et al. (2017). Development of Stock Investment System Using Machine Learning, 2017 Proceeding of Information Processing Society Fall Conference 24(2), 810-812.
Mao, H. Zeng & X. J, Leng, & G, Zhai (2011). Twitter mood predicts the stock market, Journal of Computational Science, 2(1), 1-8.
Y. J. Song & J. W. Lee & J. W. Lee (2017). Performance Evaluation of Price-based Input Featuress in Stock Price Prediction using Tensorflow, KIISE transactons on computing practices, 23(11).
D. H. Shin, K. H. Choi & C. B. Kim. (2017). Deep Learning Model for Prediction Rate Improvement of Stock Price Using RNN and LSTM, Jounral of KIIT, 15(10), 9-16.
Ashwin Siripurapu (2015). Convolutional Networks for stock Trading, Stanford University.
H. J. Kim et al. (2018). Stock Price Prediction Using Deep Learning Ensemble, SIGDB 34(2), 113-120.
W. S. Lee. (2017). A Deep Learning Analysis of the KOSPI's directions, Jounral of the Korean Data & Information Science Society, 28(2), 287-295.
T. W. Kim & H. Y. Kim (2019). Forecasting stock prices with a feature fusion LSTM-CNN model using different representations of the same data, PLoS ONE, 14(2).
※ AI-Helper는 부적절한 답변을 할 수 있습니다.