2020. 11. 9. 16:52, 머신러닝/강화학습
OpenAI Gym
강화학습 알고리즘 테스트를 위한 환경을 제공해주는 라이브러리입니다.


설치
파이썬 환경은 pip 를 이용하면 간단하게 설치할 수 있습니다.
pip install gym
예제
환경을 불러올 때는 gym.make() 함수를 이용합니다.
그리드월드 환경인 FrozenLake 불러와 상태와 행동 크기를 확인합니다.
import gym
env = gym.make('FrozenLake-v0', is_slippery=False)
print(env.observation_space.n)
print(env.action_space.n)
16개의 상태를 가지고 4개의 행동을 취할 수 있습니다.
16
4
다음과 같이 에피소드를 반복할 수 있습니다.
for i in range(5):
state = env.reset()
done = False
while not done:
env.render()
action = env.action_space.sample()
state, reward, done, info = env.step(action)
print(state, reward, done, info)
매 에피소드마다 env.reset() 함수를 통해 환경을 초기화하고 해당 에피소드가 종료될 때까지 타임 스텝을 반복합니다. env.action_space.sample() 함수는 해당 환경에서 취할 수 있는 랜덤한 행동을 반환합니다. env.step() 함수는 행동을 받아 다음 스텝의 정보들을 반환합니다.
환경으로부터 받는 상태, 보상, 종료 여부, 기타 정보는 다음과 같습니다.
0 0.0 False {'prob': 1.0}
1 0.0 False {'prob': 1.0}
2 0.0 False {'prob': 1.0}
1 0.0 False {'prob': 1.0}
2 0.0 False {'prob': 1.0}
2 0.0 False {'prob': 1.0}
2 0.0 False {'prob': 1.0}
3 0.0 False {'prob': 1.0}
7 0.0 True {'prob': 1.0}
env.render() 함수를 호출하면 현재 상태를 렌더링합니다.

다음은 CarRacing 이라는 환경입니다.
import gym
env = gym.make("CarRacing-v0")
state = env.reset()
done = False
while not done:
env.render()
action = env.action_space.sample()
state, reward, done, _ = env.step(action)
print(action, state.shape, reward, done)
env.close()
다음과 같은 형태의 연속적인 행동 공간과 이미지에 해당하는 상태 정보를 반환합니다.
[0.81338143 0.07590234 0.50560546] (96, 96, 3) 7.1463768115942035 False
[-0.46199107 0.23878533 0.3978563 ] (96, 96, 3) -0.09999999999999964 False
[-0.1199649 0.10941219 0.68902004] (96, 96, 3) -0.09999999999999964 False

'머신러닝 > 강화학습' 카테고리의 다른 글
소프트맥스 회귀(Softmax Regression) (2) (0) | 2020.11.12 |
---|---|
Model-Free Prediction (0) | 2020.11.09 |
동적 프로그래밍(Dynamic Programming) (0) | 2020.11.06 |
벨만 방정식(Bellman Equation) (0) | 2020.11.04 |
마르코프 결정 프로세스(Markov Decision Process) (0) | 2020.11.04 |
Comments, Trackbacks