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

오류사냥을 위한 다양한 시도들과 실패

by 인터넷떠돌이 2019. 3. 3.
반응형

안녕하세요?


지난번에는 생각지도 못했던 오류가 실제로는 존재를 하고 있었고, 이 오류를 소 뒷걸음 치다가 쥐 잡은 격으로 잡는데 성공했습니다. 이번 포스팅에서는 메인 오류인 왜 처음 120개의 데이터에 대해서는 아무런 작업도 하지 않다가 이후에야 작업을 하는 지에 대해서 한번 그 원인을 알아보고, 해결책을 찾고자 합니다.



먼저 위 스크린샷처럼 agent.py에 있는 내용이 문제가 된 것이 아닌가 하는 생각이 들어서, 과거처럼 바꾸어 놓은 다음에 한번 강화학습에 들어가 봅니다.



2분도 되지 않는 시간이 걸려서 강화학습이 끝나는 것을 확인할 수 있기는 있었습니다.



그런데 나아지기는 커녕, 과거에 않 좋은 형태 그대로 나오는 것을 확인할 수 있었습니다.



다음으로는 위 스크린샷을 보시다 시피, 차트 데이터에다가 features_chart_data를 추가하는 작업을 하도록 해 봅니다.



이번에도 역시 2분이 되지 않는 시간이 걸려서 강화학습이 마무리가 된 것을 확인할 수 있었습니다.




그리고 나서 한번 변화가 있는가 해서 살펴보았습니다만, 여기서도 아무런 변화가 없이 그대로 일이 진행이 되는 것을 확인할 수 있기는 있었습니다.



그리고 나서 혹시나 라고 했지만, 역시나 아무런 소득없이 그대로 프로그램이 초반에는 아무런 결정을 하지 않는 것을 볼 수 있었습니다.



그래서 이번에는 policy_network.py에 있는 predict라는 함수를 찾아가는 것으로 해서, 한번 어떠한 값이 나오기에 이런 결과가 나오는지 알아보고자 합니다.



다만 이렇게 해서 보기만 해서는 어디가 잘못된 것인지 알아보기 어렵다는 생각이 들지만, 일단 10회의 강화학습이 끝났기는 끝났기 때문에 한번 살펴보기로 합니다.



우선 결정이 전혀 이루어 지지 않은 초반 데이터에서는 왜인지는 몰라도, nan이 유별나게 많이 생성이 되어 있는 것을 확인할 수 있었습니다.




그리고 일정 타이밍을 기준으로 해서 nan이 전혀 없는 배열이 나오는 것을 볼 수 있는데, 이게 어떤 의미가 있는지는 아직은 잘 모르겠습니다.



그래서 이번에는 agent.py로 가서, 한번 위 스크린샷처럼 probs의 값과 action의 값이 어떻게 바뀌는 지에 대해서 한번 살펴 보고자 합니다.



일단 10회의 강화학습을 끝내는 것에는 성공했습니다.



그리고 어째서 인지 전혀 프로그램이 아무런 결정도 하지 않은 경우에는 위 스크린샷처럼 probs의 값이 [nan nan]인 것을 확인할 수 있었습니다.



그래서 이번에는 한번 일봉차트를 다시금 가지고 와서, 강화학습을 시키면 변화가 나올 것이라는 생각이 들어서, 데이터문제가 또 붉어진 것인가 싶어서 한번 RLTrader에서 강화학습 10회에 들어가 봅니다.




이번에도 2분이 걸리지 않는 시간이 걸려서 강화학습 10회가 끝나는 것을 확인할 수 있었습니다.



그리고 그 결과 역시 아무런 차이점도 없다는 것을 확인할 수 있기는 있었습니다.



그래서 이번에는 과거에 제대로 결과가 나와 주었던 AJ렌터카의 주식 일봉차트를 가지고 오도록 합니다.



여기서도 일부분의 데이터만 사용하도록 합니다.



RLTrader에서 위 스크린샷처럼 환경을 설정해 둔 다음 10회의 강화학습에 들어가 보도록 합니다.



이번에도 2분도 걸리지 않은 시간이 흐르고 나서, 작업이 완료가 된 것을 확인할 수 있었습니다.



그리고 데이터 자체의 문제가 아닌것이 명확해진 것이, 이 AJ렌터카를 사용한 경우에서도 위 스크린샷과 같이 나오면서 전혀 상황이 나아지지 않은 것을 확인할 수 있었습니다. 이것으로 볼때 무언가 제 프로그램내에서 데이터를 처리하는 것에 있어서 문제가 있는데, 이에 대해서는 천천히 찾아봐야 할 듯 합니다.

반응형