Reinforcement Learning 을 스터디해 나가기 위한 첫 단계에 등장하는 Frozen Lake 텍스트 유형 게임을 소개해보자.
인터넷에 많은 자료가 널려 있음에도 불구하고 막상 사용자가 해보면 어딘가에 장해가 있어 성공하지 못하는 경우를 일주일 가량 겪었다. 흔히 부딪치는 이런 류의 문제는 사실 특별한 해결책이 없으나 여러번 시행착오를 하다보면 특히 운이 좋을 경우 그 해답을 발견하곤 한다. 그다지 어려운 코드 작성은 아니지만 적어도 reinforced learning 코드 작성을 위해서는 한번 다루어 보아야 할 코드이다. 특히 이 주제를 처음 다룰 경우에는 is_slippery=False 조건하에서 움직이는 방향을 지정해 줄 경우 확정적으로 그 방향으로 움직인 결과를 얻어낼 수 있어야 게임이 가능해진다. 하지만 이 조건을 해제하여 is_slippery=True 로 설정할 경우 좌우상하 어느방향으로 미끌어질지 방향이 불분명한 확률적으로(probabilistic) 불확실성이 높은 stochastic 한 과정이 됨에 유의해야 하며 별도로 코드 작성법을 검토하기로 한다.
영상 도중에 아나콘다 프롬프트창 에서 OpenAI GYM 설치 해설이 나오는데 그 구체적인 명령은 다음과 같으니 참고하시기 바란다.
conda install -c conda-forge gym
영상 데모도 포함되어 있지만 텍스트 게임은 코드를 실행시키면 키보드에서 0,1,2,3을 눌러 게임이 실행된다는 점에 유의하자.
#frozen_02.py
import gym
env = gym.make('FrozenLake-v1',is_slippery=False)
for i_episode in range(1):
observation = env.reset()
for t in range(100):
env.render()
#action = env.action_space.sample()
action = int(input("Enter a #:left-0 down-1 right-2 up-3:"))
print(action)
observation, reward, done, info = env.step(action)
if done:
print("Episode finished after {} timesteps".format(t+1))
break
env.close()
'강화 학습(Reinforcement Learning)' 카테고리의 다른 글
강화학습 Stochastic FrozenLake-v3 DQN (0) | 2022.01.07 |
---|---|
강화학습 Stochastic FrozenLake-v3 Low Pass Filter 방식 알고리듬 적용 (0) | 2022.01.07 |
강화학습 Deterministic FrozenLake-v3 예제 게임규칙 (0) | 2022.01.06 |
강화 학습 OpenAI GYM 시작 FROZEN LAKE-V1 예제 게임규칙 소개 (0) | 2022.01.04 |
강화학습(Reinforcement Learning) 코드작성을 위한 OpenAI GYM 라이브러리 설치 (0) | 2022.01.03 |