딥러닝을 활용한 금융 시계열 분석 - 2

자료실
강의자료
#금융
작성자
인사이트캠퍼스
작성일
2020-05-25 15:26
조회
2710

딥러닝을 활용한 금융 시계열 분석 - 2

시계열 데이터는 관측 값들이 시간에 따라 변하는 자료를 말합니다.

시계열 자료는 일반적인 통계 이론이나 통계적 분석 방법으로는 다루기 어렵고, 시계열 분석 (Time Series Analysis) 방법을 사용합니다.

오늘은 지난 시간에 이어서 딥러닝을 활용한 금융 시계열 분석에 대해 간단하게 알아보도록 하겠습니다.


◎ 순환 신경망(Recurrent Neural Network)

순환 신경망(Recurrent Neural Network : RNN) 구조

입력층 -> 은닉층 -> 출력층으로 연결된 단방향 신경망은 Feed Forward Network(FNN)이라 합니다.

이전 스텝의 출력값이 다시 연결되는 신경망은 순환 신경망(RNN)이라 합니다. RNN은 시간적으로 순서를 갖는 입력값의 자기종속 구조를 분석할 수 있습니다.

● RNN은 시계열 데이터, 자연언어 처리 등에 이용할 수 있습니다.


RBB의 오류 역전파 (Backpropagation through time : BPTT)

● RNN은 FNN과 달리 각 스텝(t)마다 오류를 측정하여 이전 스텝으로 전파합니다. 이것을 BPTT라고 합니다.

● 각 스텝마다 출력값(Yt)과 실제 출력값(hatYt)으로 error(mean square error)를 측정할 수 있으므로, 이 error를 이용하여 Wx, Wk, Wy와 bias를 업데이트할 수 있습니다. Wx, Wk, Wy와 bias는 매 스텝별로 존재하는 것이 아니라 공통 파라미터입니다.

● BPTT는 (왼쪽으로) error가 멀리 전파될 때 계산량이 많아지고 전파되는 양이 점차 적어지는 문제점(Vanishing gradients)이 발생합니다.

● Vanishing gradients 문제를 보완하기 위해 error를 몇 스텝까지만 전파시키는 Truncated BPTT를 사용할 수도 있고, 근본적으로는 LSTM을 사용합니다.


순환 신경망 (Long Short-Term Memory : LSTM)

LSTM은 RNN의 vanishing gradients 문제를 해결하기 위해 고안되었습니다.

LSTM은 기존 RNN에 cell state (C)를 추가하여 먼 과거의 데이터를 얼마나 반영(기억)할 것인지 제어할 수 있습니다.

기존 RNN의 은닉층 뉴런을 LSTM block으로 대체하고, 각 LSTM block은 기존의 h에 C가 추가된 작은 network입니다.

아래 예시는 입력층 뉴런 2개, 은닉층(LSTM층) 1개에 2개 뉴런(Block), 출력층 뉴런 1개로 구성된 예시입니다.


순환 신경망의 학습 유형

● Classification 목적을 위해서는 many-to-one 유형을 사용할 수 있고, 시계열 분석은 many-to-one이나 many-to-many 유형을 사용할 수 있습니다.

● 참고로 이미지를 말로 설명하는 image captioning 기능은 one-to-many 유형으로 학습할 수 있고 (CNN으로 이미지를 인식하고 RNN으로 문장을 생성함), 자동 번역기(machine translation)는 many-to-many 유형으로 학습할 수 있습니다.


양방향 Many-to-One vs. Many-to-Many

양방향 LSTM은 forward LSTM과 backward LSTM이 결합된 구조입니다. Forward LSTM에는 입력 데이터가 앞에서부터 순차적으로 들어가고 (1, 2, 3, 4, 5 순), backward LSTM에는 반대로 들어갑니다 (5, 4, 3, 2, 1).


2층 단방향-양방향 Many-to-One

1층은 단방향 LSTM으로 구성했고, 2층으로 연결하기 위해서는 many-to-many 구조를 갖습니다.

2층은 양방향 LSTM으로 구성했다. 2층은 many-to-one 구조를 갖습니다.


단방향 Many-to-One vs. Many-to-Many

● 입력 x = [1, 2, 3, 4, 5]일 때, y = [6]이 나오도록 학습하려면 many-to-one이 유형이 적합합니다.

● 입력 x = [1, 2, 3, 4, 5]일 때, y = [2, 3, 4, 5, 6]이 나오도록 학습하려면 many-to-many 유형이 적합합니다.


◎ Convolutional Neural Network (CNN)

Convolutional Neural Network (CNN) 개요

CNN은 입력된 이미지를 여러 개의 Convolution-Pooling 층을 거쳐 이미지의 부분적인 특징(feature)을 추출합니다. 이 특징들은 다시 FNN으로 입력되어 최종 output이 출력됩니다. FNN은 목적에 따라 classification 역할을 할 수도 있고, regression이나 강화학습(reinforcement learning)네트워크 등으로 구성할 수 있습니다.


Cross-Correlation과 Convolution

Cross-Correlation과 Convolution의 개념은 신호처리(Signal processing) 분야에서 신호의 유사성 등을 측정하는 척도라고 합니다.

● 이미지/영상 처리 분야에도 동일한 개념을 사용하여 이미지의 유사성을 측정합니다.


CNN layer 구성 형태

Convolution, Pooling layer는 아래와 같이 다양하게 구성할 수 있습니다. 하나의 층으로 구성할 수도 있고, 여러 층으로 구성할 수도 있습니다.


1D-Convolution에 의한 시계열 데이터 예측

1D, 2D, 3D convolution은 filter가 이동하는 차원(dimension)을 의미합니다.


◎ 오토 인코더 (Autoencoder)

오토 인코더 개요

● 오토 인코더는 아래 그림과 같이 출력이 입력 데이터와 같아지도록 학습한 네트워크를 말합니다. 별도의 supervised learning용 label이나 출력값이 없으므로 unsupervised learning에 해당됩니다. (self-supervised learning이라고도 합니다.)

● 차원 축소, 잡음 제거, 이상 데이터 검출, 사전 학습(unsupervised pre-training) 등에 활용될 수 있습니다.



차원 축소 예시 : LSTM-Autoencoder를 이용한 차원 축소



사전 학습 예시 : Unsupervised pre-training



이상 데이터 탐지 (Anomaly detection) 예시 : 주가의 이상 데이터 탐지


◎ Generative Adversarial Nets (GAN)

GAN 개요

● GAN은 Discriminator N/W와 Generator N/W로 구성되어 있습니다. Generator는 랜덤 데이터(Noise)를 입력 받아 실제 데이터(Real Data)와 유사한 가짜 데이터(Fake Data)를 생성하고, Discriminator는 Real Data와 Fake Data를 구별합니다.

● Discriminator는 Real과 Fake data를 구별하도록 학습하고, Generator는 Discriminator가 구별하지 못하도록 실제 같은 가짜 데이터를 생성하도록 학습합니다.



GAN의 Loss Function



여러 개의 정규 분포 데이터 생성 예시



연관 관계를 갖는 두 주가 생성 예시 : GAN 학습


◎ Labeling

Supervised Learning과 Label

Supervised learning은 분석자가 학습 목표(Lable or Class)를 사전에 설정한 후 기계를 반복 학습 시키는 방식입니다.


Unsupervised Labeling 모형

● 학습 데이터의 시계열을 Unsupervised Learning으로 학습하여 대표 패턴으로 clustering합니다.

● 현재 시점부터 n-기간 이후의 시계열 패턴이 속하는 cluster 번호를Supervised Learning을 위한 Label로 설정합니다.

● 아래 예시에서 Label은 총 8개로 8개의 multi-classification 예측 문제가 됩니다.

● 이 방식은 Unsupervised learning과 Supervised learning이 혼용된 것으로 Hybrid-Learning이라 할 수 있습니다.


◎ 강화학습과 Deep Q-Network (DQN)

데이터 학습(기계 학습)의 유형 비교


Deep Q-Network (DQN)

● 아래 그림과 같이 입력층에 state 혹은 state-action을 입력하고 출력층에 Q-value가 출력되도록 인공신경망을 구축한 것을 DQN이라고 합니다.

● Agent는 각 상태에서 최적이라고 생각되는 action을 선택하고 다음 상태로 이동해가면서 reward를 받습니다.

● Agent가 경험한 state를 입력층에 입력하고 reward를 이용하여 weight을 업데이트합니다.

● Agent가 수많은 반복을 통해 여러 에피소드를 경험하면서 weight을 업데이트하면 Q-value는 최적 value에 수렴할 수 있습니다.


Supervised Learning(SL)과 Deep Q-Network (DQN) 비교

SL과 DQN의 기본적인 차이는 출력층의 오차 계산 방식에 있습니다. SL은 모든 학습 데이터에 대해 분석자가 일일이 출력층의 정상 출력값을 지정한 방식으로, 출력층의 오차MSE) 계산이 용이한 반면, DQN은 출력층의 정상 출력값을 모르는 상태에서 Agent가 스스로 학습하는 방식으로, 오차 계산이 용이하지 않습니다.



주가에 대한 강화학습 예시 : DQN을 이용한 최적 action 결정 예시


지금까지<딥러닝을 활용한 금융 시계열 분석>강의의 내용 중 일부였습니다.

딥러닝을 활용한 금융 시계열 분석에 관한 내용을 더 알고 싶으신 분들은 강의자료를 참고하시거나 강의를 통해 배울 수 있습니다.

마감 강의는 모집 예정입니다. 아래 링크에서 강의 개설 요청을 할 수 있고 할인 쿠폰을 받을 수 있습니다!

https://insightcampus.co.kr/requestcurriculum/

전체 0

전체 642
번호 제목 작성자 작성일 추천 조회
공지사항
비밀글 파이썬으로 배우는 블록체인 구조와 이론 (위키북스)
finweb | 2019.07.05 | 추천 0 | 조회 23
finweb 2019.07.05 0 23
580
이상거래(Fraud) 탐지, 위험성 평가 등을 지원하는 핀테크 AI
인사이트캠퍼스 | 2020.09.07 | 추천 0 | 조회 509
인사이트캠퍼스 2020.09.07 0 509
579
인공지능은 당신의 돈을 더 스마트하게 해준다
인사이트캠퍼스 | 2020.09.07 | 추천 0 | 조회 351
인사이트캠퍼스 2020.09.07 0 351
578
게임 산업에서의 AI의 미래에 대한 예측 5가지
인사이트캠퍼스 | 2020.08.27 | 추천 0 | 조회 1422
인사이트캠퍼스 2020.08.27 0 1422
577
"강의에서 배운 attention network를 감성 분석이나 주제 분석에 활용해 보고 싶어요" (현준욱님 인터뷰)
인사이트캠퍼스 | 2020.08.14 | 추천 0 | 조회 630
인사이트캠퍼스 2020.08.14 0 630
576
15개의 데이터셋을 사용한 머신러닝 및 데이터 사이언스 프로젝트 아이디어
인사이트캠퍼스 | 2020.08.13 | 추천 0 | 조회 12881
인사이트캠퍼스 2020.08.13 0 12881
575
핀테크 혁신을 위한 5가지 AI 기반 기술
인사이트캠퍼스 | 2020.08.06 | 추천 0 | 조회 983
인사이트캠퍼스 2020.08.06 0 983
574
파이썬으로 단계별 첫 머신러닝 프로젝트 시작하기
인사이트캠퍼스 | 2020.07.28 | 추천 0 | 조회 2190
인사이트캠퍼스 2020.07.28 0 2190
573
25분 내에 알고리즘 트레이딩 코딩하기
인사이트캠퍼스 | 2020.07.22 | 추천 0 | 조회 1479
인사이트캠퍼스 2020.07.22 0 1479
572
시장의 미시구조와 마이크로 트레이딩 - 2
인사이트캠퍼스 | 2020.06.18 | 추천 0 | 조회 1111
인사이트캠퍼스 2020.06.18 0 1111
571
시장의 미시구조와 마이크로 트레이딩 - 1
인사이트캠퍼스 | 2020.06.15 | 추천 0 | 조회 1173
인사이트캠퍼스 2020.06.15 0 1173
570
딥러닝을 활용한 금융 시계열 분석 - 2
인사이트캠퍼스 | 2020.05.25 | 추천 0 | 조회 2710
인사이트캠퍼스 2020.05.25 0 2710
569
퀀텀 컴퓨팅의 실용화 방안
인사이트캠퍼스 | 2020.05.18 | 추천 0 | 조회 839
인사이트캠퍼스 2020.05.18 0 839
568
딥러닝을 활용한 금융 시계열 분석 - 1
인사이트캠퍼스 | 2020.05.18 | 추천 0 | 조회 2120
인사이트캠퍼스 2020.05.18 0 2120
567
동적 자산 배분과 유니버셜 포트폴리오
인사이트캠퍼스 | 2020.05.14 | 추천 0 | 조회 1269
인사이트캠퍼스 2020.05.14 0 1269
566
2020년 최고의 인공지능 및 머신러닝 소프트웨어 및 프레임워크 Top 20
인사이트캠퍼스 | 2020.05.13 | 추천 0 | 조회 5608
인사이트캠퍼스 2020.05.13 0 5608
565
자주 묻는 머신러닝 인터뷰 질문 및 답변 50선
인사이트캠퍼스 | 2020.05.11 | 추천 0 | 조회 11795
인사이트캠퍼스 2020.05.11 0 11795
564
좋은 vs 나쁜 액티브 펀드 관리 : 3 가지 지표
인사이트캠퍼스 | 2020.05.06 | 추천 0 | 조회 632
인사이트캠퍼스 2020.05.06 0 632
563
그녀는 돈의 보스: 여성 온라인 투자의 4대 트렌드
인사이트캠퍼스 | 2020.05.06 | 추천 0 | 조회 666
인사이트캠퍼스 2020.05.06 0 666
562
변동성 측정의 이해
인사이트캠퍼스 | 2020.05.06 | 추천 0 | 조회 1085
인사이트캠퍼스 2020.05.06 0 1085
561
새로운 재료를 찾는 데 있어 최적화를 촉진하는 신경망
인사이트캠퍼스 | 2020.04.29 | 추천 0 | 조회 712
인사이트캠퍼스 2020.04.29 0 712