본문 바로가기
기계공학부 시절의 기록/강화학습일기

[MC BlackJack] 오류 수정 및 결과도출

by juhyeonglee 2021. 11. 13.
728x90
반응형

pi_table. action 초기화가 모두 0인지 확인하고 랜덤으로 바꾸기

왜 pi_table에 playersum이 11이 나오는지 확인하기

 

그런데 교재를 확인하니 Optimal policy 부분에 playerCardSum이 11부터 시작한다?!

 

policy improvement에서 코드오류발견 - 제대로 improve되지 않는 것 수정

playerSum이 12보다 작을 때도 그대로 state로 전달하는 오류 발견. 12보다 작으면 카드를 한 장 더 뽑았을 때 무조건 21보다 작으므로 hit을 자동으로 하여 12이상의 상황에서 시작해야함. 이를 반영하여 코드 수정.

not natural 상황, stack을 했을 때 비기는 상황을 만들어 놓지 않은 것 발견 - 수정

 

 

episode 5000000회 진행. 주피터 노트북으로 약 1시간 넘게 계산.

각 state(playerCardSum, dealerShowingCard, usableAce)에 따른 Optimal q value
각 state에서의 Optimal Policy

교과서에서의 그래프와 Opimal value는 거의 같은 모습을 보이지만 Optimal Policy는 좀 다르다. 하지만 비슷한 경향성은 보인다. 

 

추가피드백)

Optimal policy를 나타내는 그래프를 교재와 같이 나타내기 위해서는 에피소드를 진행할 때 따르는 policy를 playerCardSum이 20, 21일 경우에는 강제로 stick을 하도록 하면 된다.

그 이유는 20일 때, bust가 되지 않으면서 21이 되기 위해서는 ace카드를 얻어야 하는데 이는 확률이 매우 낮다. 때문에 매우 낮은 확률로 21이 되고 높은 확률로 bust가 되는 것을 피하기 위해서 20, 21일 때는 강제로 stick을 하도록 하는 것이다.

728x90
반응형

댓글