글

라벨이 openai gym인 게시물 표시

openai gym Atari게임 환경의 v0, v4, Deterministic, NoFrameskip, ram, max_episode_steps의 의미와 차이

강화 학습(reinforcement learning) 환경으로 많이 사용되는 openai gym의 게임이름 뒤에 붙는 v0, v4, Deterministic, NoFrameskip, ram의 의미와 차이는 다음과 같다.  1. v0  25% 확률로 새로 입력 받은 action을 무시하고 이전 action을 반복한다. repeat_action_probability : 0.25 2. -v4 v0와 다르게 받은 입력을 그대로 사용한다. repeat_action_probability : 0  3. Deterministic 고정된 frameskip을 사용한다. space_invaders인 경우는 frameskip=3이고, 그 외는 frameskip=4이다.  만약 Deterministic, noFrameskip 이 없을 경우는 게임 환경마다 다르지만, 랜덤으로 2~4 프레임이 스킵 된다.   4. noFrameskip 프레임 스킵을 사용하지 않는다. 5. ram (210,160,3)형태의 이미지 대신 128바이트의 observation/state 데이터를 만들어 반환한다.  ram이 없는 경우는 210x160x3의 이미지가 observaion/state로 반환된다. 6. max_episode_steps 에피소드의 최대 steps를 나타낸다. 강화 학습 중 더이상 게임을 하지 않고 게임이 중단된다면, max_episode_steps를 조정할 필요가 있다.  max_episode_steps는 gym\envs\__init__.py를 직접 수정하던가 아니면 아래처럼 게임 환경을 만들고 수정할 수도 있다. import gym env = gym.make('SpaceInvaders-v0') env.max_episode_steps = 100000#원하는 steps를 설정 ...

강화학습 (reinforcement learning) 정책 학습과 가치 학습 비교 - 정책 경사 (policy gradient)를 이용한 Atari Space Invaders

이미지
정책 학습과 가치 학습 강화학습 (reinforcement learning)에서는 Agent를 정책 학습과 가치 학습 두가지 범주의 방식으로 학습시킨다고 한다. 정책 학습은 보상(reward)를 최대화하는 정책(policy)를 직접 학습하고, 가치 학습은 상태(status)와 행동(action)의 모든 가치(value)를 학습한다. 본 포스트에서는 gym을 이용한 Atari 게임 Space Invaders 환경에서 정책 경사를 이용해 정책을 학습하는 Agent를 만들고 학습이 잘 이루어지는지 테스트하였다. 정책 경사 (policy gradient)를 이용한 Atari 게임 Space Invaders 학습 openai gym Atari 게임 Space Invaders openai gum 설치 후 여러 게임 환경을 불러올 수 있다. 그중 본 포스트에서는 Space Invaders 사용했다. import gym env = gym.make("SpaceInvaders-v0") or  env = gym.make("SpaceInvaders-ram-v0") 위의 코드를 사용해 Space Invaders 게임 환경을 불러올 수 있다. 'SpaceInvaders-v0'는 (210,160,3) 형태의 이미지 데이터를, 'SpaceInvaders-ram-v0'는 128바이트 형태의 데이터를 observation으로 반환한다. 본 포스트에서는 'SpaceInaders-ram-v0'를 사용하였다. ipdb> observation array([[[ 0,  0,  0],         [ 0,  0,  0],         [ 0,  0,  0],         ...,...

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.cl...