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

[MC Blackjack-최종] 코드작성과 결과코드 및 실행영상

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

** 코드

 

GitHub - needs-searcher/RL_Example: This is my RL Example codes

This is my RL Example codes. Contribute to needs-searcher/RL_Example development by creating an account on GitHub.

github.com

 

** 실행영상


 

# 기본적인 몇가지 함수는 gym 코드 참고하였다.

# gym을 이용하지 않고 게임진행(episode_generate) 코드를 짜기 위해서 새롭게 코드를 작성하였다.

이에 필요한 딜러턴에서 딜러카드 score계산 함수, 

학습에 필요한 pair(s,a) 중복 확인 함수, 

policy_improvement함수를 만들었다.

 

 

# 중요하고 어려웠던 점은 dictionaries를 초기화하고 다루는 것이였다.

이전 글에서 공부하였던 것을 연습을 통해서 나에게 필요한 방법으로 발전시켰다.

 

 

 

# gym의 코드를 보면서 매우 간결한 코드스타일도 보며 공부하고 return과 break의 쓸모를 확실히 알 수 있었다.

return 간결한 코드
return 1 in hand and sum(hand) + 10 <= 21 # True or False 반환

return if is_bust(hand) else sum_hand(hand) # if를 만족하면 0을 반환 그렇지 않으면 else 아래 반환

 

return과 break

참고블로그

break는 가장 가까운 반복문 하나를 탈출
return은 함수자체를 탈출

 

while ~ : ~가 True인 동안 반복
while not ~ :  ~가 False일 때 반복, True가 되면 멈춤
if not ~ : ~가 False라면 수행

 

 

# 이전에 잠깐 들었던 자료구조 수업이 큰 도움이 되었다.

 

[코드 구조 구상 메모]

 

추가피드백)

학습 횟수를 에피소드를 기준으로 하여 많이 학습시키기보다 모든 state에 대한 방문횟수를 100이상 혹은 200이상처럼 학습시키는 것이 더 정확한 값을 얻을 수 있다.

728x90
반응형

댓글