트레이딩 학습 방법

마지막 업데이트: 2022년 7월 3일 | 0개 댓글
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 카카오스토리 공유하기
불완전한 MDP가 주어졌거나, MDP에 대한 정보가 전혀 없을 때, 직접 에피소드를 종료시점까지 몇 차례 진행해보고
에이전트와 환경의 상호작용으로부터 직접 샘플 (s, r) -> action -> (s', r') 들을 수집하여 전이확률, 가치함수 등을 추정한뒤 이들을 토대로 최적의 정책을 찾아내는 방법.

머신러닝을 이용한 알고리즘 트레이딩 시스템 개발

현재 시중에 있는 머신러닝 관련 도서는 머신러닝이 무엇인지 소개하거나 머신러닝의 수학적 배경을 설명한다. 전자는 머신러닝 알고리즘에 대한 소개와 사용방법에 치중하여 머신러닝 사용법을 학습하는 데는 도움이 되지만, 머신러닝의 개념을 이해하고 무엇을 하기에는 내용이 부족하고, 후자는 반대로 너무 전문적이어서 머신러닝 알고리즘에 사용된 수학적 개념들과 각종 정리를 소개하는 데 치중해 있다. 머신러닝 알고리즘을 새로 개발하거나 기존 머신러닝 알고리즘을 개선해서 사용하려 한다면 이런 책들이 도움되지만, 머신러닝 알고리즘을 사용하려고 한다면 너무 학문적이고 이론적이어서 별로 도움이 되지 않는다.

『머신러닝을 이용한 알고리즘 트레이딩 시스템 개발』은 머신러닝을 공부하는 데 필요한 통계와 확률에 대한 수학적 이론과 머신러닝을 적용하려는 분야에 대한 도메인 지식(Domain Knowledge), 이를 구현한 코드를 한곳에서 볼 수 있는 책이다.

머신러닝을 이용해 프로그램을 작성하는 데 머신러닝 알고리즘이 차지하는 비중은 그렇게 크지 않다. 중요한 것은 데이터에 대한 이해와 특성을 파악하는 것이다. 이 과정은 통계와 확률에 대한 수학적 지식과 머신러닝을 적용하려는 분야에 대한 도메인 지식이 있으면 시간을 대폭 단축할 수 있고, 문제를 단순화할 수 있다. 이런 과정을 거쳐 적용한 머신러닝이야말로 좋은 결과를 보여준다.

머신러닝을 제대로 활용하기 위해서는 데이터가 더욱 중요한 이슈라고 얘기했듯이, 머신러닝을 이야기하는 데 적용 분야인 도메인을 정하지 않는 것은 반쪽짜리다. 그래서 이 책은 쉽게 데이터를 얻을 수 있으며, 데이터 자체에 대한 신뢰도가 높고 난도가 있는 주식을 선택했다.

주식시장은 예측이 어려운 대표적인 분야로, 머신러닝을 공부하는 데 필요한 모든 요소를 가지고 있다. 수학 이론을 이용한 예측 모델의 작성, 작성한 모델을 위한 데이터 처리, 주가를 예측하기 위한 학습, 학습결과의 해석과 이를 개선하는 방법 등 머신러닝 전체 흐름을 경험하기에 좋다. 통계, 시계열(Time Series), 알고리즘 트레이딩 등 책에서 다루는 주제는 각각 한 권의 책으로도 분량이 모자랄 만큼 방대한 내용을 가지고 있으나 이 책의 목적상 알고리즘 트레이딩과 직접 연관되고 반드시 알아야 하는 사항들을 중심으로 서술했다. 아울러 이 책은 프로그래밍을 할 수 있는 독자가 대상이므로 프로그래밍에 관련된 설명은 특별히 하지 않았다.

트레이딩 학습 방법

(오프라인 > 데이터 사이언스) 인공지능 시스템트레이딩 I: 강화학습기반 주식투자시스템, 2020/02/22 개강

개강 2020년 2월 22(토) 오후 1시 일정 2020년 2/22 - 3/28, 매주 토요일 오후1시~6시(5시간씩 6회) 장소 토즈 모임센터 서울대입구역점 (지하철2호선 서울대입구역4번출구, 도보1분) 강사 한창호, 콴트글로벌 대표 / 경제학박사 문의 [email protected], 02.761.8090 기타 실습을 위한 노트북 컴퓨터 지참 필

인공지능을 구현하는 방법은 매우 다양하지만 컴퓨터를 이용한 인공지능 구현 시에 핵심적인 기능을 담당하는 것이 머신러닝(Machine Learning)이다. 머신러닝에 의해 구현된 인공지능 시스템과 기존 자동화 시스템간의 가장 큰 차이점은 전자의 경우 데이터만 제공하면 학습을 통해 스스로 문제를 파악하여 해결하므로 시시각각 변하는 상황에 트레이딩 학습 방법 능동적으로 대처가 가능하지만 후자의 경우는 인간이 문제점을 파악하여 그 해결책을 상황별로 기계에게 지시한 것이므로 기계는 지시한대로만 작업을 수행할뿐 설계에 고려되지 못한 상황에 대해서는 대처불가능이다.

머신러닝 알고리듬은 크게 3가지로 분류된다. 지도 학습(supervised learning), 비지도학습(unsupervised ㅣlearning), 그리고 강화 학습(reinforcement learning)이 바로 그것이다.

강화학습 개념을 설명하기 위해 가장 많이 드는 예가 바둑이다. 바둑의 수는 전 우주에 존재하는 별보다 많아서 그 어떤 사부도 제자에게 이를 다 설명해주기가 불가능하다. 기본기를 배우고 나면 스스로 터득해나가는 과정을 거치게 된다. 일면 지도학습과 비지도학습이 혼합되어 있는 형태처럼 보인다. 강화학습의 본질은 주어진 환경에서 특정 행동을 했을 때 그것이 잘된 행동인지 잘못된 행동인지에 따라 보상을 줌으로써 스스로 시행착오를 해 가며 학습하게 한다는 것이다.

강화학습은 딥러닝 모형과 밀접한 관계를 가진다. 환경과 에이전트의 상태값 등을 입력값으로 딥러닝모형이 행동을 결정하고 보상이 있으면 입력값과 행동을 긍정적으로 학습하는 식이다.

딥러닝모형과 강화학습을 결합하면 인간의 지적 능력에 상당히 근접한 인공지능을 만들 수 있다.​ 알파고를 만든 핵심이 바로 딥러닝모형과 강화학습니다. 그런데, 알파고에게 주식투자를 시키면 얼마나 잘할까?

주식 고수가 되려면 상당한 시간동안 주식시장에서 시행 착오를 거치면서 이러한 초과수익 기회를 찾아내는 연습을 해야 한다. 인공지능 시스템은 이런 일을 하기에 사람에 비해 여러가지 장점을 지닌다.

첫째, 인공지능 시스템은 먹지도 자지도 않고 24시간 연속적으로 대용량의 데이터를 분석할 수 있다. 인간의 생리적 한계가 인공지능 시스템에는 적용되지 않으므로 주식 고수가 오랜 시간에 걸려 쌓은 내공을 단시간 내에 쌓을 수 있다.

둘째, 결정을 내리는 순간에 감정에 휘둘리지 않는다. 주식투자를 하다보면 팔아야되는 순간 또는 사야되는 순간에 망설이다가 기회를 놓친 경험들이 다들 있을 것이다. 팔아야 되는데 하한가라 시장이 회복되기를 기다리다가 연속 하한가를 맞게되거나 사야하는데 상한가라 조금 떨어지기를 기다리다가 연속적으로 상한가를 맞이한 경우가 누구에게나 있을 것이다. 그런데, 인공지능에게는 이런 망설임이 없다. 결정을 내리면 바로 실행을 한다.

현재 거래량 기준으로 보면 하루 트레이딩의 8할 정도가 인공지능에 의해 이루어지고 있다. 인공지능이 결정을 내리는 패턴은 인간의 그것과 사뭇 다르다. 혹시 알파고와 이세돌간의 대국을 보신 분들은 기억하실 것이다. 인간이 저런 수를 둔다면 밤새도록 사부에게 혼이 날 수를 알파고가 두었는데 나중에 보니 그것이 신의 한 수였다는 해설자의 말을 . 그렇다. 인공지능과 사람은 사고 방식이 다르다. 사고방식이 다른 인공지능이 지배하는 트레이딩 세계에서 인간의 사고방식으로 뛰어들면 그 결과가 어떻게 될지는 알파고 사례를 참고하면 충분히 이해가 될것이다.

이제는 누구나 기본적인 코딩 실력만 있으면 인공지능 시스템을 만들 수 있다. 웬만한 알고리듬은 거의 다 라이브러리로 만들어져 있으므로 잘 조합만 하면된다. 그 다음으로 인공지능 트레이딩 학습 방법 트레이딩 학습 방법 시스템을 목적에 맞게 훈련을 시켜야 하는데, 여기 에는 상당한 시행 착오를 거쳐야 한다. 주식 고수의 경험을 인공지능에게 이식시키면 단시간 내에 주식 고수를 만들어 낼 수 있고 더 나아가 그를 뛰어넘을 수 있다. 그러기 위해서는 우선 인공지능 시스템을 만들어야 한다. 현재까지 개발된 기술을 감안하면 딥러닝 모형과 강화학습을 사용하면 이런 목적에 가장 빠르게 접근할 수 있다.

(오프라인 > 데이터 사이언스) 인공지능 시스템트레이딩 I: 강화학습기반 주식투자시스템, 2020/02/22 개강

개강 2020년 2월 22(토) 오후 1시 일정 2020년 2/22 - 3/28, 매주 토요일 오후1시~6시(5시간씩 6회) 장소 토즈 모임센터 서울대입구역점 (지하철2호선 서울대입구역4번출구, 도보1분) 강사 한창호, 콴트글로벌 대표 / 경제학박사 문의 [email protected], 02.761.8090 기타 실습을 위한 노트북 컴퓨터 지참 필

본 강의는 Reinforcement Learning(RL) 강화학습 알고리듬 구조 및 이를 활용한 트레이딩 모형 구축 방법을 소개하기 위해 기획되었습니다. 학습 내용을 바로 실무에 적용하실 수 있도록 시스템 트레이딩에 관한 각종 이론 설명뿐만 아니라 Python을 이용한 데이터 분석 및 모형 구축 실습을 병행합니다. 주중 트레이딩 학습 방법 업무 부담으로 인해 강의 참석이 어려운 분들을 위해 강의는 토요일 오후 시간대에 진행됩니다. 오프라인 강의 종료 후 3개월간 녹화 동영상이 제공됩니다.

레벨업을 도와주는

그동안 인공지능/머신러닝 입문서를 떼고 나서 심화학습을 하기 트레이딩 학습 방법 트레이딩 학습 방법 위한 책을 찾아 보면 그리 많지 않았습니다. 때문에 캐글 같은 경진대회 참여와 전문업체 취업 외에는 갈고 닦을 방법이 적었습니다.

퀀트 전략을 위한 인공지능 트레이딩 - 파이썬과 케라스를 활용한 머신러닝/딥러닝 퀀트 전략 기술

퀀트 분야도 마찬가지입니다. 엄청나게 수학적(!)이거나 자전소설 같은 느낌을 주는 책을 읽어 본 적이 있습니다. 책 한두 권 읽었다고 그 업계 노하우 등 일하는 방식을 흡수할 엄두는 내지 않았지만 겉핥기조차 쉽지 않았다는 느낌을 받았습니다. 반면 이 책은 이 정도로 날짜형식을 이런 식으로 변환하는 게 좋다는 식으로 노하우를 알려주며 저자들이 경험했을 시행착오를 줄이도록 도와줍니다.

더불어 여러 입문서에서 다루는 예제로는 함수가 발휘하는 진정한 가치를 몰랐을 때도 많았는데, 다시 말해 그 기능을 왜 저렇게 쓰는지 납득하지 못하는 때가 많았는데 금융 데이터를 다룬 예제를 통해 보니 고민 끝에 나온 기능들임을 실감했습니다.

대신 이 책은 기초지식을 요구합니다. 우선 파이썬과 기본적인 머신러닝 입문지식을 필요로 합니다. 너무 두껍지 않은 입문서를 두 권 정도 골라 미리 보면 좋겠습니다. 더불어 주식투자에 대한 지식도 어느 정도 필요합니다. 이런 저런 투자 관련 개념을 설명하지 않고 넘어가지는 않습니다만, '모멘텀'이 뭔지도 모르는 수준이라면 이 책이 재미없어질 수도 있습니다. 평소에 관련 기사를 즐겨 보는 것으로도 충분해 보이긴 합니다.

강화학습이란? Reinforcement Learning, RL overview

post-thumbnail

NASNet이나, 트레이딩 학습 방법 RL for abstractive Summarization 등 딥러닝을 공부하다보면 RL 개념이 불쑥 튀어나올때가 있다. 한 번쯤 공부해보고 싶었던 강화학습을 드디어 동아리 스터디 세션에서 가볍게나마 다뤄보았다.

이전까지는 강화학습이 딥러닝에 속하는 subset인줄 알았는데 뿌리부터 다른 굵직한 분야더라.stochastic process 이론과 machine learning 메커니즘이 적절히 융합된 이 분야는 매우 새롭고 흥미로웠다.

근데 재밌었던 만큼 너무 어려웠다.🤪
까먹기 전에 얼른 정리해놔야겠다.

Topics

  1. what is 트레이딩 학습 방법 Reinforcement Learning
  2. MDP & Value function
  3. Value-based RL
  4. Policy-based RL

1. What is RL?

1.1 Element of RL

강화학습은 에이전트(Agent)와 환경(environment)이 행동(action), 상태(state), 보상(reward)라는 정보를 통해 상호작용하면서 주어진 목표를 달성하는 학습 과정이다.
강화학습의 핵심 연산은 아래와 같은 수식으로 표현된다.
f : ( s t , a t ) f:(s_, a_) f : ( s t ​ , a t ​ ) → \rightarrow → ( s t + 1 , r t + 1 ) (s_, r_) ( s t + 1 ​ , r t + 1 ​ )
여기서 목표는 reward의 장기간 기대치를 최대화 하는 것이다.


기존 ML방법들과 차별화되는 RL만의 특징은 아래와 같다.

  • 지도(supervisor)가 없으며 가이드는 reward 신호가 유일.
  • feedback이 즉각적이지 않고 delayed 되어 얻어진다.
  • 시간(time)을 고려해야 한다.

강화학습 적용 예

로봇 제어, 팩맨 게임, 바둑, 온도 조작 세스템, 주식 트레이딩 등

1.2 Policy Search

정책(policy)은 상태(state)를 input받아 취할 행동(action)을 output하는 함수로, 에이전트가 행동을 결정하기 위해 사용하는 알고리즘이라고 생각할 수 있다.

  • Deterministic Policy : 어떤 상태에 대해 항상 동일한 행동 반환
  • Stochastic Policy : 어떤 상태에 대해 action들의 확률분포를 반환

지도학습에서 경사하강법 등을 이용하여 목적함수의 최적해를 찾아가듯,
강화학습에서도 적절한 최적화 알고리즘을 사용하여 최적의 정책을 찾아야 한다.

최적의 정책을 찾는다는 것은 보상을 최대화하는 함수 π ( . ) \pi(.) π ( . ) 의 파라미터 조합을 찾겠다는 것이다.
이를 정책 탐색(policy search)이라고 하며, 다양한 방법들과 알고리즘들이 있다.

ex) 로봇 진공청소기 시뮬레이션

1.3 Evaluation of action

강화학습의 목적은 에이전트가 받는 보상을 최대화하는 것이고, 그것을 위해서는 보상을 최대화하는 정책을 찾아야 했다. 보상을 최대화하는 정책은, 에이전트가 처한 각 상태에서 최선의 행동을 수행하도록 하는 정책을 의미한다.

최선의 행동이란 뭘까? 행동을 어떻게 계량적으로 평가할 수 있을까?

Credit Assignment problem

강화학습에서 에이전트가 얻을 수 있는 가이드는 "행동에 따른 보상"뿐이다.
그러나 보상은 일반적으로 드물고, 지연되어(delayed) 나타난다.
때문에 에이전트가 보상을 받았을 때, 어떤 행동 덕분인지 알기 어려우며, 어떤 시점의 특정 행동을 평가하는 것은 어려운 문제이다.

이 문제를 해결하기 위해 흔히 할인 계수(Discount Factor) 의 개념이 도입된다.
행동 발생 후 각 단계마다 할인 계수를 적용한 보상을 모두 합한 값을 특정 시점 행동의 가치에 대한 측도로써 사용하겠다는 것이다.

이를 할인된 미래 보상의 합(sum of discounted reward) 혹은 누적 보상액(accumulative reward)이라고 부른다.
할인 계수는 0과 1사이의 값을 갖으며 현재와 미래의 상대적인 중요도를 조율하는 파라미터로써 역할을 한다.
전형적으로 0.9, 0.99가 사용된다고 한다.

  1. 충분히 많은 시뮬레이션 episode를 실행.
  2. 발생한 모든 행동들의 return(누적 보상액)을 구하여 평균, 표준편차를 구함.
  3. 각 행동들의 return을 정규화한다.
  4. 행동이익이 음수인 행동은 나쁘며, 양수인 행동은 좋다고 가정할 수 있다.

2. MDP & Value function

2.1 Markov Property, Markov Chain

이 수식의 의미는 미래의 상태는 모든 과거 상태들과는 independent하며, 오직 현재에만 종속된다는 것이다.

이산(discrete)시간 MC 예시 - 학생의 하루일과를 한 시간 단위로표현하는 마코프 체인종료상태인 sleep에 도달하면 과정이 종료된다고 가정.

2.2 Markov Decision Process

마코프 결정과정은 일반적인 Markov chain에 행동과 보상이라는 개념을 추가하여 확장된 확률과정으로, 고정된 전이확률 P, 할인 계수 gamma, 보상 R이 정의되어 있을 때, 확률적으로 얻어지는 s(상태), a(행동), r(트레이딩 학습 방법 보상)의 시퀀스이다.

강화학습에서 MDP는 환경에 대한 확률모델로써 바라볼 수 있다.
이때 MDP가 모델링 하는 확률분포는 P ( s t + 1 , r t + 1 ∣ s t , a t ) P(s_, r_|s_, a_) P ( s t + 1 ​ , r t + 1 ​ ∣ s t ​ , a t ​ ) 이다.

2.3 Value function

state-value function,V(s)는 어떤 '상태 s의 가치'인데, 여기서 가치란 에이전트가 상태 s에 도달한 후 평균적으로 기대할 수 있는 sum of discounted reward이다.

수식으로 표현하면 아래와 같다.

여기서 상태 s 도달 이후에 종료시점까지 에이전트가 항상 최적으로 행동한다고 가정하면, 최적 상태 가치는 아래와 같다.
(벨만 최적 방정식)

  • T(s,a,s') : 상태 s에서 행동 a를 하여 상태 s'로 전이할 확률
  • R(s,a,s') : 상태 s에서 행동 a를 하여 상태 s'로 전이한 뒤 받는 보상
  • γ \gamma γ : discount factor

확률을 weight로써 가중합을 취하면 그것은 곧 기대값과 같기 때문에 위의 첫 번째 식과 max_a를 제외하면 동일한 식이라고 볼 수 있다.

이 식을 이용하면 가능한 모든 상태에 대해 최적의 상태 가치를 추정할 수 있다.

최적의 상태가치를 아는 것은 정책을 평가할 때 유용하지만(우리가 test하고자 하는 정책으로부터 상태가치를 구해 최적의 상태가치값과 비교해 볼 수 있음.), 이 함수가 직접적으로 최적의 정책을 알려주지는 않는다!!

이제 상태만 가지고 가치를 책정하는 state-value function 대신 상태와 행동 쌍 (s,a)를 가지고 그에 대한 가치를 추정하는 action-value function를 알아보자.

상태-행동 가치인 Q-value는 에이전트가 상태 s에 도달해서 행동 a를 선택한 후 평균적으로 기대할 수 있는 누적 보상액이다.

에이전트가 매 단계 최적으로 행동한다고 가정하고, value iteration을 사용했던 것과 비슷하게
Q-value iteration을 사용해 Q-value의 업데이트를 반복하여 각 상태-행동 쌍 (s,a)이 가지는 최적의 가치에 대한 추정치를 얻을 수 있다.
이렇게 하여 optimal Q-value를 얻었다면, 그로부터 최적의 정책을 다음과 같이 결정할 수 있다. (상태 s에 도달했을 때 가장 높은 Q-value를 가진 행동을 선택하도록 결정하는 정책)

Example

3. Value-based RL

강화학습 알고리즘은 Value함수와 policy 중 어떤것에 기반하여 optimization을 진행할 것인지에 따라
Value-basedPolicy-based로 구분할 수 있다.

위 2절에서 살펴본 Q-value iteration 알고리즘을 이용하여 최적의 Q-value(상태-행동 가치)를 추정하고,
그것으로부터 간접적으로 최적의 정책을 찾는 방식이 Value-based RL이다.


가치기반 강화학습의 큰 틀을 살펴보자.

Dynamic programming (동적 계획법)

초창기 강화학습에서 주로 사용하던 고전적인 방법으로, 위에서 살펴보았던 value iteration 알고리즘이 대표적인 예이다.
상태와 행동의 개수가 적어 계산 시간과 메모리 요구량이 현실적이여야 한다는 강력한 제약조건이 있으며, 현실에서는 알기 힘들 수 있는 MDP에 대한 완전한 정보를 요구한다는 단점이 있다.

Monte carlo method (몬테카를로 방법)

완전한 MDP에 대한 정보를 요구하는 DP(동적계획법)의 단점을 극복하는 방법으로,
Sampling을 통해 학습하는 MC방법이 있다.

불완전한 MDP가 주어졌거나, MDP에 대한 정보가 전혀 없을 때, 직접 에피소드를 종료시점까지 몇 차례 진행해보고
에이전트와 환경의 상호작용으로부터 직접 샘플 (s, r) -> action -> (s', r') 들을 수집하여 전이확률, 가치함수 등을 추정한뒤 이들을 토대로 최적의 정책을 찾아내는 방법.

Temporal Difference learning (시간차 학습)

DP방법과 MC방법의 중간에 있으며, 둘의 장점을 동시에 취하는 알고리즘이다.

TD learning is a combination of Monte Carlo ideas and dynamic programming (DP) ideas. Like Monte Carlo methods, TD methods can learn directly from raw experience without a model of the environment's dynamics. Like DP, TD methods update estimates based in part on other learned estimates, without waiting for a final outcome (they bootstrap)


TD 학습 알고리즘 식은 아래와 같으며,
MC방법과 유사하게 MDP에 대한 사전정보가 아닌 episode 플레이를 통해 실제로 관측된 전이와 보상에 근거하여 state-value의 추정값을 업데이트 한다.
위 식은 아래와 같이 축약하여 표현할 수 있다.
각 상태 s에서 이 알고리즘은 기존에 가지고있던 value 추정치에 (1- α \alpha α )만큼의 가중치를 주고, 에이전트가 이 상태를 떠났을 때 얻을 수 있는 당장의 보상과 이후에 기대할 수 있는 보상을 더한값에 α \alpha α 만큼의 가중치를 주어 이동평균(moving average)을 구한다.

Q-learning

시간차 학습과 비슷하게 q-러닝 알고리즘은 전이확률과 보상을 초기에 알지 못한 상황에서 Q-value iteration 알고리즘을 적용한 것이다.각 상태-행동 쌍 (s,a)마다 이 알고리즘이 행동 a를 선택해 상태 s를 떠났을 때 에이전트가 받을 수 있는 보상 r과 이후 시점들에서 기대할 수 있는 할인된 미래 보상의 합을 더한 값을 업데이트 전 기존 값과의 이동평균으로 저장한다.

각 스텝에서 에이전트가 최적의 행동을 한다고 가정하면(greedy) 알고리즘을 아래와 같이 쓸 수 있다.

3.1 Exploration & Exploitation

  • explotation(탐험) : 전체 공간을 골고루 탐색
  • exploitation(탐사) : 특정한 곳 주위를 짐중적으로 탐색

따라서 학습 과정에서 에이전트가 새로운 행동을 탐험하는 것과 잘 할 수 잇는 행동을 활용하는 것 사이에서 균형을 트레이딩 학습 방법 트레이딩 학습 방법 맞추는게 중요한데, 이를 위해 사용할 수 있는 두 가지 방법을 소개한다.

(Decaying) ϵ \epsilon ϵ -greedy policy


에이전트가 각 step마다 epsilon의 확률로 랜덤하게 행동하거나, 1-epsilon의 확률로 가장 높은 Q-value를 갖는 행동을 선택한다.
파라미터 epsilon은 훈련 초반에는 비교적 큰 값을 주어 탐험의 가능성을 높여주고, 어느정도 step이 진행됨에 따라 감소시켜(decay) 안정적으로 solution을 찾게끔 하는 것이 일반적이다.

exploration function

Q-learning등의 알고리즘에서 Q-value의 업데이트 식에 일반 q함수 대신 아래와 같이 f(Q,N)이라는 탐험함수를 추가하여 시도 횟수(N)가 적은 행동들을 더 시도해보도록 장려하는 방식으로 학습을 진행할 수 있다.

3.2 Approximate Q-learning

지금까지 살펴본 value-based RL 알고리즘들은 가능한 모든 상태와 행동들의 조합( |S| * |A| 개)에 대해 대응되는 Q-value를 저장해 놓는 lookup table이 필요한데, 이것은 상태와 행동의 space가 매우 작을 때나 실현가능한 이야기이며, 바둑이나 게임, 실제 세상에의 적용을 생각한다면 state나 action등의 가지 수가 무수히 많기때문에 사실상 불가능하다.

이를 해결하기 위한 아이디어
: 상태-행동 쌍 (s,a)의 Q-value를 모두 구해 저장하는게 아닌 그 트레이딩 학습 방법 Q-value를 적절한 개수의 파라미터를 사용하여 approximate하는 함수 Q θ ( s , a ) Q_(s,a) Q θ ​ ( s , a ) 를 찾자!


이러한 근사방법을 이용하여 Q-learning을 진행하는 것을 approximate Q-learning이라고 트레이딩 학습 방법 한다.

이때, Q-value를 모델링하기 위한 함수로 심층 신경망을 사용하는 것을 Deep Q-learning이라고 하며, 이때 사용된 심층 신경망(DNN)을 Deep Q-network, DQN 이라고 한다.

근사 Q러닝에서의 target Q-value는 아래와 같다.

4. Policy-based RL

지금까지 살펴본 강화학습 알고리즘들은 모두 Q라는 action-value function에 초점을 맞춰 우선 그것을 구하고 Q-value로부터 policy를 간접적으로 유도해내는 방식이었다.

policy-based RL은 policy자체를 parameterize한 뒤 그것을 직접 optimize하는 방법이다.

value-based RL과 비교한 장단점은 아래와 같다.

Policy Gradient Algorithm

인기있는 PG알고리즘 REINFORCE의 작동방식은 아래와 같다.
1. 신경망 정책을 이용해 여러 번의 시뮬레이션을 진행하고, 매 스텝마다 선택된 행동이 더 높은 가능성을 가지도록 하는 그레디언트를 계산
2. 에피소드를 몇 번 실행한 뒤, 각 행동의 이익 계산
3. (1)에서 계산한 각 행동에 대한 그레디언트 벡터와 (2)에서 계산한 행동의 이익을 곱함.
4. 모든 결과 그레디언트 벡터를 평균내어 경사 하강법 스텝을 수행.

트레이딩 학습 방법

저도 초보이지만 라이브러리 이용해서 그래프/시세데이터 가격을 "예측"하는 행위 자체는 그리 어려운 것이 아닌 것 같습니다.
중요한 것은 예측한 데이터를 가지고 어떤 코인을 살 건지, 얼마나 살건지, 언제 팔건지, 얼마나 팔건지 이런 것들을 학습시키는 것이 머리 아프더라구요.
제가 생각한 것은 사고 파는 행위를 강화학습 + 백테스팅 이용하여 이런 부분을 학습하도록 하면 어떨까요? (트레이딩 학습 방법 Atari 게임봇처럼)
저도 생각만 하고 구현에 손은 못대고 있지만요.

저도 석사 주 연구분야는 강화학습을 공부하여서 강화학습으로 접목하고자 하였는데.
강화학습은 무리가 있다고 보이더군요. 우선 멀티암드반딧 문제처럼 다양한 코인중에서 수익률이 더 높게 날 코인을 확률로 선택하는 부분과 선택한 코인을 강화학습하여 매수나 매도를 하도록 하는 것을 하였습니다. 강화학습은 Q러닝 사용하여 스테이트는 2가지 스테이를 갖는것으로 하고 입실론그리디로 확률을 조정해가면서 하였는데. 방법의 미스 인지. 사실 좀 성능자체가 좋지 못하고. 학습에 걸리는 시간이. 너무 오래 걸리다보니. 1분단타용 봇으로는 힘들었습니다.
그래서 RNN으로 하였는데 1000번 반복횟수에 학습하는데 걸리는 시간이 약 30초 정도라 1분단타용 트레이딩에 적합하여 선택하여 여러가지 방법을 시도하였습니다. 처음에는 UP, DOWN이 아닌 코인의 시세예측을 하였는데. 솔직히 뭐. 너무 안좋았고. 그러던중 시세가 다음시점에 오를지 내려갈지에 대한 예측에서는 예측 성능이 좋기에 이를 사용해서 하는데 수익률도 실제 5만원치 코인사서 하루 돌려보니 트레이딩 학습 방법 수익도 괜찮은편이었습니다. 그래서 더 좋은 성능으로 이끌어내기위해 더 연구해야겠어요 ..ㅎㅎㅎ

아 강화학습 쪽을 이미 해보셨군요ㅎㅎ멀티 암드 밴딧은 처음 들어보네요 하나 배워갑니다.
그런데 학습에 걸리는 시간이 오래 걸리는 것과 학습된 모델을 사용하는 것은 다른 문제인 것 같습니다.
알파고가 이세돌과 대국할 때 매 수마다 학습 데이터를 갈아 엎고 새로 시작한 건 아니니까요 ㅎㅎ

일단 백테스팅은 강화학습 여부와 관계없이 필요하다고 생각합니다.
하루 수익률이 괜찮다고 하셨지만 백테스팅 트레이딩 학습 방법 이용하면 방대한 과거 데이터를 토대로 사고 파는 알고리즘을 최적화시킬 수 있으니까요.
https://wikidocs.net/2874

시세 업다운만 예측하는것이라면 4~5년전에 읽은 일본쪽 학생 논문이 하나 있었는데, 실제값보다 평균값을 인풋으로 하면 예측률이 더 올라가더군요.
저도 관심은 있고 적용할 부분은 생각하고있는데 문과라 힘드네요 ㅎㅎ

1번은 비트렉스 사용자증가로 인한 현상으로 전 추측하고 있습니다.
2번은 실거래 시 80%의 정확도라면 감히 제가 훈수둘만한 부분이 아닌듯합니다.
3번은 비트렉스 요청 시 에러라면 하루 주문횟수 등의 제한이 있으니 이부분 확인해보심이. 혹 스레드 문제라면 스레드를 제어하기전에 상태를 확인해보세요. 특히, 스레드로 api요청 시 간혹 네트워크 딜레이 등이 발생되어 예상치 못했던 상태에 가있을 수도 있습니다.


0 개 댓글

답장을 남겨주세요