rltrader icon indicating copy to clipboard operation
rltrader copied to clipboard

테스트 실행, 성능에 대한 질문입니다.

Open jaylee4274 opened this issue 5 years ago • 4 comments

안녕하십니까, 테스트 하는 와중에 궁금한게 생겨 질문 드립니다.

  1. 테스트시에 관망만 하는 에이전트가 가끔 관측되는데 올바른 학습결과라고 볼 수 있을까요?

  2. 초판 책에서는 테스트시 할인률을 0으로 두었는데 dev에서는 0으로 두지 않는 차이에 특별한 이유가 있을까요?

  3. 테스트시 학습된 신경망을 가져오는데 같은 종목, 같은 신경망인데도 실행시마다 결과(PV)가 달라지는 증상을 발견했습니다.(이런 결과가 일반적인가요?)

  4. dev 모듈에서 테스트 실행시 신경망이 저장되지 않았다는 오류가 계속 뜨는데 검토 부탁드립니다! (학습할 때와 다르게 save_model 하는 부분에서 경로가 잘 안잡히네요)

질문이 다소 두서없고 많았습니다만... 항상 답변해주셔서 정말 감사드립니다. 건강유의하십시오. jaylee4274 드림. image

jaylee4274 avatar Mar 19 '20 18:03 jaylee4274

  1. 학습시에도 관망만 하지는 않았는지 확인해볼 필요가 있습니다. (학습이 제대로 되지 않아 매도만 하는 방향으로 된다면 보유 주식이 없는 상황에서 매도만하므로 관망만 하게 됩니다.)
  2. 초판에서는 PG(...에 가까운) 방식으로 강화학습을 해서 할인율을 특별히 두지 않았고 개정판에서는 Q 계산을 위해 할인율을 두었습니다.
  3. ... 뭔가 이상하군요;;
  4. 3번과도 연관이 있을것 같습니다. 이슈는 파악해 보겠습니다.

quantylab avatar Mar 29 '20 09:03 quantylab

@jaylee4274 테스트 하실때 사용하신 커맨드(옵션들)를 알려주시면 감사하겠습니다.

quantylab avatar Mar 29 '20 09:03 quantylab

이번에도 답변해주셔서 감사합니다. ! ^^

답변이 다소 늦어 죄송합니다.

저는 데이터를 일부 다르게 구성하고, 일부 옵션은 기본 값을 주고 했습니다. 먼저 선생님께서 올려주신 버젼에서 실행한 커맨드 입니다.

  1. dev와 동일한 코드를 실행, 005930, 19년에 활용 #Test005930DQN-50 !python main.py --stock_code 005930 --rl_method dqn --net lstm --num_steps 5 --output_name test2_005930 --num_epoches 1 --start_epsilon 0 --start_date 20190101 --end_date 20191231 --reuse_models --value_network_name dqn_lstm_value_005930_50 image image

  2. 제가 만든 버전 2년 학습, 19년 활용, 실행코드에 종목번호(결과출력, 종목코드, 신경망 이름 등)만 다르게 입력해주며 실험했습니다.

  • 파라미터 image

  • 실행 코드 (학습) #DQN !python main.py --stock_code --rl_method dqn --output_name --learning #PG !python main.py --stock_code --rl_method pg --output_name --learning #AC !python main.py --stock_code --rl_method ac --output_name --learning #A2C !python main.py --stock_code --rl_method a2c --output_name --learning #A3C !python main.py --stock_code --rl_method a3c --output_name --learning

  • 실행코드(테스트) #TestDQN !python main.py --stock_code --rl_method dqn --output_name test_ --num_epoches 1 --start_epsilon 0 --start_date 20190101 --end_date 20191231 --reuse_models --value_network_name dqn_lstm_value_`

#TestPG !python main.py --stock_code --rl_method pg --output_name test_ --num_epoches 1 --start_epsilon 0 --start_date 20190101 --end_date 20191231 --reuse_models --policy_network_name pg_lstm_policy_

#TestAC !python main.py --stock_code --rl_method ac --output_name test_ --num_epoches 1 --start_epsilon 0 --start_date 20190101 --end_date 20191231 --reuse_models --value_network_name ac_lstm_value_ --policy_network_name ac_lstm_policy_`

#TestA2C !python main.py --stock_code --rl_method a2c --output_name test_ --num_epoches 1 --start_epsilon 0 --start_date 20190101 --end_date 20191231 --reuse_models --value_network_name a2c_lstm_value_ --policy_network_name a2c_lstm_policy_`

#TestA3C !python main.py --stock_code --rl_method a3c --output_name test_ --num_epoches 1 --start_epsilon 0 --start_date 20190101 --end_date 20191231 --reuse_models --value_network_name a3c_lstm_value_ --policy_network_name a3c_lstm_policy_ `

jaylee4274 avatar Mar 29 '20 13:03 jaylee4274

혹시 모델 파일 참조가 안된건지 확인이 필요할것 같습니다. 학습시에도 --value_network_name--policy_network_name를 주면 학습된 모델이 models 폴더에 저장됩니다.

quantylab avatar May 31 '20 11:05 quantylab