Time Series Prediction을 위한 Deep learning

 

이번 글에서는 주가 예측의 기본 개념인 time series prediction 을 딥러닝 기술로 구현하는 방법에 대해 알아보도록 하겠다.

 

 

위 그림은 구글 이미지 검색에서 time series prediction 으로 검색을 해서 찾아낸 그림 중 하나인데, 오늘 설명할 deep learning을 이용한 time series prediction의 개념을 쉽게 도식화 한 것이다.

time series 데이터란 시간 축에 따라 변하는 데이터를 (시간,값)의 형태로 쭉 기록한 데이터를 말하는데 주가 데이터, 뇌파 데이터, 기온 데이터 등이 이에 해당한다. 주가 데이터라면 x 축이 시간(월, 일, 주, 시, 초 등)이고 y 축이 주가 데이터(주가, 거래량, 변동률 등등)이 되겠다. 

time series prediction의 가장 대표적인 알로리즘은 일정 기간의 데이터를 관찰하고 바로 다음 순간의 값을 예측하는 것이다. 

 

 

<to be continued...>  

posted by Dr.Deeeep

나만의 로보 어드바이저(robo-advisor) 만들기 [1]

상념 2016. 8. 30. 15:06

로보 어드바이저란? 

 

 

 

 

 

새로운 용어는 아니지만 요즘 뜨고 있는 로보 어드바이저 (robo-advisor)라는 기술. 쉽게 말해 인공지능 기술을 이용하여 자신이 원하는 알고리즘으로 컴퓨터가 주식 거래를 자동으로 수행하도록 하는 기술이다. 물론 이것은 내 나름의 좁은 해석이고 원래는 더 넓고 좋은 의미가 있을것이다. 그런 글은 위키페디아를 참조.

 

빅데이터, 딥러닝, 머신러닝 등등 신조어를 만들기 좋아하는 요즘시대에 로보 어드바이저는 인공지능과 금융이라는 인간의 흥미와 욕망에 부합하여 차세대 대세어로 부족함이 없다. 

 

나는 로보 어드바이저라는 말은 처음 들어본것이 한달 정도 된 듯하다. 처음에는 무슨 신조어인가 했지만 뜻을 알고 나서는.. 흠. 이런 기술은 이미 금융 공학을 공부하거나 데이터 분석을 하는 사람들에게는 오래전부터 있었던 개념이다. 단지 "인공지능"과 "빅데이터"와 같이 현시대 최첨단을 걷는 기술들이 결합되면서 그동안의 데이터 분석에만 집중하던 금융기술이 이제 분석과 기계학습을 이용한 좀더 지능적인 의미로 떠오른 것이다. 

 

로보 어드바이저라는 개념이 원래는 더 넓은 개념의 더 좋은 뜻도 많이 있겠지만, 좁은 의미인 "빅데이터에 기반한 인공 지능 트레이딩 로봇"을 만드는 방법에 대해 연재해보도록 하겠다. 나는 이러한 로봇은 이미 수년전에 개발하여 사용하고 있다. 한때는 실전에 적용하여 트레이딩을 해보기도 했지만 튜닝없이 바로 운영을 하려니 성공률이 낮아 현재는 일단 시뮬레이션만 수행하며 실제 거래는 로봇이 만드는 리포트를 보고 수동으로 수행하고 있다.

 

나만의 로보어드바이저의 개발에 필요한 준비물을 알아보자.

 

Python 

자바

VC++ 6.0 이상

CybosPlus (대신증권계좌필요)

MySQL

 

 

 

CybosPlus 는 대신증권에서 제공하는 개발자를 위한 트레이딩용 API로 자바, python, c++ 등에서 사용할 수 있다. 빠르게는 초당 10회 정도 트레이딩을 할 수 있다. 무엇보다도 실시간 가격을 가져온다든가 처음 수년간의 데이터(빅데이터)를 구축하기 위해 필요하다.

 

일단 여기 까지...

 

 

 

posted by Dr.Deeeep

ECCB 2016 app

상념 2016. 8. 28. 12:09

 
 
다음주에 출장갈 ECCB 2016 학회의 스맛폰 앱.
 
학회 앱이 이런식으로 출시되는 것은 처음보는데 상당히 혁신적인 아이디어이다. 다른때 같으면 출장 준비로 학회 프로그램이나 학회 정보등 출력해 놓느라 분주할때인데 이번에는 그럴필요가 없다. 앱으로 모든 정보를 찾을 수 있으니 편리하다.
 
좀더 생각해 보니, 이런 학회 앱을 더 발전 시켜서 앱에서 학회 등록도 하고 (in app purchase 방식으로 등록비 지불), 논문이나 키노트 자료등도 받고 프로시딩도 팔고, 참가자간 서로 챗도 할 수 있게 하면 더 좋을 듯. 숙소나 교통 예약도 하고.
 
암튼. 이 학회에서 발표할 딥러닝 실험을 해야 하는데...
뇌파 데이터에서 생성한 뇌파 이미지들을 딥러닝(cNN)으로 학습을 해서 분류 능력을 테스트 하는 실험이다. computationgraph를 써서 아키텍춰를 좀더 복잡하고 LSTM와 DBN을 합해서 Bashivan et. al. 2016 같은 그럴듯한 모델을 시도해 볼 수도 있지만 이번 학회는 좀 급하게 준비하느라 그냥 cNN으로 가기로 했다. 문제는, DL4J에 당연히 그 흔한 이미지 클레시피케이션 예제가 있을거라고 생각하고 느긋이 딴 일 하고 있었는데.. 오늘 찾아 보니 없다. 어딜 봐도 제대로 된 자바 소스가 없는 거다. ㅠㅠ
 
할 수 없이 지금 이 나이에 황금같은 주말에 쌩으로 코딩을하고 있다. 아토피 걸린 Yona를 옆에서 재우고 긁나 안긁나 감시하면서.
하지만 지금 무엇보다 힘든 건 코어 2개뿐인 열악한 뉴맥북에서 인텔리제이로 이미지 처리 관련 코딩을 해야 한다는 거다...
 
 

posted by Dr.Deeeep

도메인을 하나 더 구입했는데..

상념 2016. 8. 24. 09:31

 

고데디에서 도메인을 하다 더 구입했는데..

바로

"deep-trader.com".

이로써 bigdata-trader.com, deep-trader.com 두개를 운영하게 되었다.

 

bigdata-trader에서는 전통적 방식의 알고리즘을 테스트 하는 것으로 하고, deep-trader에서는 딥러닝 모델들을 테스트 하는 것으로 하겠다.

 

 

posted by Dr.Deeeep

동영상의 vectorizing은 어떻게 해야하나?

상념 2016. 8. 24. 02:30

치매 예측 딥러닝을 위한 뇌파 데이터의 분류는 생각의 꼬리를 이어 이어..

Time Series 뇌파 -> 2D image data -> serial images(frames) -> video 로 이어졌고.

결국 

problem of dementia prediction은 video understanding의 문제로 전환.

이제 뇌파 이미지를 동영상 변환 하는데까지는 어떻게 된거 같은데. 그렇다면 이제 동영상은 어떻게 vectorize 해야하는 걸까? canova javadoc에는 안나온다.

 

개별 프레임을 이미지로 추출하여... 그냥 나열한 후 vector 화? 이렇게 되면 전극간 spatial 정보를 학습하겠다던 애초 가설이 충족되지 않는다. 

 

구글링이 필요함.

posted by Dr.Deeeep

세부과제 2
Deep learning for Early Detection of Dementia
and a pilot study

운영회의

20160524_치매조기예측_딥러닝_김선호.pdf
다운로드

 

2016.05.24

 

 

 

 

목차

인공지능(기계학습)을 이용한 질병 진단

Why Deep Learning?

기존 기계학습

Deep Learning

Deep Learning을 이용한 EEG 분석 Pilot Study

 

 

Why Deep Learning (Neural Network)?
Integrated Learning

 

 

기존 데이터 분석을 통한 질병 진단

기존 기계학습을 이용한 학습

기존 기계학습을 이용한 진단

딥러닝을 이용한 진단

 

 

딥러닝을 이용한 학습

사람의 인지 과정과 유사

추상화: 저수준표현è고수준 표현

 

 

 

기존 기계학습 기법 대비 Deep Learning 장점

자동화된 Feature selection

학습 데이터 제작 비용 ↓ 시간 ↓

대용량 원시 데이터 학습 (sensor, raw,…)

월등한 성능!!

 

 

 

현재 딥러닝 기술 수준

Playing Game

Object Recognition

Semantic Segmentation

Image Completion

Hand Writing by Machine

Music Composition

Image Caption Generation

Visual Question Answering

Word Analogy

Neural Machine Translation

 

Playing Game

Object Recognition

Semantic Segmentation

Image Completion

Hand Writing by Machine

Music Composition

Painting

Image Caption Generation

Visual Question Answering

Word Analogy

Neural Machine Translation

 

 

Deep Learning을 이용한 EEG 분석 Pilot Study

UCI EEG Data

Two groups: alcoholic and nc

122 subjects x about 120 trials (different stimuli); total 11057 cases

Each case:  64 electrodes x 256 hz

 

 

 

 

700mb

Stimulus: object S1, or S1 and S2 (matched or non-matched)

Electrode position: Zhang et al. 1995

 

 

Alcoholic EEG vs NC EEG

Pilot Study

Pilot Study

Deep Belief Network을 이용한 EEG 데이터 학습

EEG 최대값 465.63, 최소값 -158.96, 평균 -1.86

대부분 -30~+100에 집중

Z-score normalization

 

 

 

 

 

 

 

 

 

 

Pilot Study

전체 데이터의 90% 학습, 10%는 평가에 이용 10 fold cross-validation

 

 

실험결과

Accuracy(=(TP+TN)/(P+N)): 0.77

Precision(=TP/(TP+FP)): 0.78

Sensitivity(=Recall=TP/(TP+FN)): 0.78

F1 score(=2TP/(2TP+FP+FN)): 0.78

 

 

 

 

 

 

 

 

 

 

Further Study

Further study

뇌파 패턴 분석

Normalization 최적화 (z-score, linear min-max, 3depth linear, Bezier,...)

Activation function 최적화

 

 

                                                      

Network type 최적화

DBN, CNN, RNN, LSTM, RBM, DeepQ,..

 

 

 

 

Question? Comment?

posted by Dr.Deeeep

새로운 블로그 시작과 블로그의 성격

상념 2015. 8. 10. 03:06

티스토리 블로그에 계정을 만든지는 몇달 되었지만 이제 처음 글을 쓰게 된다. 이곳에는 나의 연구내용을 기록하기로 한다.

최근 나의 연구 관심은 타임시리즈 데이터의 단기간 미래 예측에 대한 것이다. 이러한 연구는 금융분야 특히 시스템 트레이딩 분야에서 유용하게 사용될 수 있을 것이다. 쉽게 말해 주가 예측에 대한 연구이다. 나는 기본적 분석을 철저히 지양하고 오로지 물결과 같이 파동치는 데이터의 성질만을 이용한 기술적 분석만으로 성공 확률 50프로 이상의 알고리즘을 발견하는 것이 가능하다고 믿고 있으며 부족하지만 내가 가진 모든 수학적 능력과 컴퓨터 프로그래밍 재능을 그러한 알고리즘의 개발에 헌신하고자 한다.

내가 기본적 분석을 지양하는 이유는 별게아니다. 그러한 방법이 틀렸거나 비효율적이기 때문이 아니다. 단지 그 분야에는 내가 관심있는 연구 내용이 없고 그 분야에서 내가 후손에게 컨트리뷰션할 것이 없기 때문이다. 기본분석이건 기술분석이건 각각 장단점이 있을것이라는데 이견은 없다. 

주가 예측에 있어 연구적 흥미 이외에 기술적 접근 방법이 맞다고 생각하는 이유, 즉 가까운 미래를 예측하는 알고리즘이 존재한다고 생각하는 이유,로 한가지 는

posted by Dr.Deeeep