ChaninEom / reinforcement_on_aigym_practice

Open AI Gym을 통한 강화 학습 공부
0 stars 0 forks source link

FrozenLake-v1 : 의도하지 않은 action 발생 #1

Open ChaninEom opened 2 years ago

ChaninEom commented 2 years ago

FrozenLake-v1 환경에서 q-learning 학습 중 버그 발견 np.argmax를 통한 action 결정은 항상 정확하지만, next_state의 결과가 해당 action의 결과가 아닌 경우가 많음 또한, 기본적으로 action은 0 : left, 1:down, 2:right 3 : up으로 정의되어 있는데 매번 달라지는 문제 발생

ChaninEom commented 2 years ago

해당 문제는 env를 생성할 때 해당 env class의 init 변수 중 is_slippery = True로 설정되어 있기 때문이었음 즉, FrozenLake는 기본적으로 특정 확률로 미끄러지게 설계되어 있음 때문에 action결과와 다른 state로 가는 일이 발생

이를 해결하기 위해선 register의 속성을 변경해야함 from gym.envs.registration import registry, register 를 import 및 아래 코드를 통해 register의 is_slippery 를 False로 변경해주면 됨

image

미끄러지는 것 까지 고려한 q-learning은 지금 수준에서는 어려움이 있을 것 같음. 때문에 현재는 이상적인 환경에서 학습 진행 예정