강화학습/OpenAI gym 9

OpenAI gym Atari환경 검은 스크린 문제 해결하기

윈도10에서는 OpenAI gym을 사용하는데 여러가지 에로사항이 따르는 듯하다. 이번에 에러도 그 중 하나인데 다른 환경은 정상적으로 렌더링이 되는데 아타리환경의 경우는 렌더링이 안되고 다음과 같이 블랙&화이트와 노이즈가 낀 화면이 나옴. 사진은 나랑 동일한 증상이 있는 사람의 사진을 가져왔다. 막 이 따위로 나오는데 문제는 모든 아타리 환경에서 이런다는것... 이번에도 OpenAI gym의 문제를 해결해보자. 다음의 깃허브 링크를 참고해 오류해결 https://github.com/openai/gym/issues/596 rendering breaks after installing universe · Issue #596 · openai/gym Hi, I was working with Breakout-v0..

OpenAI gym을 이용해 Deep SARSA 구현하기

이번에는 신경망을 사용할건데 새로운 gym 환경인 OpenAI gym의 CartPole-v1을 사용함. 그리고 tensorflow를 설치해서 사용. Deep SARSA의 경우 원래 구현했던 SARSA 알고리즘에서 state가 실제로 받을 값과 예측한 값을 신경망의 정답과 예측값으로 주어 학습시키는 방법임. 일단 카트폴 예제가 무엇인지 한번 보자. 바로 이런 카트와 폴이 있을 때 카트를 좌 우로 움직여 폴이 떨어지지 않게 하는게 카트폴 문제의 핵심이라고 할 수 있음. Observation 0 : 카트의 위치 1 : 카트의 속도 2 : 폴의 각도 3 : 폴의 각속도 상태는 위와 같이 4개가 있고 각 상태마다 제한된 min max값이 있음. 여기서 확인 Action 0 : 카트를 왼쪽으로 밀기 1 : 카트를 ..

OpenAI gym을 이용해 Q-Learning 구현해보기

큐러닝의 경우 살사와 너무 유사해서 이번에는 다른 예제를 가지고 큐러닝을 해보자. 이번의 예제는 OpenAI gym의 Taxi-v1. 일단 Taxi-v1의 깃허브 코드를 보며 state와 action 등에 대해서 파악. Description 에피소드가 시작하면 택시는 랜덤한 위치에서 시작하고 승객은 랜덤한 location(위치, R,G,B,Y)에서 시작한다. 택시 드라이버는 승객의 위치로 가서 승객을 태우고 승객의 목적지로 간다. 여기서 목적지는 승객이 출발하는 위치를 제외한 나머지 위치 중 하나이다. 승객이 목적지에서 내리면 에피소드는 끝난다. observations 500개의 이산적인 states들이 있는데 25개의 taxi 위치, 승객의 위치(택시 안에 있는것도 포함) 5개 그리고 4개의 목적지를 ..

OpenAI gym을 이용해 SARSA 구현하기

점점 진화해서 OpenAI gym의 FrozenLake-v0를 이용해 SARSA를 구현해보자 얘는 앞의 시간차예측에서 정책을 사용하는 대신 각 action마다 큐함수를 사용하는 것임. 그리고 각 action을 선택할때마다 \( \epsilon \)-greedy action방법을 사용해 action을 선택함. SARSA의 경우는 온폴리시 시간차제어이기때문에 잘못된 큐함수를 학습할 수도 있음. import gym import numpy as np import random EPSILON=0.1 TIMES=1000000 ALPHA=0.1 GAMMA=0.9 이번에도 타임스텝만을 이용해 구현. 새롭게 엡실론이 필요한데 이는 위에 설명한 엡실론 그리디방법때문. env = gym.make("FrozenLake-v0")..

OpenAI gym을 이용해 TD prediction 구현하기

이번에는 OpenAI의 FrozenLake-v0를 이용해 temporal difference, 시간차 예측을 구현해보자 몬테카를로 예측의 경우 하나의 에피소드를 끝내야지 return값을 얻고 그걸 이용해서 value function을 업데이트하는데 시간차 예측의 경우 그렇지 않고 몬테카를로와 비슷하지만 각 타임스텝마다 value function을 업데이트함. 몬테카를로의 공식을 거의 그대로 사용하다보니 사실 구현도 그렇게 크게 다르진 않음 import gym import numpy as np import random GAMMA=0.9 POLICY = [0.25, 0.25, 0.25, 0.25] TIMES = 5000000 ALPHA = 0.1 언제나 먼저 나오는 선언부 이번에는 에피소드를 사용하지 않고 ..

OpenAI gym을 이용해 MonteCarlo prediction 구현하기

이번 구현에도 역시 OpenAI의 FrozenLake-v0를 이용해서 구현해보자 몬테카를로 예측의 경우 에이전트가 환경에서 실제로 받은 reward들의 각 state에서 return을 계산해 그것들의 평균으로 참 가치함수를 예측하는 것임. 이제 이 이론을 가지고 코드를 짜보자 import gym import numpy as np import random GAMMA=0.9 EPISODES=1000 POLICY = [0.25, 0.25, 0.25, 0.25] THRESHOLD = 1e-20 얼음호수 예제의 경우 action이 4개이고 각 action을 할 확률 그러니까 policy는 모든 action이 동일하다고 가정. 그리고 이 policy에 대한 예측을 시작. env = gym.make('FrozenLa..

OpenAI gym을 이용해 ValueIteration 구현하기

이번에는 OpenAI의 FrozenLake-v0를 이용해서 valueIteration을 구현해보자 import gym import numpy as np GAMMA=0.9 INIT_POLICY=[0.25,0.25,0.25,0.25] THRESHOLD = 1e-20 선언부는 별 차이가 없음 env = gym.make('FrozenLake-v0') FrozenLake 환경을 만들어주고 def value_iteration(env, policy): value_func = np.zeros(env.observation_space.n) after_value_func = np.copy(value_func) for t in range(1000): for state in range(env.observation_space.n..

OpenAI gym을 이용해 PolicyIteration 구현하기

OpenAI gym의 FrozenLake-v0를 이용해 PolicyIteration을 구현해보자 import gym import numpy as np GAMMA=0.9 THRESHOLD = 1e-10 INIT_POLICY=[0.25,0.25,0.25,0.25] EPSIODE = 100 일단 다음과 같이 선언함 감가율인 감마는 0.9로 업데이트하기 전의 가치함수와 업데이트 후의 가치함수를 비교해 임계값보다 같거나 낮으면 반복 중단 각 상태의 초기 정책은 모두 동일하게 설정 env = gym.make('FrozenLake-v0') 다음으로 환경을 만들자 # 현재 정책에 대한 참 가치함수를 리턴 def policy_evaluation(env, value_func, policy): after_value_func..

윈도우 10에서 OpenAI gym 설치 및 에러 해결

gym을 설치하는 방법은 매우 간단함. 일단 아나콘다를 준비하고 0. pip install gym==0.7.0 이렇게 설치 근데 책을 보며 연습하는데 CarRacing 예제가 실행이 안됨 import gym env = gym.make('CarRacing-v0') 오류 내용은 ModuleNotFoundError: No module named 'Box2D' 모듈이 없다고 해서 pip install box2d로 설치하려고했는데 이것도 안됨 그래서 스택오버플로우 다음 글을 참고 https://stackoverflow.com/questions/51811263/problems-pip-installing-box2d/52572657 Problems pip installing Box2D I'm learning Reinf..