AI/강화학습

4. Q-learning exploit&exploration and discounted reward

코딩 코딩 코오딩 2022. 5. 16. 16:36

이번장에서는 Q-learning을 완벽하게 이해를 해보겠다.

이전장에서 배운 Q-learning은 앞에 Dummy 가 있다.

Dummy 는 부정적인 어조이기 때문에 완벽하지 않은 것을 말한다.

우리가 배운 Q-learning은 보상에 앞으로 받을 보상의 그다음 단계에서 얻을 최대 값으로 진행을 했다.

하지만 이방법에는 문제가 있다. 무슨 문제가 있냐면 항상 가장 큰 값을 따라 움직이다보니 가던 길만을 중심으로 학습을 하게 된다. 새로운 길에 대한 탐사가 이루어지지 않는 문제가 발생한다. 

따라서 우리는 이문제를 exploit vs exploration의 문제라한다. 

이러한 아이디어를 식당을 예를 들어 사용해 보자. 

우리 동네에 위와 같은 식당들이 존재한다. 식당들은 아직 가보지 않았기 때문에 모두 초기에는 0점이다. 우리가 이러한 식당을 방문한 후 점수를 준다고 해보자. 그럼 우리가 이러한 식당을 랜덤하게 간다면 너무 맛없는 식당에 갈수도 있고 맛있는 곳만 간다면 그 곳만 가는 문제에 빠질 수 있다. 중간 중간에 메뉴도 바뀌고 그렇다고 할때 어느 한곳만 가는 것이 문제가 될수 있기 때문이다.

그러한 후 어느 시점에서 위의 오른쪽 그림과 같은 점수를 어느정도 만들었다고 해보자. 이러한 시점에서 다양하게 가는 방법은 평일에는 그냥 높은 점수의 식당을 가고 주말에는 다른곳을 탐험해보는 것이다. 이렇게 접근하게 되면서 접근의 다양성이 생기게 된다. 

 

이것을 수식으로 옮겨보면 우리는 e-greedy라는 용어로 표현을 하고 어떤 e라는 값을 선정한다. 그럼 랜덤한 값이 e보다 낮으면 아무곳이나 가보고 높으면 그냥 제일 높은 점수의 곳을 가는 것이다. 왼쪽 그림에서는 0.1 이라는 값을 선정했기 때문에 10% 정도 랜덤하게 간다는 것이다. 그렇지만 너무 고정 값으로 하는 것도 문제이다. 왜냐하면 우리가 한동네에 10년 살았는데 저렇게 할 필요는 없기 때문이다. 그렇기 때문에 우리는 lerning rate에서 배운 개념인 decay라는 방식을 이용하면 더욱 효율적이게 사용할 수 있다. 시간이 지날수록 e의 값을 낮추는 방법이다.   

exploit vs exploration의 다른 방법으로는 노이즈를 랜덤하게 더하는 것이다. 우리가 이미 알고 있는 값들에 랜덤한 값을 더해버리는 것이다. 이게 무슨 소리지? 이럴수 있는데 이게 다 다양성을 증가 시켜주는 방법이다.

이 방법 또한 마찬가지로 위의 시간이 지날수록 랜덤한 값의 영향력을 줄이는 방법을 사용한다. 하지만 이 방법 또한 e-greedy와는 약간의 차이가 있다. 노이즈를 더한거기 때문에 완전히 점수가 높은 식당을 안갈수도 있지만 대부분 높은 점수의 식당을 가는 경우로 존재할 수 있기때문이다. 

지금까지 배운 것으로 우리는 a(action)을 선택할 수 있다. 랜덤하게 가거나 아니면 가장 높은 점수로 가거나

하지만 우리의 agent는 갈림길에 서게 된다. 오른쪽 그림을 보면 알겠지만 g(goal) 에 가는 방법은 2가지이다. agent가 갈림길에서 우리가 선정한 점수는 모두 1 이기 때문에 많은 고민을 할 것이다. 

이러한 문제를 해결하기 위해 나온 것이 

discounted reward이다. 나중에 받을 reward를 조금 낮추는 방법이다. 이렇게 하게 된가면 현재 받을수 있는 reward가 최대의 값이 되는 쪽을 선택하게 될것이다. 

maxQ의 식에 감마를 곱해서 해결하면 된다.

 

그럼 아직까지 직관적으로 이해가 안될수 있으니 하나하나 해보자. 마지막 지점에 agent가 도착을 했을 때 마지막 칸의 reward는 1이 된다. 그럼 다양한 방향으로 진행을 하게 된다면 0.9와 0.72의 지점이 생기게 된다.

이러한 점을 이용해서 우리는 가장 최선의 방법을 선택하는 방식을 알게 되었다.

 

그럼 이번 장 정리는 끝!

 

반응형