이번 장에서는 지금까지 공부한 Q-learning을 더욱 확장 시켜볼 것이다.
우리는 지금까지 Frozen Lake라는 게임을 이용해 강화학습을 이해했다. 근데 여기서 의문을 가지는 사람이 존재 할수 있다. 아니 왜 Frozen Lake로해? 그냥 맨땅에 구멍 뚫고 설명하면 되는거 아닌가? 라고 생각을 할수 있다.
우리는 이번장에서 왜 Frozen Lake로 설명을 했는지에 대하여 지금까지 빌드업을 알수 있다.
그럼 설명을 시작하겠습니다.
현재는 agent가 s라는 위치에 있으며 상황은 아주 추운 얼은 호수의 위에 있으며 바람도 많이 불고 아주 미끄러운 상태이다. 어디가 구멍인지 골인지도 모르는 상태이다. 만약에 agent가 이때 오른쪽으로 움직인다면 어디로 갈까? 이전의 상황이라면 당연히 오른쪽으로 욺직인다고 생각하겠지만, 지금 상황은 바람도 많이 불고 아주 미끄러운 상황이다. 이때 agent가 움직인다면 2단계를 이동할수도 있고 오른쪽으로 가야하는데 아래로 갈수도 있는 상황이다.
이런 상황을 일정하지 않은 상황이라 할 수 있다. 일정한 상황을 Deterministic 이며 일정하지 않은 상황을 Stochastic 이라한다. 이러한 개념을 Q 함수에 적용해보겠다.
우리는 Q라는 함수를 알고 있으며 우리가 원하는 방향을 알려주는 용도로 사용할 수 있다. 하지만 우리가 Q라는 함수가 알려준 방식으로만 움직이면 확실하게 성공할 수 있을까? 물론 성공할 가능성은 있지만 때로는 다른 방향으로 움직이는것이 더 좋은 선택이 될수 있다.
그럼 해결책은 무엇있가? 우리는 일단 Q를 사용할 것이다. 하지만 모든 정보를 다 활용하는 것(Q(S'))은 아니고 조금만 참고할 것이다. 그리고 우리가 가지고 있는 Q(S)는 그대로 사용 할 것이다. 쉽게 말해서 다른 사람의 조언은 조금만 참고하고 내 의견을 중심으로 움직이겠다는 것이다.
이걸 우리 인생으로 비유하자면 우리는 여러명의 멘토를 둬야한다는 것과 비슷하다. 한명의 멘토가 조언을 해줬다고 그대로만 하는 것은 안좋은 방법이기 때문이다. 그멘토가 했던 방법을 그냥 따라한다고 성공한다는 보장이 없기 때문이다.
우리가 움직였을 때 Q함수는 어디로 가면 max가 어딘지 알려준다. 하지만 우리는 모든 의견을 반영하지 않고 10%정도만 받아들이고 나머지는 내 의견대로 움직이는 것이다. 이걸 수식으로 옮겨주면
우리가 알고 있는 식은 위의 것이지만 알파라는 learning rate를 식에 추가하여 활용해 볼 것이다. 우리는 Q의 조언은 10% 정도 반영하고 우리의 의견은 100-10 = 90 해서 90%정도 고집을 부려보겠다는 것이다. 그냥 더하기만 한다면 Q의 값은 계속 커지기만 하는 문제가 있을수 있다.
따라서 이렇게 정리하면 위와 같이 가능하다. 하지만 위의 수식이 지져분할 수 있다. 그러므로 우리는 아래와 같은 방식으로 정리를 하는 분들도 있다.
그럼 지금까지 공부한 것을 다시 정리해보겠다.
이제 최종적인 Q 알고리즘이다.
1. 모든 테이블을 0으로 채운다.
2. 환경을 만들어 초기 상태를 가져온다.
3. 이제 무한으로 액션을 취한다.
3-1. exploit vs exploration을 이용해 액션을 취한다.
기억이안난다면 앞의 장을 참고하자.
3-2. 상을 받고
3-3. S' 을 받아온다
3-4. 이제 Q를 업데이트하는데 앞서 배운 식을 해오면된다. (새로운 이야기는 조금 참고한다.)
그럼 이러한 결과는 수렴할까? 라는 의문이 들수 있다. 결과가 완벽할 수 있을까?
실제 값 Q와 Q햇과 같아질까? 라는 의문이 드는데 결국에 많은 학습을 하게 된다면 예상값과 결과 값이 같아 진다는 것을 이미 증명을 해놓았다고 한다.
이번장 끝!
'AI > 강화학습' 카테고리의 다른 글
6. Q-Network (0) | 2022.05.16 |
---|---|
2. Playing OpenAI GYM Games (0) | 2022.05.16 |
4. Q-learning exploit&exploration and discounted reward (0) | 2022.05.16 |
3. Dummy Q-learning (0) | 2022.05.15 |
1. 강화학습 (Deep Reinforcement Learning) (0) | 2022.05.15 |