- 본 게시글은 김성훈 교수님의 '모두를 위한 RL강좌' 정리글입니다.
- 개인적인 공부를 위해 작성한 글이기에 강좌 외 내용이 추가되었을 수 있습니다.
- 잘못된 내용, 오타는 지적해 주시면 감사하겠습니다.
강의 및 슬라이드 링크:
Lecture 3: Dummy Q-learning (table)
Lecture 2에서 Frozen Lake 게임을 살펴봤다. (보고 오기를 추천드립니다)
Agent는 정답을 모르기에, 어디로 가야 할지 전혀 감이 안 올 것이다.
그럼 어디로 이동해야 할까?
Random 하게 이동하자니 비효율적이다.
이때 생각나는 말이 있다.
Even if you know the way, ask. (아는 길도, 물어가라)
그것이 Q 러닝(Q-learning)이다.
Q 러닝은 모델 없이 학습하는 강화 학습 기법으로, 주어진 state에서 주어진 action을 수행하는 것이 가져다 줄 효용의 기댓값을 예측하는 함수인 Q-function을 학습함으로써 최적의 policy를 학습한다.
state s1에서의 policy는 다음과 같다.
max 값을 주는 방향으로 이동하는 것이 가장 합리적이다.
따라서 0.5라는 가장 큰 값을 주는 방향으로 이동한다.
일반화하면 다음과 같다.
(예제에서는 0.5가 나올 것이다)
하지만 우리가 궁금한 것은 어느 action을 선택할지이다.
argmax를 활용하여, Max Q를 반환한 action을 찾는다.
일반화하면 다음과 같다.
(예제에서는 right가 나올 것이다)
그럼 다음과 같은 질문이 생긴다.
'위 식에서는 Q 값이 계산되어 있잖아. 이런 Q는 어떻게 찾을까?'
가장 먼저 Q가 존재한다고 가정 아니, 존재한다고 믿어야 한다.
다음으로 현재 상태를 살펴본다.
현재 state s에 있고 action a를 취하면 s'으로 이동한다. action a를 취하면 reward r을 획득한다. 그리고 Q에는 새로운 Q(s', a')이 존재한다. (다음 단계의 state s'의 reward를 안다고 가정한다)
Q(s', a')을 Q(s, a)로 표현하면 다음과 같다.
다음으로 reward r을 살펴본다.
전체 reward는 다음과 같다.
t 시점에서의 총 reward는 t 시점의 reward부터 마지막 n 시점까지의 reward이다.
마찬가지로 t+1 시점에서의 총 reward는 t+1 시점의 reward부터 마지막 n 시점까지의 reward이다.
(다음 state에서의 reward를 안다고 가정하기에, reward는 뒤에서부터 확인하는 느낌이다)
중복되는 항목을 일반화하면 다음과 같이 표현가능하다.
예제를 통해 위 프로세스의 구현을 살펴보자.
처음에는 모든 Q 값을 0으로 설정한다.
모든 Q값이 0이기에, 정답으로 가는 Q라도 여전히 0으로 업데이트된다.
Q 값은 r과 다음 state의 max Q의 합인데, 둘 다 0이기 때문이다.
0 = 0+0
하지만 state가 목적지 이전에 도달하면 달라진다. (초록색 칸의 왼쪽)
목적지에서의 reward는 1을 반환하기 때문이다.
1 = 1+0
최후 state의 Q가 1로 업데이트되었다. 따라서 이전 state들도 함께 업데이트된다.
1 = 0+1 (여기서는 reward가 아닌, 다음 maxQ 값)
1번의 진행을 통해 각 Q 값은 다음처럼 업데이트된다.
위의 단계를 반복하면, Q의 기댓값이 계산된다.
과정을 일반화하면 다음과 같다.
참고로 해당 Q 러닝은 'Dummy' Q 러닝임을 유의하자.
이는 다음 시간에 살펴본다.
'공부 정리 > Reinforcement Learning' 카테고리의 다른 글
모두를 위한 RL강좌: Lecture 7 (1) | 2024.02.05 |
---|---|
모두를 위한 RL강좌: Lecture 5, 6 (0) | 2024.02.05 |
모두를 위한 RL강좌: Lecture 4 (0) | 2024.02.02 |
모두를 위한 RL강좌: Lecture 1, 2 (0) | 2024.02.02 |