Reinforcement Learning with gymnasium

happiyoung_·2026년 3월 18일

강화학습

목록 보기
2/5

gymnasium

import gymnasium as gym

1. 다양한 실습 환경

* cartpole 환경

  • continuous state / discret env / reward (넘어지지않으면 1점, cart의 위치가 벗어났을때, 막대의 각도가 넘어갈때 끝)

* frozen lake

  • 구멍에 빠지지않고, goal에 도달하기
  • discrete state (16개의 공간) / discrete action (상하좌우이동) / slipperiness (환경을 stocastic하게 만들수있음)

* pendulum

  • 막대기를 돌려서 수직으로 세우는 것이 목표
  • continuous state (세워진각도, 가속도 값 코사인값) / continuous action (회전력의 힘) / reward (세워지면 +1, 기운 각도가 세운것에멀어질수록 -)

* nujoco : ant

  • 8개의 관절에 힘을줘서 앞으로 잘 가도록 하게 만드는 것이 목표
  • continuous state / continuous action

2. 기본적인 코드

  1. 환경을 준비하라 : 환경을 준비하고 초기 상태로 리셋 (make, reset)
  2. policy에서 action을 선택해서(action_space.sample) environment로 보냄(step(action) : step 함수가 action을 받아서 결과를 output) => loop
  3. 결과 출력 env.render 이후 env.close() : 환경 종료

3. 개인적인 환경을 만들고 싶을때 사용할 class

  • print(env.action_space)
  • print(env.observation_space) (state)
  • step() : action을 받아서 5개의 요소를 출력으로 뱉는다.
  • fundamental space : box(=continuous) / discrete / multidiscrete / ..
  • wrapper : gym을 만들고 wrapper로 감싸면 super class를 상속받아서 환경의 일부를 수정가능 (예를들어, 원래는 step 마다 0이었는데, step마다 -1이 되도록 변경 가능)

0개의 댓글