openai gym을 사용하여 강화학습(reinforcement learning) 환경 만들기
강화 학습 알고리즘 공부를 위해 미리 openai gym을 사용하여 환경을 만들어
보았다.
[에이전트 환경 루프]
[openai gym 설치]
- 'anaconda tensorflow-gpu 및 gym 설치' 포스트를 참조.
- 만약 위 설치 포스트로 부족하면 How to Install OpenAI Gym in a Windows Environment 참조
[Space Invaders 게임 환경]
import gym
import time # sleep(초) 사용을 위해
env = gym.make("SpaceInvaders-v0")
num_actions = env.action_space.n
for episode in range(10):
observation = env.reset()
for step in range(100000):
env.render()
time.sleep(0.01) # 화면 표시 딜레이를 위해
action = env.action_space.sample()
observation, reward, done, info =
env.step(action)
if(done):
print('episode ',episode,'
finished after ',step+1,'steps')
break
env.close()
- 게임 환경은 gym.make('게임이름')으로 불러온다.
- 화면 랜더링을 위해서 env.render()를 호출, 만약 랜더링 필요 없을 때는 호출 하지 않아도 된다.
- action은 임의로 env.action_space_sample()에서 가져온다. 추후 이 부분이 dqn Agent로 교체 될것이다.
- env.reset()는 환경을 초기화하며, 초기 observation을 반환한다.
- env.step()을 통해 action을 주면, action에 대한 observation, reward, doen, info가 반환된다.
- observation : 환경에대한 관찰을 나태내고, 환경에 따라 형태가 다른 객체이다.
- reward : float 형식, action으로 달성한 보상. 크기는 환경에 따라 다르다.
- done : boolean 형식, 에피소드 종료를 나타낸다.
- info : 디버깅에 유요한 정보, 떄로는 학습에 사용될 수도 있다.
전형적인 강화 학습을 위한 환경으로 Agent는 action을 선택하고, 환경은
observation과 reward를 반환한다. 이를 이용해 높은 reward를 얻는 정책 선택을
학습하게 된다.
Agent ----------
action ----------v
^----observation, reward ----
Environment
[관련 포스트]
anaconda tensorflow-gpu 및 gym 설치
openai gym Atari게임 환경의 v0, v4, Deterministic, NoFrameskip, ram, max_episode_steps의 의미와 차이
강화학습과 마르코프 결정 과정( MDP, Markov Decision process) 관계 요약
강화학습 (reinforcement learning) 정책 학습과 가치 학습 비교 - 정책 경사 (policy gradient)를 이용한 Atari Space Invaders
강화학습 (reinforcement learning) 정책 학습과 가치 학습 비교 - Deep Q Network를 이용한 Atari Space Invaders 와 CartPole
openai gym Atari게임 환경의 v0, v4, Deterministic, NoFrameskip, ram, max_episode_steps의 의미와 차이
강화학습과 마르코프 결정 과정( MDP, Markov Decision process) 관계 요약
강화학습 (reinforcement learning) 정책 학습과 가치 학습 비교 - 정책 경사 (policy gradient)를 이용한 Atari Space Invaders
강화학습 (reinforcement learning) 정책 학습과 가치 학습 비교 - Deep Q Network를 이용한 Atari Space Invaders 와 CartPole
댓글
댓글 쓰기