반응형

SW 2011

인공지능 : RNN 문제 : Vanishing Gradient Problem

Vanishing Gradient Problem오늘은 RNN과 함께 존재하는 거대한 문제에 뛰어들겠습니다. 우선 수학 용어에 대해 너무 깊이 파고들지 않고 명확하게 설명될 것입니다. 그리고 더 중요한 것은 이 문제에 대한 해결책을 심층 학습 시리즈의 다음 기사에서 논의할 것입니다. 그렇다면, Vanishing Gradient Problem라고 하는 것은 무엇일까요? RNN 뒤에 있는 사람들Vanishing Gradient Problem는 1991년 처음 발견되었습니다. 천재 과학자이자 창립자 중 한 사람으로, 오늘날 RNN과 LSTM을 사용하는 방식에 큰 기여를 했습니다. 몬트리올 대학의 요수아 벵기오 교수입니다. 그는 또한 Vanishing Gradient Problem를 발견했지만 1994년에 썼습니..

SW/인공지능 2019.07.18

python : 머신러닝 기본 용어 정리

특징, 속성 (feature, attribute)특징이란 학습 모델로 정답을 도출하기 위해 고려할 데이터를 의미합니다. 의미 있는 특징이 많으면 그만큼 학습이 용이합니다. 일련의 특징을 특징 벡터라고도 합니다. 특징을 속성이라고도 부릅니다. 레이블, 클래스 (lable, class)레이블이란 특징 벡터를 머신러닝 모델에 통과 시켰을 때 도출되기를 기대하는 정답입니다. 클래스도 레이블과 같은 의미를 가집니다. 머신러닝 분야에서는 표준 용어가 정립되어 있지 않습니다. 주로 레이블이나 클래스라는 용어를 혼용합니다. 인스턴스, 사례, 샘플 (instance, example, sample)인스턴스란 학습 데이터에 포함된 하나의 특징벡터를 의미합니다. 지도학습의 경우 레이블이 부여된 특징 벡터가 될 것입니다. 같은..

SW/Python 2019.07.16

python : 기본 용어 정리

파이썬 프로그래밍 기본 용어 정리 패키지패키지는 관련 있는 모듈들의 묶음을 뜻합니다. 폴더의 형태로 존재합니다. 모듈모듈을 관련 있는 클래스, 함수, 변수 등을 포함하는 묶음입니다. 파이썬 파일 형태로 존재합니다. 함수함수는 특정 기능을 수행하는 코드 묶음으로 파라미터를 입력받습니다. 그리고 특정한 처리를 합니다. 마지막으로 결과를 반환합니다. 파이썬에서는 def 키워드로 함수를 정의합니다. 파라미터파라미터는 함수에 주어지는 입력입니다. 파이썬에서는 튜플 형식의 입력이 있습니다. 또, 키워드 형식의 입력을 지원합니다. 튜플 형식은 순서를 맞춰서 전달합니다. 키워드 형식은 키워드로 전달하는 입력입니다. 튜플 형식의 파라미터의 경우 꼭 전달해야 합니다. 키워드 형식의 파라미터의 경우 기본값이 존재합니다. 따..

SW/Python 2019.07.15

주가, 비트코인 예측 : 머신러닝 모델 : 구현, 개발, 코드, 방법

머신러닝 모델 구현 파이썬과 Scikit-learn 라이브러리를 이용해 주가방향을 예측할 수 있는 간단한 주가 방향 예측변수를 구현합니다. 핵심 아이디어는 전날의 종가 또는 거래량 데이터를 이용해 다음날의 주가 방향을 예측하는 것입니다. 사용자는 입력 변수로 종가나 거래량 중 하나를 사용할 수 있습니다. 또는 2개를 모두 사용할 수 있습니다. 또한, 하루 전의 데이터를 기준으로 예측할지, 며칠 전의 데이터를 기준으로 예측할지 선택할 수 있습니다. 데이터셋하나의 데이터 셋을 만들고, 만들어진 데이터 셋을 일정 비율로 나누어 학습과 테스트에 사용합니다. 학습용 데이터셋은 주가방향 예측변수를 학습시키기 위해 사용하는 것으로, 이 데이터를 이용해 각 주가방향 예측변수 모델을 완성합니다. 테스트용 데이터셋은 학습..

SW/주가 예측 2019.07.10

주가. 비트코인 예측 : 머신러닝 기반 알고리즘 트레이딩 시스템 : 후기, 느낀점

알고리즘 트레이딩을 개발하기 위해서 다양한 분야의 지식이 필요합니다. 머신 러닝을 이용한 알고리즘 트레이딩 시스템 개발 이라는 책을 활용해 핵심 개념과 코드를 공부해보았습니다. 머신러닝이라는 하나의 주제만으로도 많은 분량이 나올 수 있다는 것을 알았습니다. 또한, 알고리즘 트레이딩 역시 마찬가지입니다. 머신 러닝이 잘할 수 있는 일과 그 한계가 있다고 생각하였습니다. 하지만 생각보다 훨씬 더 다양한 문제에 머신러닝을 적용할 수 있다는 것을 알게 되었습니다. 또한, 기술 수준이 많이 발전했다는 것을 알게 되었습니다. 소프트웨어가 기능 중심으로 꾸준히 발전해왔습니다. 하지만 이제 소프트웨어는 지능 중심으로 눈부신 발전을 할 것입니다. 이제는 지능이라는 큰 목표가 확고히 세워졌습니다. 다시 과거로 회귀하기는 ..

SW/주가 예측 2019.07.09

주가 비트코인 예측 : 블랙스완 : 개념, 특징, 중요성

블랙 스완은 나심 니콜라스 탈레브가 제시한 이론입니다. 있을 수 없는 일이라고 생각한 일이 실제로 발생했습니다. 예측하기 힘든 큰 충격이 발생한다는 내용입니다. 블랙 스완 이론은 서브프라임 사태와 같은 금융 위기를 설명할 수 있습니다. 알고리즘 트레이딩에서도 블랙 스완 이론은 해당됩니다. 바로 변동성과 확률성이 있습니다. 상승과 하락 같은 주가의 방향이든 주가 자체이든 간에 무엇인가를 예측하고, 그결과에 따라 매수 매도를 합니다. 알고리즘 트레이딩에서 특히 머신러닝 모델을 이용한 예측이라는 것은 어떤 일이 미래에 일어날 확률을 의미합니다. 알고리즘 트레이딩 시스템에서 거래라는 것은 미래에 대한 예측을 바탕으로 100% 확실한 것은 아닙니다. 즉, 거래에 대한 위험과 보상이 공존하는 상황에서 결정해야 합니..

SW/주가 예측 2019.07.09

주식, 비트코인 예측 : 파라미터 최적화 : 개념, 특성, 중요성

파라미터 최적화는 알파 모델에서 필요한 파라미터들을 가장 좋은 성능을 낼 수 있도록 최적화하는 것입니다. 파라미터 최적화는 알고리즘 트레이딩 시스템의 성능에 결정적인 영향을 미칩니다. 아무리 좋은 모델을 개발했더라도, 적절한 파라미터가 설정되지 않으면 결코 좋은 결과를 기대할 수 없습니다. 동일한 모델이라도 파라미터에 따라 매우 다른 수익의 양상을 보여줍니다. 알고리즘 트레이딩 시스템의 성능 역시 이 파라미터를 어떻게 최적의 값으로 채워 넣느냐에 따라 알고리즘 트레이딩 시스템의 설계 및 수준에서 차이가 나게 됩니다. 최근 알고리즘 트레이딩 시스템은 그때 그때 시장 상황에 맞는 빠른 대처가 중요해지고 있습니다. 빨리 시장 변화에 대처하려면 복잡한 모델은 적합하지 않으므로 단순하고 이해하기 쉬운 모델의 사용..

SW/주가 예측 2019.07.08

주가, 비트코인 예측 : 하이퍼파라미터 최적화 : 개념, 특징, 방법

하이퍼파라미터 최적화 머신러닝 모델 파라미터의 최적화를 보통 하이퍼 파라미터 최적화라고 합니다. 모델 파라미터 최적화와 하이퍼 파라미터 최적화로 크게 2가지 종류가 있습니다. 하이퍼 파라미터에서 설정한 값에 따라 모델 파라미터를 최적화합니다. 따라서 하이퍼파라미터 최적화는 머신러닝 모델의 성능에 큰 영향을 미치게 됩니다. 모델 파라미터 최적화는 하이퍼 파라미터로 설정된 범위 내에서만 최적화를 시도하기 때문에 올바르게 설정되지 않은 하이퍼 파라미터에서는 좋은 성능을 보여주기 힘듭니다. 따라서, 모델 파라미터 최적화보다 중요한 것은 하이퍼파라미터 최적화라고 할 수 있습니다. 하이퍼 파라미터 최적화에는 크게 2가지 종류가 있습니다. 바로 격자 탐색과 랜덤 탐색의 개념입니다. 격자 탐색주어진 범위 내의 모든 값..

SW/주가 예측 2019.07.08

주가, 암호화폐 예측 : 라이브 트레이딩 모니터링 : 개념, 방법

라이브 트레이닝 모니터링실시간으로 알고리즘 트레이딩 시스템의 매수 매도를 모니터링 하는 것입니다. 시스템 운영에서 빠질 수없는 중요한 기능입니다. 시스템의 성능과 특성을 철저하게 파악해 선별한 시스템이 있습니다. 하지만 이 시스템이 수익을 안겨 줄지, 손실을 줄지는 아무도 모릅니다. 이제는 누구나 전 세계 금융 정보를 수집할 수 있습니다. 인터넷으로 접속해 해외 주식을 사고 팔 수 있는 시대가 된 것입니다. 기술의 발달로 전 세계 금융 시장에 대한 접근이 가능해졌습니다. 하지만, 그만큼 변동성은 심화되었습니다. 우리나라가 아닌 다른 나라에서 발생한 사건 하나가 국내 주식시장의 폭락을 가져올 수 있습니다. 반대로 급상승을 가져올 수 있습니다. 국내 회사의 성장성을 예측하는 부분에 있어, 해외 경제 상황을 ..

SW/주가 예측 2019.07.07

주식, 비트코인 예측 : 머신 러닝 알고리즘 성능 측정 : 방법, 분석, 특징

머신 러닝 모델 성능 측정머신 러닝 모델의 성능을 측정하는 방법은 문제의 성격에 따라 달라집니다. 머신러닝 모델은 주가의 방향을 예측하는 분류자입니다. 상승과 하락 중 어느 쪽을 잘 맞추는 지 정확도와 재현율은 얼마나 되는지 알 수 있습니다. 그렇다면, 모델이나 전략을 수정해 더 높은 수익률을 기대할 수 있기 때문입니다. 또한, 앞서 포스팅한 모델들은 각 머신러닝 알고리즘에 별도의 파라미터를 지정하지 않고 기본값을 사용했습니다. 그러나 더 좋은 성능을 올리기 휘해서는 적절한 파라미터를 설정해줘야 합니다. 혼동 행렬혼동 행렬은 항목별 분류 결과를 테이블 형태로 표혀한 것입니다. 분할표라고도 합니다. 혼동 행렬은 예측 정확도만으로 알 수 없는 머신러닝 모델의 예측 특성과 데이터 편향 등의 추가적인 정보를 알..

SW/주가 예측 2019.07.06

주식, 비트코인 예측 : 백테스팅 : 방법, 특징, 종류

백테스팅특정 기간의 과거 데이터로 알고리즘 트레이딩 시스템의 성능을 평가하는 것을 백테스팅이라 합니다. 백테스팅은 알고리즘 시스템을 파악하기 위해 시행하는 것으로 매우 중요한 부분입니다. 백테스팅은 다양한 종류와 방법이 있습니다. 대표적인 방법에 대해 알아보겠습니다. Profit/Loss개발한 시스템에 특정 기간의 데이터를 입력해 트레이딩을 실시합니다. 그 때, 발생하는 이익과 손실을 평가합니다. Hit RatioHit Ratio는 모델을 이용해, 예측한 결과의 정확도를 의미합니다. 모델에 따라 의미가 다를 수 있습니다. Hit Ratio는 과거 데이터를 이용합니다. 그러므로, 특히 머신러닝 모델의 경우 학습에 사용했던 데이터와 테스트에 사용한 데이터가 중복되지 않도록 합니다. def getHitRati..

SW/주가 예측 2019.07.05

주식, 비트코인 예측 : 성능 측정 : 방법, 분석, 특징

알고리즘 트레이딩 시스템의 성능 측정뛰어난 모델도 적절한 성능 측정없이는 결코 알고리즘 트레이딩에 사용할 수 없습니다. 과연 어떻게 성능을 측정하는 것이 알고리즘 트레이딩 시스템의 성능을 적절히 측정하는 것인지는 아무도 명확하게 이야기 할 수 없습니다. 과거 데이터 만을 사용해 평가한 결과가 좋다면 테스트한 알고리즘 트레이딩 시스템은 미래에 높은 수익을 가져온다고 할 수 없습니다. 반대로 평가 결과가 좋지 않다 하더라도, 미래에 손실을 초래할 것이라고 할 수도 없습니다. 과연 성능 평가는 어떠한 식으로 해야할까요? 구현 시스템의 수익성 평가가장 기본적인 것입니다. 어느 정도 수익률을 기록할 수 있을 지 알아보아야 합니다. 구현 모델별 비교시스템에 적용된 모델별 수익성 비교와 특성을 파악하기 위함입니다. ..

SW/주가 예측 2019.07.05

주식, 비트코인 예측 : 시간 가치 감소 효과 : 개념, 원인, 이유, 상황

시간 가치 감소 효과 최근 알고리즘 트레이딩의 추세는 복잡한 고도의 수학적 모델보다는 비교적 단순한 모델을 많이 사용하고 있습니다. 왜 그럴까요? 바로 시간가치 감소 효과 때문입니다. 전 세계 누구도 하나의 알파 모델로 오랫동안 지속해서 수익을 낼 수 없습니다. 알파 모델을 만들어 일정 시간 동안 수익을 내기 시작합니다. 하지만, 수익성은 서서히 떨어집니다. 이처럼 시간이 지날 수록 처음에 가졌던 우위가 떨어져가는 것을 시간가치 감소효과라고 합니다. 시간 가치 감소효과는 왜 발생하게 되는 것일까요?그 이유는 알고리즘 트레이딩의 범람이라고 할 수 있습니다. 많은 사람들이 알고리즘 트레이딩을 통해 거래를 하고 있습니다. 이들이 사용하는 알고리즘 트레이딩은 그렇게 다양하지 않습니다. 수학적 이론과 모델들을 사..

SW/주가 예측 2019.07.04

주식, 비트코인 예측 : 머신러닝 분류 모델 : 개념, 종류, 특징

분류 모델분류는 회귀와 마찬가지로 입력 변수간의 상관 관계를 분석해 예측합니다. 결과값이 연속이 아닌 이산 값을 가진다는 것이 차이점입니다. 이에 따라 회귀와는 다른 방식으로 예측합니다. 분류에 사용되는 대표적인 알고리즘에 대해 알아보겠습니다. 로지스틱 회귀로지스틱 회귀는 이산변수 간의 상관관계를 나타내는 모델입니다. 0 또는 1의 이분형 결과를 가집니다. 로지스틱 회귀는 조건부 확률로부터 출발합니다. 입력 변수 값에 따른 출력 변수의 조건부 분포를 만듭니다. 그리고, 아웃풋은 정확도에 대한 확률로 생각할 수 있습니다. 그래프에서 알 수 있듯이, 아웃풋은 0부터 1사이입니다. 따라서 로지스틱 회귀에 필요한 함수는 확률 함수입니다. 그러므로 로지스틱 함수를 아웃풋 함수로 사용하면 값이 0부터 1사이에 위치..

SW/주가 예측 2019.07.04

주식, 비트코인 예측 : 머신러닝 모델 : 개념, 종류, 특징

머신러닝 모델머신 러닝 모델은 평균회귀 모델과 다르게 데이터로부터 시작합니다. 머신러닝은 데이터를 통해 무엇인가를 찾아야 합니다. 어느 경우에는 목표가 무엇인지 모르는 상태에서 진행해야 합니다. 그렇다면 어떻게 시작해야 할지 모호한 경우도 많습니다. 머신 러닝에 대한 잘못된 이해는 데이터만 넣어주면 알아서 산출물을 만들어줄 것이라는 믿음입니다. 어떤 데이터를 머신러닝에 제공하느냐에 따라 머신러닝의 결과는 매우 달라집니다. 머신 러닝에 사용할 데이터를 준비하는 것은 사용자가 직접 개입하는 분야입니다. 입력변수를 선택하고 이상치를 배제하고 빠진 데이터를 채워넣고 가공할 수 있기 떄문입니다. 머신러닝 모델을 만들 때 원시 데이터를 수집 한 후, 입력 데이터들을 살펴보아야 합니다. 적절한 입력 변수를 선택하면 ..

SW/주가 예측 2019.07.03

주식, 비트코인 예측 : 평균회귀 모델 : 구현 방법, 핵심 개념, 슈도코드

평균회귀 모델 구현 ADF 테스트, 허스트 지수, Half-life를 모두 통과한 종목을 찾으셨나요? 그렇다면 이제 평균 회귀 모델을 구현할 기본 조건은 충족한 것입니다. 평균회귀 모델의 핵심 개념은 무엇일까요? 바로 주가가 평균보다 낮으면 주식을 매입하고, 반대로 평균보다 높으면 주식을 매도해 수익을 만드는 것입니다. 평균 회귀 모델을 구현을 위해 필요한 3가지 사항 평균 정의 : 주가 매도, 매수의 비교치로 사용될 편균을 어떻게 구할 것인지 정의해야 합니다. 과거 특정 기간의 주가로 구할 수 있습니다. 또 이동 평균을 이용해 계산할 수 있습니다. 또 이동평균의 기간을 몇 일 단위로 할지도 결정해야 합니다. 이러한 평균은 매도, 매수를 알려주는 일종의 신호 역할을 하게 됩니다. 매도, 매수 기준 : 평..

SW/주가 예측 2019.07.03

주식, 비트코인 예측 : 평균회귀 모델 : 개념, 종류, 예제

평균회귀 모델 이 모델의 기본 가정 - 시계열 데이터는 과거의 평균값으로 회귀하려는 경향이 있습니다.- 어떤 변수가 정규 분포를 따른다고 가정합니다. 이러한 경우, 평균에 가까이 갈 확률이 높고, 반대로 멀어질수록, 확률이 낮아진다고 할 수 있습니다. 주가로 생각해보겠습니다. 만약 평균 주가보다 낮으면 다시 올라올 것이고, 평균 주가보다 높으면 다시 내려올 것이라고 가정하는 것이 평균회귀 모델의 특징입니다. 이러한 평균회귀 모델은 이해하기 쉬우며, 우리 주변에서도 어렵지 않게 활용하는 경우를 볼 수 있습니다. 하지만 실제 주가에 적용하기에는 주가 데이터는 랜덤워크로 무작위로 움직이는 경향이 있습니다. 따라서 단순하게 평균회귀 모델을 적용하기에는 큰 어려움이 있습니다. 평균 회귀 테스트평균 회귀 모델을 적..

SW/주가 예측 2019.07.02

주식, 비트코인 예측 : 알고리즘 트레이딩 : 모델 : 개념, 종류, 방식

알고리즘 트레이딩 모델 알고리즘 토이딩 모델은 주식의 가치를 평가합니다. 평가에 따라, 매수, 매도, 보유를 결정합니다. 그러므로 위험관리, 거래비용 관리, 포트폴리오 구성, 검증 등 알고리즘 트레이딩 시스템의 영역 중에서 주요한 위치를 차지하고 있습니다. 사실상 위험 관리, 포트폴리오 구성은 모델을 기반으로 전략을 형성합니다. 따라서, 알고리즘 트레이딩의 틀을 만드는 역할을 한다고 할 수 있습니다. 알고리즘 트레이딩에 사용되는 모델은 무엇이 있을까요?평균회귀, 일간 모멘텀, 추세추종, 인덱스 펀든 재분배 등 매우 다양하게 있습니다. 그리고 끊임없이 새로운 모델들이 개발되고 있습니다. 월등한 수익을 창출하는 모델을 보통 알파모델이라고 합니다. 시장 평균이나 비슷한 정도를 베타 모델이라고 합니다. 따라서 ..

SW/주가 예측 2019.07.02

주식, 비트 코인 예측 : 알고리즘 트레이딩 시스템 : 개념, 분석

알고리즘 트레이딩은 무엇일까요? 알고리즘 트레이딩은 수학적 계산과 IT 시스템을 활용해 금융 상품을 거래하는 것을 뜻합니다. 많은 금융회사에서 사용하고 있습니다. 심지어 개인들도 IT와 수학 지식을 활용해 사용하고 있습니다. 이제 미국의 경우 거래의 85%가 알고리즘 트레이딩에 의한 것이라는 통계가 있습니다. 그만큼 알고리즘 트레이딩의 사용은 빠르게 증가하였습니다. 새로운 이익 창출과 비용절감, 인건비를 줄이기 위해 IT 기술을 적극적으로 활용하고 있습니다. 그 중 대표가 바로 알고리즘 트레이딩입니다. 그 효과는 이익을 30% 정도 증가시킨다고 합니다. 따라서 앞으로 알고리즘 트레이딩과 IT 기술들은 더욱 확고한 입지를 다질 것이라 생각합니다. 수학적 모델이 사람이랑 비슷하거나 사람보다 좋은 결과를 가져..

SW/주가 예측 2019.07.01

시계열 데이터 : 자기상관, 상관도표 : 개념, 예제, 그리기

자기공분산공분산을 지난 포스팅에서 알아보았습니다. 공분산은 동일한 시간에서 2개 변수의 상관관계를 분석하는 것입니다. 그렇다면 자기 공분산은 무엇일까요? 자기공분산은 서로 다른 2개의 시간에 대한 변수 값의 공분산을 계산합니다. 자기 공분산 함수는 왜 구하는 것일까요? 자기공분산 함수는 시간에 따른 값들의 상관 관계가 어떻게 되는지 파악할 수 있습니다. 현재의 상관 관계가 증가 추세인지, 하향추세인지, 중립 상태인지 알 수 있습니다. 또한, 상관관계의 변화 폭이 얼마나 되는지도 알 수 있습니다. 따라서 자기공분산 함수는 시계열 데이터의 추세와 크기를 파악하는 데에 용이하게 활용할 수 있습니다. 자기상관상관은 지난 포스팅에서 알아 보았습니다. 자기상관은 무엇일까요? 자기상관은 시계열 변수의 시간에 따른 자..

SW/주가 예측 2019.07.01
반응형