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

인공지능의 묻지마 매수를 막기위한 작업-1-

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

안녕하세요?


지난번 포스팅에서 주식 인공지능이 첫 결정을 하기도 전에 무조건 매수부터 해서 문제가 있다는 이야기를 했습니다. 그래서 이런 작업이 문제는 상승장에서 이루어 지고 나서 정착 첫번째 판단은 하락장에서 이루어 지는 경우가 발생을 했습니다. 이래서는 문제가 있다고 생각을 해서, 한번 묻지마 매수라고 부르는 이런 모델이 결정을 내리기 이전에 매수를 하는 것을 막고자 하는 작업에 들어가 보려고 합니다.



먼저 기존의 코드에서 자동으로 폴더를 생성하는 명령어가 없는 것을 확인할 수 있었습니다. 이래서는 곤란하다고 생각해서 일단 코드를 추가해 주도록 합니다.



다음으로는 yellowoperation에 가서, agent.py를 위 스크린샷과 같이 수정을 해 주도록 합니다. 우선 제가 움직이고자 하는 조건은 먼저 탐험중이 아니면서 모델이 아무런 결정을 내리지 않은 것을 기준으로 했습니다.



그리고 나서 300으로 수정이 되어 있던 main.py에 있던 에포크는 100으로 내려 주도록 했으며, 이제 모든 파일을 구글 드라이브에 업로드 하도록 합니다.



구글 코랩에서 작업을 하도록 해서, 14분 조금 더 걸려서 강화학습이 마무리 되는 것을 볼 수 있었습니다. 이렇게 첫번째 강화학습이 끝났습니다.


그런데 강화학습의 결과인 10, 50, 75, 100에포크 째의 그래프를 보니까, 위 스크린샷처럼 전혀 제 의도대로 움직여 주지 않은 것을 확인할 수 있었습니다.




그냥 첫번째 시도라서 이런것이 아닌가 해서 두번째 강화학습을 시도했으며, 이 경우에는 17분이 걸려서 강화학습이 완료가 된 것을 확인할 수 있었습니다.



그런데 이렇게 하고도 역시나 같은 결과가 나오는 것을 확인할 수 있었습니다. 그래서 방법을 바꾸지 않으면 안된다는 것을 생각했습니다.



그래서 이번에는 0 이하의 값-즉, 혹시나 마이너스의 값이 나와서 이렇게 된 것이 아닌가 해서, 한번 위 스크린샷처럼 변경을 해 보도록 했습니다.


이번에는 14분이 걸려서 강화학습을 구글 코랩에서 완성할 수 있었습니다. 일단 이걸 노트북에서 해도 상관은 없을 수도 있지만, 그래도 시간이 훨씬 덜 걸린다는 것을 알았기 때문에 굳이 구글 코랩에서 작업을 하였습니다.



그런데 이번에도 상황이 좋지 않게도 제 의도대로 초반에 행해지는 묻지마 매수가 방지되지 않는 것을 확인할 수 있었습니다. 이래서는 PV가 마지막에 증가해도 중요한 것이 아니기는 합니다.




그래서 이번에는 self.action을 false일때로 한번 고쳐서 시도를 해 보고자 합니다. 왜냐하면 이렇게 비어 있는 값인 공 데이터일 경우에는 False로 인식이 될지도 모른다고 생각을 했습니다.



이번엔느 16분이 걸려서 구글 코랩에서 작업이 이루어 지는 것을 확인할 수 있었습니다.



그리고 이번에도 보기좋게 예상이 빗나간 것을 확인할 수 있었습니다.



알고봤더니, 위 스크린샷과 같이 if문을 다른 if문 아래에 두는 바람에 전혀 통과가 되지 않은 것이 문제이기는 문제였습니다. 즉, 제가 의도한 if문을 프로그램이 거치지 않아서 생긴 문제이기 때문에, 위치를 바꾸어서 시도해 보았습니다.



이번 강화학습의 결과는 15분에 약간 못 미치는 시간이 걸리는 것으로 구글 코랩에서 작업이 완료가 되기는 되었습니다. 이제 강화학습의 그래프를 확인하러 가 보도록 하겠습니다.




일단 제 의도가 어느정도 반영이 되기는 되었습니다! 즉, 묻지마 매수를 하지는 않는데, 이번에는 반대로 프로그램이 매수 명령을 내려야 하는 타이밍에서 까지 전혀 매수가 되지 않는 문제점이 나온 것 입니다.



그래서 이번에는 위 스크린샷처럼 False로 되어 있던 부분을 0보다 작을 때로 바꾸어서 작업해 보도록 합니다. 이제 agent.py를 저장하고 구글 드라이브에 업로드 한 다음, 구글 코랩에서 돌려 보도록 합니다.



이번에는 14분 하고 40초 조금 더 시간이 걸린 다음에 강화학습이 마무리가 되는 것을 확인할 수 있었습니다. 그리고 나서 다음으로는 강화학습의 그래프를 보고자 합니다.



그런데 이번에도 별로 차도가 없는 것을 볼 수 있었습니다. 일단 여기서는 제가 의도한 대로 초반에 나오는 묻지마 매수를 막을 수 있기는 있었습니다. 하지만 반대로 프로그램이 매수 명령을 내릴 때 매수를 해야 하는데, 그것까지 안되는 것을 확인할 수 있었습니다. 이를 해결해야 할 필요성이 있어 보입니다.

반응형