[강화학습 기초 3-3] 살사와 Q러닝
Q함수를 직접 학습하는 살사와 Q러닝, 온 폴리시와 오프 폴리시, 중요도 샘플링을 비교합니다.
강화학습 기초 시리즈 · 12편 중 7번째 글
연재 목차 보기
대표가 쓴 『개발자답게 코드로 익히는 강화학습』(프리렉, 2025)의 내용을 블로그에 맞게 정리해 연재합니다.
지난 편 끝에서 모델 프리 환경에서는 상태가치 대신 Q함수로 정책을 고친다고 했습니다. 이번 편에서는 Q함수를 직접 학습하는 두 알고리즘, 살사(SARSA)와 Q러닝을 비교합니다. Q러닝은 다음 장들의 DQN으로 바로 이어집니다.
살사: TD를 Q함수로
TD 식에서 V를 Q로 바꾸면 살사가 됩니다.
상태 S에서 행동 A를 하고, 보상 R을 받고, 다음 상태 S′에서 정책에 따라 다음 행동 A′를 고릅니다. 이 다섯 개(S, A, R, S′, A′)를 쓴다고 해서 SARSA라는 이름이 붙었습니다. 평가와 제어를 모두 Q함수 하나로 하고, 정책은 Q가 큰 행동을 고르도록 계속 갱신합니다.
온 폴리시와 오프 폴리시
살사는 행동할 때 쓰는 정책과 학습(평가)할 때 쓰는 정책이 같습니다. 이것을 온 폴리시(On-policy)라고 합니다. 단점이 두 가지 있습니다.
- 한 번 평가에 쓴 경험을 나중에 다시 쓰기 어렵습니다.
- 항상 지금 정책대로만 행동하니 다양한 행동을 시도하기 어렵습니다.
그래서 두 정책을 나누는 오프 폴리시(Off-policy)가 나왔습니다. 행동은 다른 정책(예: 가끔 무작위로 움직이는 정책)으로 하면서, 학습은 원하는 정책 기준으로 합니다.
중요도 샘플링
다른 정책으로 모은 데이터로 원하는 정책을 평가하려면 보정이 필요합니다. 두 확률의 비율을 곱해 주는 방법이 중요도 샘플링(Importance Sampling)입니다.
새 항로를 개척할 때 기존 항로의 풍부한 운항 기록(Q)을 쓰면서, 새 항로의 확률(P)에 맞게 비율로 보정하는 것과 같습니다. TD에서는 한 스텝 비율만 곱하면 되지만, MC에서는 에피소드 길이만큼 비율을 계속 곱해야 해서 값이 크게 흔들립니다. 그래서 MC와 중요도 샘플링은 실제로 잘 쓰지 않습니다.
Q러닝: 다음 행동은 가장 좋은 것으로 가정
살사와 딱 한 군데가 다릅니다. 살사는 다음 상태에서 실제로 고를 행동의 Q를 쓰고, Q러닝은 가장 큰 Q를 씁니다. 행동은 탐험을 섞어서 하더라도, 학습은 항상 "최선의 행동을 한다"는 기준으로 합니다. 행동 정책과 학습 정책이 다르니 오프 폴리시이고, 중요도 샘플링 없이도 됩니다.
| 살사 | Q러닝 | |
|---|---|---|
| 목표값 | R + γQ(S′, A′) | R + γmax Q(S′, a′) |
| 종류 | 온 폴리시 | 오프 폴리시 |
| 특징 | 실제 행동을 반영해 조심스럽게 학습 | 최적 정책을 바로 겨냥해 학습. 보통 더 좋은 성능 |
여기까지가 기초 알고리즘
DP, MC, TD, 살사, Q러닝을 실무에 그대로 쓰는 경우는 많지 않습니다. 상태가 많아지면 Q를 표에 담을 수 없기 때문입니다. 하지만 DQN, REINFORCE, A2C, PPO 같은 알고리즘은 모두 이 기초 위에 서 있습니다. 다음 장에서는 Q를 표 대신 담을 그릇, 인공신경망을 살펴봅니다.