1편 : OpenAIRetro Contest 참여 및 소닉 설치방법

2018-04-09

Open AI Retro Contest 제 1편

강화학습을 구현해보며 ( 특히 슈퍼마리오를 해보며! )

” 2013년 딥마인드가 공개한 DQN알고리즘이 아타리같이 state와 action이 작은 환경에서만 잘 되는것이 아닐까? “

라는 의문이 들었습니다.

OpenAI가 최근 contest 를 열었는데, 이 contest로 인해 내가 가지고 있는 의문을 풀수 있을것 같아 참여하기로 결정하였습니다.

1. 대회 참여

OpenAI가 기존에 제공하던 gym 환경을 업그레이드 한

gym retro를 발표하였습니다.

링크 : https://github.com/openai/retro

기존의 gym 환경과 달라진점은:

아타리보다 더 큰 환경을 제공합니다.

예 : Sega Genesis/Mega Drive (via Genesis Plus GX)

세가세턴 게임 ( 소닉 등등 )

이에 관련하여, OpenAI가 컨테스트를 열었습니다.

이름은 OpenAI Retro Contest로 기간은

4월 5일 (오늘) 부터 6월 5일까지 두달입니다.

download

환경은 세가 게임의 소닉으로,

OpenAI에서 소닉 전문가가 플레이하여 제공한 모델을 사용하여 transfer learning을 하여 똑똑한 소닉을 만드는 것이 목표입니다.

“The contest will run from April 5 to June 5 (2 months) and winners will receive some pretty cool trophies.”

이겼을때 멋진 트로피도 준다고 합니다.

자세한 안내는 아래의 링크를 참고하시기 바랍니다.

https://contest.openai.com/

이 Contest에 참여하기 위하여,

모두의연구소에 참여하고 있는 강화학습 연구원들중 관심있는 사람들을 모집하였습니다.

  • 생각보다 많은 분들이 참여의사를 밝히셨고 대회기간이 두달밖에 남지 않아서, 모두의연구소 연구원분들중 딥러닝 또는 강화학습에 어느정도 익숙하신 분들로 선발하였습니다.

개인적으로 하시고 싶으신분들은 준비과정을 계속 공유할테니,

포스팅 한 자료를 보시면서 개인 또는 팀을 만들어 하셔도 좋을것 같습니다.

문의사항 있으시면 쪽지 부탁드려요!

2. 설치법

2.1 맥은 아래와 같이 Lua를 설치해야한다. brew install pkg-config lua@5.1

Install from binary

macOS

These wheels require macOS 10.11 or newer.

Python 3.5:

pip install https://storage.googleapis.com/gym-retro/builds/gym_retro-0.5.2-cp35-cp35m-macosx_10_6_x86_64.whl

Python 3.6:

pip install https://storage.googleapis.com/gym-retro/builds/gym_retro-0.5.2-cp36-cp36m-macosx_10_7_x86_64.whl

Linux

These wheels require glibc 2.14 or newer.

Python 3.5:

pip install https://storage.googleapis.com/gym-retro/builds/gym_retro-0.5.2-cp35-cp35m-linux_x86_64.whl

Python 3.6:

pip install https://storage.googleapis.com/gym-retro/builds/gym_retro-0.5.2-cp36-cp36m-linux_x86_64.whl

Windows

Python 3.5:

pip install https://storage.googleapis.com/gym-retro/builds/gym_retro-0.5.2-cp35-cp35m-win_amd64.whl

Python 3.6:

pip install https://storage.googleapis.com/gym-retro/builds/gym_retro-0.5.2-cp36-cp36m-win_amd64.whl

Git으로 clone 해온다.

sudo git clone https://github.com/openai/retro.git gym-retro
cd gym-retro
sudo pip3 install -e .

Detail

여기가 OpenAI github에 들어가있지 않은 내용인데, 에뮬레이터를 구동하기 위하여 소닉 게임 롬을 구입해야한다. ( 가격 5천 500원)

Detail 사항이 들어가 있는 링크 : https://contest.openai.com/details

http://store.steampowered.com/app/71113/Sonic_The_Hedgehog/

위의 링크로 들어가서 steam 가입후 다운로드.

가입한 뒤 결제를 한다. ( 윈도우전용이라고 되어있지만 무관하다. )

소닉 5,500원인데, 모든 게임이 다들어가 있는 메가팩을 구입할 필요는 없을 것 같다. ( 6만원 이상이었던걸로 기억 )

아래의 명령어로 스팀을 설치한다.

sudo dpkg -i steam_latest.deb 

Any digital items in this order are now registered to your account on Steam. To access your items, simply visit your library in Steam whenever you’re ready.

에서 library 선택을 하여 스팀을 업데이트 한다.

터미널에서 python3 -m retro.import.sega_classics 를 입력한다.

user name, password 입력

guard code를 입력하라고 나오는데, steam app을 다운받고 로그인하면 이메일로 가드코드를 받는다.

여기서 설치가 계속 안된다고 나올텐데,

내가 한 방법은

1.스팀 디렉토리로 들어간다

나의 경로:

/home/wonseokjung/.local/share/Steam/steamapps/common/Sega Classics

2.sudo python3 -m retro.import.sega_classics 이 실행될때,

3.uncompress roms디렉토리를 tmp에다가 python이 작동하는 중에 복사해버렸다.

아마 더 똑똑한 방법이 있을것 같다..

4.그리고 python3을 열고

import retro
env = retro.make(game='SonicTheHedgehog-Genesis', state='GreenHillZone.Act1')

로 로딩이 되는지 확인한다.

5.env.render()

로 gym 함수를 사용하여, 랜더가 되는지 확인한다!

gym 라이브러리를 사용하는 방법은 내가 예전에 포스팅한 글 참고

링크 :

https://wonseokjung.github.io//reinforcementlearning/update/openai-gym/

  • Reference

https://goo.gl/images/XDPtbC