기존 Q-learning은 타깃 업데이트에 maxₐ′ Q(s′, a′)를 사용함. → 이는 가치가 과대 추정(overestimation)될 수 있음. → 이를 해결하기 위한 방법이 Double Q-learning임.
2. Double Q-learning
핵심 아이디어
두 개의 Q함수 Q₁, Q₂를 사용
한 쪽은 행동 선택에, 다른 한 쪽은 가치 평가에 사용
각 스텝마다 Q₁ 또는 Q₂ 중 하나만 업데이트함
알고리즘 구조
모든 s∈S, a∈A(s)에 대해 초기화:
Q_1(s,a), Q_2(s,a) ← 임의의 값
Q_1(terminal, a) = Q_2(terminal, a) = 0
각 에피소드에 대해 반복:
S를 초기화
각 스텝에 대해:
- Q₁+Q₂를 합해 ε-탐욕정책으로 행동 a 선택
- 행동 후 보상 r, 다음 상태 s′ 관측
- 확률 0.5보다 작다면:
Q₁(s,a) ← Q₁(s,a) + α[r + γ·Q₂(s′, argmaxₐ′ Q₁(s′, a′)) − Q₁(s,a)]
- 그렇지 않으면:
Q₂(s,a) ← Q₂(s,a) + α[r + γ·Q₁(s′, argmaxₐ′ Q₂(s′, a′)) − Q₂(s,a)]
s ← s′
종료 상태에 도달하면 에피소드 종료
특징
Q₁과 Q₂는 서로 독립적으로 유지되면서도 상호 보완적임
타깃 계산 시 argmax는 자신이지만, 값은 반대편 Q함수를 사용
과대 추정 억제 가능
3. Actor-Critic
🎯 그림 2.71 액터-크리틱의 구조 설명
1. Agent 내부 구성
✅ 액터 (Actor) — Policy 모듈
역할: 현재 상태(state) 에서 행동(action) 을 선택함
선택 기준: π(s,a)라는 정책에 따라 확률적으로 선택 (예: 소프트맥스 함수 사용)
✅ 크리틱 (Critic) — Value Function 모듈
역할: 선택된 행동의 결과(보상)를 보고 TD 오차 δₜ를 계산
δₜ는 다음 식으로 정의:
δₜ = rₜ₊₁ + γ·V(sₜ₊₁) - V(sₜ)
δₜ를 이용해:
Value Function V(s) 학습 (정확한 가치 추정)
Policy(π) 의 확률 조정 (좋은 행동은 강화, 나쁜 행동은 억제)
2. 전체 흐름 정리
환경으로부터 현재 상태(state) 를 받아옴
액터가 π(s,a)를 이용해 행동 선택
환경에 행동 전달 → 보상(reward) 및 다음 상태(state') 반환
크리틱이 TD error δₜ 계산
크리틱은 V(s) 업데이트, 액터는 π(s,a) 업데이트
다음 상태를 받아 다음 스텝 반복
🧠 이 그림이 말하고자 하는 핵심
정책(π) 을 직접 학습함 → 이게 Policy Gradient 계열의 핵심
가치 함수는 평가자 역할만 수행함 (정책을 직접 만들지 않음)
TD error가 액터와 크리틱의 연결고리 → 행동의 좋고 나쁨을 알려주는 신호
📌 시험에서 나올 수 있는 질문 예시
이 구조에서 TD error는 어떤 역할을 하는가? → 정책과 가치 함수 업데이트의 기준 신호이다. 좋은 행동은 강화, 나쁜 행동은 억제.
액터와 크리틱의 관계는 무엇인가? → 크리틱은 액터가 선택한 행동의 결과를 평가하고, 액터는 그 평가를 바탕으로 정책을 개선한다.
이 구조가 일반적인 Q-learning과 다른 점은 무엇인가? → 정책을 직접 확률 분포로 학습한다는 점에서 Actor-Critic은 정책 기반 학습(Policy Gradient)이다.
기존 방법과의 차이
기존 방법: 가치함수 V(s) 또는 Q(s,a)를 학습 → 이후 정책 계산
Actor-Critic: 정책(π)을 직접 학습 → 상태가치함수는 행동의 평가에만 사용됨
구성 요소
모듈
역할
크리틱(Critic)
TD 오차(δₜ)를 통해 상태가치함수 V(s)를 학습
액터(Actor)
TD 오차를 이용해 확률 기반 정책 p(s,a)를 학습
TD 오차(δₜ)
상태가치 예측의 오차로, 다음과 같이 계산함:
δₜ = rₜ₊₁ + γ·V(sₜ₊₁) − V(sₜ)
δₜ가 양수면 기대보다 보상이 좋았고, 음수면 기대보다 나쁨
알고리즘 구조
모든 s∈S, a∈A(s)에 대해 초기화:
p(s,a), V(s) ← 임의의 값
각 에피소드에 대해 반복:
s 초기화
각 스텝에 대해 반복:
- 행동 선택: π(s,a) = e^p(s,a) / ∑₍b₎ e^p(s,b) (Gibbs 소프트맥스)
- 보상 r, 다음 상태 s′ 관측
- δₜ = r + γ·V(s′) − V(s)
- V(s) ← V(s) + α·δₜ
- p(s,a) ← p(s,a) + β·δₜ
s ← s′
종료 상태 도달 시 에피소드 종료