close_btn
로그인, 회원가입후 더 많은 혜택을 누리세요 로그인 회원가입 닫기

김성훈 교수님께서 작성한 첫번째 예제 코드는 키보드 조작을 통하여 action을 선택하고 다음 상태로 천이하는 과정을 거치게 됩니다.

키보드 코드 관련 코드가 들어감으로 인해서 코드가 복잡해져서 처음 접하는 분들이 조금은 난해하게 느껴지며, 키입력에 대한 리눅스 OS, 윈도우 OS, 맥 OS가 각기 다름으로 인해서 오는 설치의 어려움이 있습니다.

그래서 키보드를 사용하지 않고 램덤하게 action을 선택하는 방식으로 소스를 수정하여 전반적인 강화학습의 코드 흐름을이해할 수 있도록 하였습니다.

 


 

1. 간단한 예제

 

 
import gym
env = gym.make("FrozenLake-v0")
env.reset()

for _ in range(1000):
    env.render()
    action = env.action_space.sample()
    env.step(action)

 

state, reward, done, _ 

파일을 카피하여 이름을 바꾼 후에 위의 빨간색 부분을 추가 합니다.

동작을 시켜보면 1000번 까지 동작을 하고 끝나는 방식입니다.

env.action_space.sample() 함수를 사용하여 랜덤하게 action을 선택하고 env.step(action)을 사용하여 선택된 action을 가지고 한 스텝 실행을 시켜 다음 상태로 이동 합니다.

 


2. 임무를 완수하면 끝내기

 

 
import gym
env = gym.make("FrozenLake-v0")
env.reset()

done = None
while not done:                            # 게임 한판
    env.render()
    action = env.action_space.sample()
    state, reward, done, _ = env.step(action)

 

env.step(action)의 실행결과 리턴 중에 done을 업데이트 한다.

done의 결과가 1이면 실행 종료

 

 


3. 에피소드 1000번 수행하고 끝내기

 

 
import gym
env = gym.make("FrozenLake-v0")

num_episodes = 1000
for i in range(num_episodes) : # 학습을 num_episodes 만큼 시키면서 업데이트
    env.reset()​
    done = None
    while not done:                            # 게임 한판
        #####env.render()                      # 속도를 위해 주석 처리함
        action = env.action_space.sample()
        state, reward, done, _ = env.step(action) 
    env.render()                               # 에피소드가 끝날 때 마다 상태 확인

 

에피소드를 100번 수행하고 끝낸다.

실패인 경우와 성공인 경우가 랜덤하게 발생할 수 있다.

에피소스가 끝날 때 마다 렌더링을 한다.

 


추가 적을 해볼 것

 

1. print를 사용하여 각 상태 모니터링

 

 

번호 제목 글쓴이 날짜 조회 수
공지 RL4RWS 이용 안내 모두의연구소 2017.09.04 1490
39 2월 20일 세미나 진행 내용 cosmos 2018.02.20 46
38 [아두이노] 초음파 센서 연결 예제 [2] file 쪼알 2018.02.16 35
37 2월 13일 세미나 진행 내용 cosmos 2018.02.13 42
36 강화학습 실습 7. FrozonLake : Q-network cosmos 2018.02.11 23
35 강화학습 실습 6. Tensorflow 설치 및 간단한 테스트 cosmos 2018.02.11 44
34 강화학습 실습 5. FrozonLake - Q-Learning on Stochastic World cosmos 2018.02.09 22
33 강화학습 실습 4. FrozonLake - Q-Learning : Exploit & Exploration cosmos 2018.02.09 17
32 강화학습 실습 3. FrozonLake - dummy Q-learning cosmos 2018.02.09 30
» 강화학습 실습 2. FrozonLake 동작 시켜 보기 cosmos 2018.02.09 36
30 강화학습 실습 1. Python과 OpenAI Gym 설치 및 간단한 동작 cosmos 2018.02.09 61
29 1차 아두이노 및 부품 리스트 file cosmos 2018.02.07 47
28 2월 6일 세미나 진행 내용 cosmos 2018.02.06 53
27 아두이노 기반 실물 제작 발표자료 file cosmos 2018.02.02 43
26 아두이노 설치 및 초음파센서, 모터, 블루투스 예제 사이트 정리 cosmos 2018.02.01 54
25 향후 일정 정리 file cosmos 2018.01.31 108
24 1월 30일 세미나 진행 내용 cosmos 2018.01.31 21
23 강화학습의 진화 : 3차원 및 물리환경의 적용 - LG blog file cosmos 2018.01.26 65
22 1월 23일 세미나 진행 내용 cosmos 2018.01.23 67
21 Autonomous self-learning systems 영문 번역 1차 file cosmos 2018.01.22 54
20 이산 시간 확률 과정, 마르코프 체인, 마르코프 의사결정 과정 관련 사이트 정리 cosmos 2018.01.18 164