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

BlackJack Example. Monte Carlo

by juhyeonglee 2021. 10. 23.
728x90
반응형

21.10.23

 

게임룰

게임룰을 보다 정확히 알기 위해 플레이영상보기

https://www.youtube.com/watch?v=qy-D3-xGmbo 

딜러를 포함한 모든 플레이어 2장씩 세팅하고 딜러는 한장만 오픈

이 후 플레이어부터 한명씩 hit, stay의 action을 통해 최종 sum 결정

모든 플레이어가 각자의 최종 sum을 만든 뒤

딜러의 나머지 카드를 오픈하고 딜러에게 정해진 규칙(Policy, 17미만 hit, 17이상 stay)에 따라 최종 sum결정

21에 더 가까운 플레이어가 승리.

 

과제의 목적

RL을 통해서 주어진 state에서 Optimal한 Policy를 구하는 것이 본 과제의 목적.

각각의 state에서 action마다의 value(Q function)를 구해야한다. MC의 방법으로.

 

 

DP로 접근할 수 없는가? MC로 접근해야하는 이유?

DP는 현재 state에서 다음 state로 transition될 확률을 모두 알고 있어야 한다. 하지만 블랙잭 게임에서 이 Transtion 확률(P)을 알기는 어렵다. 예를 들어보자. 현재 player의 card sum이 15라면, 그리고 그가 stay를 선택했다면, 딜러를 상대로 이겨 +1의 reward를 받을 확률은 얼마인가? 딜러의 showing card에 따라, 그리고 나머지 보이지 않는 카드에 따라, usable ace가 딜러에게 있는지에 따라 확률은 달라진다. 분명 True값은 존재하겠지만, 매우 많은 실험없이는 알기 힘든 값이다. 이전에 수행했던 Gambler's Problem의 경우에 P는 주어진 s,a,s'에 대해서 s' == s+a 일 때는 0.4, else 0.6으로 쉽게 정의할 수 있었던 것과 대비된다.

 


코드 고민

State를 어떻게 정의할까??? player sum과 dealer showing, usable ace. 특정 3개의 값을 하나의 state로??

Action은 hits or stay

Reward는 승리시에 +1 비길시 0 졌을때 -1

초기 policy는 어떻게 줄까?

 

First Visit MC prediction

먼저 First Visit MC방법으로 state-value를 찾는다. 사실 Optimal Policy를 구하기 위해서는 P와 state-value를 알아야 하는데 본 문제의 경우 P를 모르므로 P와 state-value 대신에 action-value를 알아야 한다. 왜 state-value를 구해야하는지는 아직 잘 모르겠다.

Reinforcement Learning an introduction 2nd edition p.92

코드진행이 뭔가 독특했다. 각 Episode에서 t를 거꾸로 진행하는 것이 독특했는데 손으로 코드진행을 가상으로 해보니 결과적으로 처음으로 방문된 State에 대해서만 Returun값을 G에 대입시킬 수 있었다.

그리고 Returns(s) 배열에 각 Episode에서의 Return값을 저장하고 최종적으로 모든 Episode에서의 특정 state에서의 Return을 평균으로 특정지을 수 있었다.

S_T-1은 해당 에피소드에서 유일한 state라고 가정하였고 S_T-2와 S_T-3는 같은 state라고 가정하였다.

21.11.01

env를 직접 여러 함수로 구현해놓으면 에피소드 만들기는 쉽다.

이후의 학습은 강의에서 배운 코드를 참고하여 학습시키면 될 것.

728x90
반응형

댓글