본문 바로가기
Deep Learning/RL

[모두RL-④] Stochastic (non-deterministic)

by 룰루셩 2022. 3. 7.

2022.03.07 - [Deep Learning/RL] - [모두RL-③] E&E과 discounted future reward에 이어서 김성훈 교수님의 모두를 위한 RL강좌 lecture 5를 듣고 작성하였다.

 


지금까지 Frozen Lake에서 Q learning을 하였을때 조건은 deterministic한 환경이었다. 즉, 항상 일정한 결과가 나오고 내가 하려는 a action을 하면 a를 행동한다. non-deterministic, stochastic하다는 것은 a라는 행동을 한다고 해서 a라는 행동을 못할수도 있다는 것을 의미한다. 그리고 똑같이 행동을 해도 똑같은 위치에 못갈수도 있다. 

Frozen Lake에 바람이 많이 불어서 Agent가 오른쪽으로 가려고 하는데 바람 때문에 못가고 왼쪽이나 아래쪽으로 갈수도 있다. 

 

이 환경은 Frozen Lake 환경을 설정할 때(register 할 때) is_slippery를 True로 하면 stochastic한 환경이, False로 하면 deterministic한 환경이 설정된다.

 

안타깝게도, 우리가 이전에 작성한 Q-learning으로는 stochastic한 환경에서 작동을 잘 하지 못한다. (형편없다..)

 

 

해결방법

Q의 말 10퍼센트만 듣는다!
아주 조금만 Q의 말을 듣고 90퍼센트는 내가 하고싶은대로 한다.

수식으로 살펴보면 다음과 같다.

$\alpha = 0.1$

$Q(s,a)$가 우리의 고집이고 (우리의 고집 90퍼센트 반영),

$[r+\gamma(\max_{a'}Q(s', a')]$가 우리가 이전에 Q의 말을 듣고 업데이트 한 건데, 이를 10퍼센트만 반영하여 Q를 업데이트 한다.

이때, $\alpha$를 learning rate라고 한다.

 

 

이렇게 하면 0.015→0.6정도로 성능이 나아진다.

'Deep Learning > RL' 카테고리의 다른 글

[모두RL-⑥] DQN  (0) 2022.03.07
[모두RL-⑤] Q-Network  (0) 2022.03.07
[모두RL-③] E&E과 discounted future reward  (0) 2022.03.07
[모두RL-②] Dummy Q-Learning (table)  (0) 2022.03.06
[모두RL-①] 강화학습 소개  (0) 2022.03.04

댓글