LSTM은 RNN에서 파생된 것으로, 순차적인 입력 데이터간 간격이 커도 좋은 성과를 보여주는 것을 특징으로 한다.

이는 RNN이 가지는 Long-term dependency 문제점을 LSTM은 가지고 있지 않기 떄문이다. 해당 문제점은 예측에 필요한 정보와 정보간 간격이 클때 그 예측 능력이 현저하게 감소하는 것을 뜻한다. 

보편적으로, 대부분의 경우에 LSTM은 RNN보다 좋은 퍼포먼스를 보여주는 경향을 가진다.


다만 RNN역시 신경망의 한 종류이기 때문에, 그 과정에 있어서 설명력이 떨어진다는 단점을 가진다.

하지만 우리는 어떤 순서에 의하여 가격 예측을 하는지 그 과정이 필요한 것은 아니기 때문에, LSTM을 선택하기로 하였다.


LSTM의 자세한 수학적 원리는 웹의 여러 매체에 소개되어 있으며, 해당 포스팅에서는 간단하게 작동 원리만

설명하면 아래와 같다.



첫번째 인픗으로 일차 예측을 진행하고, 그 다음 인풋과 기존 인풋을 바탕으로 한 예측값을 조합하여 다시 재예측을 진행한다.

이런식으로 n번째 인풋값 전 n-1번까지의 인풋값을 통해 낸 예측결과는 n번째 인풋을 활용한 예측값에 영향을 주는 것이다.


해당 과정을 계속해서 진행하여 최종 아웃풋을 산출한다.


*딥러닝 부분을 구현하는 것에 있어서 어려움이 있었기 때문에, 도움을 받았음을 알려드립니다.



우리는 예측 모델을 통해 raio(상승/하락 비율)을 예측했고, 그 예측 결과인 비율에 해당 시간의 close(종가)를 곱해주게 되면 예측 가격이 나오게 된다.

칼럼에 대해 설명하자면 2015-03-13 15:00을 기준으로 6시간 뒤는 2015년 3월 13일 21:00, 그 뒤는 14일 03:00 .. 이 되는 것이다.

따라서 칼럼에서 실제 24시간 뒤가 다음 칼럼에서 여섯시간 뒤와 동일한 것을 발견할 수 있다.


따라서 우리는 각 시간대별로 6시간, 12시간, 18시간, 24시간 예측값에 대한 오차율을 구할 수 있으며, 오차율의 절대값 평균은 아래와 같다.


즉 시간이 지날수록 오차율이 높아지는 것을 발견할 수 있다.

사실 일반적인 에측에서 정확도 98퍼센트면 매우 높다고 생각할수도 있으나 트레이딩의 특성상

1퍼센트~2퍼센트의 차이가 큰 돈의 이익과 손실을 불러올 수 있다는 점에서 부족할 수 있다는 생각 역시 든다.


 

특히나 급격한 하락장(패닉셀 등)이 발생할때는 예측치가 크게 어긋나는 모습을 보였는데, 물론 평균치로 보면 크게 문제가 없지만

순간 순간의 오차율이 큰 손실을 불러올 수 있다는 점에서 보완이 필요하다는 생각이 들었다.


 

+ Recent posts