본문 바로가기
무모한 도전-주식 인공지능 만들기

RLTrader의 오류 수정과 다시한번 시도해 보기

by 인터넷떠돌이 2018. 11. 5.
반응형

안녕하세요?


이번 포스팅에서는 여전히 수익이 안 나오는.... 예, 아직 주식투자로 수익을 못 내고 있는 이 RLTrader가 어디서 문제가 있는 것은 아닌가 하는 생각이 들어서, 한번 체크해 보고 다시 한번 시도를 하고자 합니다.



먼저 기계학습을 시작하는데, 이전까지는 2% 지연보상 임계치를 주어서 했다면, 다시 초기로 돌아가서 20%로 올려주고, discount Factor를 0으로 만들어 주는 작업을 해 보았습니다.



당연 policy_learner라고 정책 학습기에서 한번 더 혹시나 모를 수도 있기에 바꾸어 줘 보기도 합니다.



fit()메소드에 있는 discount factor도 역시 0으로 바꾸어 주도록 합니다.



이제 기계학습에 들어가 보도록 합니다.



지난번 보다는 짧은 시간이 걸리기는 했지만, 아무튼 기계학습이 끝나기는 했습니다.




좀 전에 완성이 된 모델을 한번 불러 와 보도록 합니다.



그리고 비학습 투자 시뮬레이션을 시작해 보도록 합니다.



그리고 깜빡하고 잊은게 있는데, main모듈에 기관과 외국인 투자자의 항목을 빼 먹은 것 입니다. 그래서 부랴부랴 추가를 해 주도록 합니다.



그렇게 이번에는 한번 투자 시뮬레이션에 들어가 봤지만, 벌써부터 좋지 않은 예감이 듭니다.



일단 투자 시뮬레이션 결과인데, 그다지 결과가 좋지 않다는 것을 볼 수 있습니다. 그리고 어찌 된 것인지 주가의 그래프와 완전히 동화된 것을 볼 수도 있습니다.




그래서 늦기는 늦었지만, RLTrader가 어디가 문제가 있는지 살펴 보았는데, 위 스크린샷처럼 self.base_fortfolio_value라고 되고 있는 것을 확인할 수 있었습니다.



실제로 제 경우에도 이 부분이 책과 실제로 github에 올려진 내용이 다른 것을 확인할 수 있었습니다. 그래서 이 부분을 수정해 보았습니다.



먼저 기계학습에 들어가기 위해서 기간을 다시 설정하도록 했으며.....



아예 본격적으로 github와 제가 타이핑해서 적어넣은 RLTrader의 코드가 무슨 차이가 있는지에 대해서 한번 대조를 해 보았습니다.



실제로 많은 부분이 차이가 있었고, 일단 환경모듈(environment)에서 위 스크린샹의 밑줄친 부분과 빨간색 박스친 부분의 코드를 추가로 넣어 주도록 했습니다.




그리고 가시화기(visualizer)에서도 위 스크린샷처럼 init라고 하는 부분에서 오타가 있는 것을 확인할 수 있었습니다. 이러고도 결과가 그래프로 제대로 표기가 된 것이 놀랍다는 생각이 듭니다.



일단 이렇게 몇몇 오류를 해결하고 나서, 위 스크린샷처럼 기계학습을 다시 시켜보도록 했습니다.



다소간의 기다림이 끝나고 나서 기계학습이 끝나는 것을 볼 수 있었습니다.



다만 이번에도 큰 변화가 없다는 것을 확인할 수 있었습니다.



역시나 에포크가 증가해서 기계학습이 일어나도, 그다지 큰 변화가 없다는 것을 볼 수 있었습니다. 일단 여기까지는 하기는 했고, 다음 단계로는 한번 원숭이 투자자(MT)라고 해서, 무작위 랜덤한 행동만 하는 주식 투자자를 구현해서 한번 수익성을 비교해 보고자 합니다. 관련된 내용은 다음 포스팅에서 올릴 것을 약속드리며, 이번 포스팅은 여기서 마치도록 하겠습니다.

반응형