프로젝트 & 생활

[자동매매] 25-04-08 램 업그레이드, DQN 모델 라이브 테스트

TaeGyeong Lee 2025. 4. 8. 22:13

재작년 학교를 다니면서 학기 프로젝트로 했던 걸, 취미 삼아 계속 해보기로 했습니다. 벌써 일년 반이 되었네요. 정말 시간 빠릅니다. 늘 두렵습니다. 

 

램 업그레이드 

가지고 있는 게이밍 노트북을 학습에 활용하기 위해 램을 업그레이드했습니다. 16기가에서 64기가로 업그레이드 했습니다. 아주 쾌적합니다. 사용한 램 정보는 아래에 기재했습니다. 이번에 처음 램 업그레이드 해본 김에 노트북 팬도 청소했습니다. 

 

DQN 모델 설계, 라이브 테스트 

램도 업그레이드 되었고, 그래픽카드도 3070Ti 입니다. DQN 모델을 적용하기에 이제 충분합니다. 램 업그레이드 후 짬짬히 시간을 내어 모델을 작성하고 테스트했습니다. 

일반적으로 하루 정도 학습을 하더라구요. 이게 빠른 건지, 느린 건지는 잘 모르겠습니다. 

저장한 학습 결과를 토대로 라이브 테스트를 진행했습니다. 역시나 형편없더라구요. 매수만 하는 도박쟁이가 또 탄생했습니다. 정말 사람이랑 똑같은 거 같아요. 보상 체계가 박살나 도박에 찌든 사람처럼 계속 매수에 매달립니다. 보상 체계를 현명하게 잘 설계하는 게 강화학습의 핵심 같습니다. 

번외로, 이젠 라이브 테스트 동안 그래프도 슬랙으로 받을 수 있도록 해봤습니다. 

 

모델 재학습, 매매하지 않은 모델 

리워드를 적정 값으로 바꾸고 천회 에피소드 학습을 진행했습니다. 학습 기간은 3일이 걸렸습니다. n백회 마다 리워드 결과를 그래프로 보내주는데, 학습이 유의미합니다. 학습을 거듭할 수록 3.5천억 손실으로 시작해서 0에 가까워지는 리워드를 얻고 있습니다. 

손실이 줄어드는 것은 좋으나 0에 수렴하는 것은 안 좋은 소식입니다. 저는 수익을 얻기 위해 이 프로젝트를 하고 있기 때문이죠. 학습한 모델로 라이브 테스트를 진행하니 매매를 하지 않습니다. 계속 관망만 하고 있었습니다. 이러다 굶어 죽겠습니다. 

이 과정에서 얻은 점 

  • 신경망 수가 지나치게 많다. 빠른 피드백, 수정을 반복하기 위해서는 줄일 필요가 있다. 
  • 현재 모델은 매매를 하지 않는 방향으로 발전하고 있다. 
    • 어떻게 개선할 수 있을까? > 매수에 대한 보상 증가 / 매 에피소드 마지막까지 가지고 있는 경우 강제 매도로 리워드 갱신 

 

고민거리 

액션의 종류는 총 3가지입니다. 매수, 중립, 매도. 그런데 저는 한번 매수하면 중립/매도만 할 수 있고, 한번 매도하면 중립/매수만 할 수 있도록 모델을 수정하고 싶습니다. 즉 State에 따른 액션 공간을 유연하게 조율하고 싶습니다. 

이게 많이 어렵습니다. 아직 고민거리입니다. 

전에 Q-learning 모델의 한계도 여기에 있었습니다. 액션 공간 자체에 수정을 가하기보단, 내부 조건문을 통해서 액션을 통제했었거든요. 모델이 잘못 학습했을 가능성이 매우 큽니다. 에이전트가 매수 액션을 취했는데 내가 강제로 중립을 취하도록 하면, 매수 액션에 대한 중립에 대한 리워드가 보상받는 거니 뭔가 잘못되어 가는 거죠. 

이 부분이 성능 향상에 큰 길목이지 않을까 싶습니다.