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

400에포크를 늘려서 하는 강화학습과 동시에 발견한 한가지 에러

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

안녕하세요?


지난번에 300에포크로 강화학습의 횟수를 늘려서 모델에 학습을 시켜 보았습니다만, 그렇게 결과는 좋지는 못했습니다. 그래서 이번에는 400으로 조심스럽게 올려보면서 한번 강화학습을 해 보는데, 문제는 그렇게 강화학습을 진행 시키는 동안에 한번 확인해 볼 것이 있어서 확인을 해 보는 동안 새로운 것을 하나 알게 되었습니다. 그래서 이번 포스팅에서 그 내용을 올리고자 합니다.



먼저 yellowoperation 프로젝트를 열고, 위 스크린샷에서 보이는 것처럼 400에포크로 설정을 한 다음에, 저장을 하고 구글 드라이브에 업로드해 봅니다. 그리고 나서 한번 강화학습에 들어가 봅니다.



다음으로 한번 과거의 데이터를 검색해 보았습니다. 그랬더니, 과거에는 위 스크린샷처럼 처음부터 모델이 제대로 결정을 내리는 것을 볼 수 있습니다. 그런데 언제부터 인지 모델이 처음부터 제대로 결정을 내리지 않는 것을 볼 수 있었습니다.



그래서 한번 처음에는 구글 코랩이라는 환경과 제 데스크톱에서 하는 환경과의 차이가 아닌가 하는 생각이 들어서 위 스크린샷에 보이는 것처럼 100에포크만 지정을 해서 한번 강화학습에 들어가 보고자 합니다.



역시 조흥(002600)의 종목 데이터 베이스를 바탕으로 해서, 50%의 데이터를 하드 디스크-로컬 상에서 파이썬을 실행하는 식으로 해서 작동을 시켜 보도록 합니다.



먼저 구글 코랩에 비해서 4분이 더 걸린 것을 확인할 수 있었습니다만, 그래도 100에포크 밖에 되지 않아서 그런지는 몰라도 강화학습에 들어간 시간이 별로 걸리지 않은 것을 확인할 수 있었습니다.



그러나 역시나 라고 할까요? 일단 하드웨어상의 문제는 아닌 것으로 나왔습니다. 우선 하드웨어를 바꾸어서 실행을 시켜 보았습니다만, 그래도 여전히 처음의 120개의 데이터가량은 아무런 결정을 내리지 않는 것을 확인할 수 있었습니다.




이렇게 하나의 에러를 인식하는 사이에 1시간 정도 시간이 걸린 다음에, 강화학습이 완료가 되었습니다. 이제 다음 작업에 들어가 보도록 합니다.



일단 강화학습의 에포크를 가지고 와서, 그 결과를 보는데, 역시나 라고 할까요? 400에포크까지 더 강화학습을 더 시켜 보았지만, 특별하게 나아진 것은 없다는 생각이 듭니다.



그래서 먼저 조흥(002600)의 일봉차트를 가지고 오도록 합니다. 그리고 일봉차트에 들어가 있는 내용이 너무 많기 때문에, 일부 데이터만 남기도록 합니다.



다음으로는 일봉차트와 같이 들어간 데이터가 차이가 나서 이런 결과가 나온 것이 아닌가 하는 생각이 들어서, 한번 RLTrader를 실행시키도록 합니다.



일단 이번에도 약 18분가량 기다리고 나니, 데스크톱에서 강화학습의 결과가 나왔습니다.



이번에도 제대로 120개의 데이터에서는 아무런 결정을 하지 않은 것을 확인할 수 있었습니다. 이래서야 무언가를 잘못 짚은 것이 아닌가 하는 생각이 듭니다.




그래서 이번에는 지연보상 임계치에 무슨 문제가 있는 것이 아닌가 하는 생각이 들어서, 한번 0.1%에서 1%로 올려서 한번 작업에 들어가 보도록 합니다.



그리고 나서 이번에도 RLTrader를 실행시켜서, 한번 강화학습을 100회 시켜 보도록 합니다. 일단 강화학습을 시킨 다음에 그 결과를 확인하러 갑니다.



10분이라는 시간이 걸린 다음에 일단 시험적으로 사용한 강화학습이 끝나는 것을 확인할 수 있었습니다.



그리고 이번에도 120개의 데이터에 아무런 결정을 프로그램이 내리지 않은 것을 확인할 수 있었습니다.



이렇게 다양한 시도를 하는 동안에 그 사이에 400에포크의 강화학습이 구글 코랩에서 완료가 된 것을 확인할 수 있었습니다.



이렇게 다양한 시도를 하여서 총 5개의 강화학습 모델을 얻을 수 있었습니다. 이제 이 모델들을 한번 백테스트에 들어가 보기는 봐야 하는데, 일단 포스팅이 너무 길어진 감이 있으니, 다음번 포스팅에서 한번 다루어 보고자 합니다. 일단 강화학습은 강화학습이고, 지금 발견한 에러는 어디서 부터 발생한 에러인지 확인해 보아야 겠다는 생각이 듭니다.

반응형