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

다시한번 텐서플로(tensorflow)를 돌려서 기계학습을 하기 위한 여정-2-

by 인터넷떠돌이 2018. 12. 10.
반응형

안녕하세요?


지난번 포스팅에서는 한번 새로 설치한 환경에서 제대로 강화학습이 잘 되는 것인지 알아보고자 했는데, 이게 잘 안되는 것을 보았습니다. 그래서 이 에러를 해결하기 위해서 한번 있는대로 시도를 해 보았고, 이번 포스팅에서는 그 내용을 포스팅 하고자 합니다.



일단 해결방법을 찾아 보았는데, 우선 먼저 해야 할 일을 계정항목으로 가서, 관리자 권한을 가진 부계정을 만들어 봐야 하는 것 이었습니다. 왜냐하면, 문제의 원인이 바로 노트북을 공장 초기화 하면서 제 Users항목에서 유저 이름이 한글로 바뀌어 버렸는데, 이것 때문에 텐서플로가 경로를 인식하지 못하는 문제점이 벌어진 것 입니다.



그리고 나서 인터넷을 찾아보니, 어떻게 하면 한글로 된 유저명을 영문으로 바꿀 수 있는지에 대해서 나왔습니다. 일단 윈도우 버튼 + 키를 누르거나 검색을 통해서 msconfig를 실행시키도록 합니다. 원래라면 여기서 부터 스크린샷을 찍어야 했지만, 사정상 어려워서 하는 수 없이 이렇게 글로 적어야만 합니다.


1. msconfig를 실행시킨 다음에, 안전부팅을 선택한 다음 확인을 눌러서 재부팅을 시작하도록 합니다.

2. 위에서 만들어준 영문으로 된 계정명으로 들어가서 안전모드 윈도우 부팅을 하도록 합니다. 

3. cmd 관리자라고 되어 있는 것이 있는데, cmd를 관리자 권한을 부여해서 실행시키는 것 입니다. 여기서 아래의 명령어를 입력하도록 합니다.


ren C:\Users\기존한글계정명 영문계정명


일단 여기서 엑세스가 거부되는 경우도 있다고 하는데, 경우에는 안전모드라서 그런지 일단 거부메세지는 뜨지 않았습니다. 하지만 뜰 수도 있느데, 일단 무시하고 가도록 합니다.


4. 검색으로 regedit을 실행시킨 다음에, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrnetVersion\ProfileList를 찾아가도록 합니다.


왜 이렇게 장황한 경로를 다 입력했냐 하면, 제 경우에는 일단 너무 regedit에 있는 항목이 많아서, 일일히 찾아갈 수가 없었습니다. 그래서 저 경로를 반드시 잘 메모한 다음에, 이를 봐야할 필요가 있습니다.


5. 다시 msconfig를 실행한 다음, 이번에는 안전부팅을 해제한 다음에 다시 재시작을 하도록 해야 합니다.

6. 만약 계속해서 한글이름으로 Users에서 나와 있으면, 이름 바꾸기를 해서 영문이름으로 바꾸도록 하고, 재부팅을 해봐야 합니다.



결국 어떻게 해서, 원래를 한글로 되어 있던 제 계정폴더가 netpilgrim이라는 영문으로 바꾸어 주도록 합니다.



문제는 이렇게 Users폴더의 한글명을 영문으로 바꾸니까 바탕화면의 바로가기가 모두 먹통이 되었습니다. 그래서 하는 수 없이 위 스크린샷처럼 다시 영웅문4, 번개3, PyCharm을 설치한 다음, 다시 pytrader의 환경을 지정해야 합니다.




일단 pytrader를 실행시킨 다음에, 위 스크린샷처럼 계좌정보를 가지고 오는 데는 별 무리가 없는 것을 확인할 수 있었습니다.



다음으로는 이전에 만들어 주었는 testAI라는 프로젝트를 위해서 만들어 둔 가상환경을 프로젝트에 지정해 주도록 해야 합니다. 



이제 강화학습에 들어가 보도록 합니다. 조건은 크게 다를 것도 없이 지연보상 임계치 15%로 지정을 하도록 하고, 1000에포크 동안 강화학습에 들어가라고 지정을 합니다.



일단 2016년 6월 29일 부터 2018년 4월 26일까지 AJ렌터카의 일봉차트 데이터로 한번 강화학습을 했는데, 시간이 2시간 30분이나 걸리는 것을 확인할 수 있었습니다. 일단 예전에 비해서 어딘가 늦어진 감이 있기는 했지만, 어찌되었건 간에 느린 속도는 상당히 느린 속도로 성공적인 강화학습이 일어났다는 것을 알 수는 있었습니다.




일단 10, 200, 600, 1000에포크 사이에 결과입니다. 중간에 배당락이 있는 것을 볼 수 있기는 합니다만, 이런 것과 관계는 없이 일단 제대로 수익이 나오는 듯 해 보입니다.



이제 방금전 만든 모델을 가지고서 한번 백테스트에 들어가 볼 시간이 되었습니다.



기간도 전체 기간의 25%에 해당하는 기간으로 만들어 둔 다음에, 위 스크린샷처럼 기간을 올해 4월 27일 부터 12월 7일까지를 주도록 합니다.



그래서 위 스크린샷처럼 학습을 하는 부분을 주석처리를 해 주고나서, 위 스크린샷처럼 남은 부분의 주석처리를 해제해서 한번 테스트에 들어가 보도록 합니다.



일단 백테스트의 결과는 그다지 만족스럽지 않았습니다. 어찌된 것인지 수익이 나오기는 커녕, 엄청난 손해만 보는 모델이 만들어 진 것을 볼 수 있었습니다. 일단 이렇게 해서 손발을 pytrader로 하고, 머리를 RLTrader로 만드는 작업의 기초는 이제 만들어 졌다고 볼 수 있습니다. 남은 건 어떻게 머리를 교체해서 이어 붙일 것인가 하는 것 입니다.

반응형