| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
- r-cnn
- UC Berkeley
- DP
- CS285
- dfs
- CNN
- 그래프 이론
- RL
- 강화학습
- deep learning
- 백준
- AlexNet
- NLP
- hm3dsem
- machine learning
- ubuntu
- Reinforcement Learning
- 머신러닝
- dynamic programming
- opencv
- Python
- hm3d
- GIT
- YoLO
- MySQL
- C++
- LSTM
- 딥러닝
- image processing
- BFS
- Today
- Total
JINWOOJUNG
[RL] CS285: Lecture 06. Actor-Critic Algorithms(1) 본문
[RL] CS285: Lecture 06. Actor-Critic Algorithms(1)
Jinu_01 2026. 1. 29. 00:10본 포스팅은 UC Berkeley 에서 진행된 CS285: Deep Reinforcement Learning, Decision Making and Control
강의자료 및 강의를 기반으로 공부한 내용을 정리하는 포스팅입니다.
https://jinwoo-jung.tistory.com/176
[RL] CS285: Lecture 05. Policy gradients(2)
본 포스팅은 UC Berkeley 에서 진행된 CS285: Deep Reinforcement Learning, Decision Making and Control강의자료 및 강의를 기반으로 공부한 내용을 정리하는 포스팅입니다.https://jinwoo-jung.tistory.com/175 [RL] CS285: Lecture
jinwoo-jung.com
Actor-Critic Algorithms
지난 시간에 배운 Policy gradients는 Objective function을 최적화하지만, 높은 Variance를 가지는 단점이 있었다. 본 강의에서 살펴볼 Actor-Critic Algorithms는 높은 Variance 문제를 Value function(Critic)으로 해결하고자 하는 Algorithms이다. Policy를 업데이트 하는 Actor와 그 행동을 평가하는 Critic을 도입하여, Policy를 기반으로 선택된 행동을 Value function을 통해 좋은지 나쁜지를 평가하게 된다.
짧게 Policy gradients를 복습해보자. Objective function의 Gradient는 아래와 같으며, 이때 "reward to go"는 $s_{i,t}$에서 $a_{i,t}$를 했을 때 얻게되는 Reward의 Expectation 추정치이다. 이때, Causality 특성을 적용하여 Variance를 낮출 수 있다고 배웠다.

State & state-action value functions
하지만, 우리가 사용하는 $\hat{Q}_{i,t}$는 단순히 하나의 Sample에 대한 값이다. 동일한 $s_{i,t}, a_{i,t}$에도 여러가지 경우의 수가 있지만, 특정 Sample만으로 판단 시 Variance가 커질 수 있다. 따라서 가능한 모든 $\hat{Q}_{i,t}$을 계산하여 기댓값을 활용한다면 이를 방지할 수 있을 것이다.

따라서 다음과 같이 $Q(s_t, a_t)$를 이용하게 된다면, Objective function의 Gradient는 다음과 같이 바뀌게 될 것이고, 이를 통해서 Variance도 낮출 수 있을 것이다.
한마디로 다시 정의하면, Q-function은 $s_t$에서 $a_t$를 했을 때, 이후 Policy를 따라서 얻을 수 있는 Reward의 평균이다.

우리는 Variance를 줄일 수 있는 방법으로 Causality와 Baseline을 배웠다. 그러면 Baseline은 어떻게 바뀔까?
기존에는 Baseline을 Reward의 평균으로 사용했었다.
$$b = \frac{1}{N} \sum_{i=1}^{N}r(\tau) $$
하지만, 지금은 $Q(s_t, a_t)$를 활용하고 있으므로 Baseline을 $Q(s_t, a_t)$의 평균으로 활용할 수 있다. 하지만, 이 Baseline의 경우 $s_t$에 의존적이지 않는다. 각 Samples마다 $s_{i,t}$가 다르기 때문에 나의 행동을 정확하게 평가할 수 없다.
$$b = \frac{1}{N} \sum_{i} Q(s_{i,t}, a_{i,t})$$
따라서 우리는 Value function을 Baseline으로 도입하는게 더 좋은 Baseline임을 확인할 수 있다. Value function은 $s_t$에서 가능한 모든 Action에 대한 Q values의 기댓값을 의미한다. 즉, $s_t$에 의존적이기 때문에 나의 행동이 평균적 행동보다 더 좋은지 나쁜지를 명확하게 평가할 수 있다.
$$V(s_t) = E_{a_t \sim \pi_\theta(a_t|s_t)} \left [ Q(s_t, a_t) \right ] $$
다시한번 정리 해 보면, Q-function은 $s_t$에서 $a_t$를 했을 때 Total reward의 기대값, Value function은 $s_t$에서의 Total reward의 기대값, Advantage function은 $a_t$가 얼마나 좋은지를 의미한다.

따라서 단순히 단일 Sample에 대해서 추정하는 것 보다는, Advantage function을 통해 추정하는것이 더 좋고 Variance를 낮출 수 있음을 이해했을 것이다.

Value function fitting
간단해진 식을 기반으로, 우리는 Fitting을 진행해야 한다. Q function, value function 중 우리는 Value function을 Fitting하게 되는데, 이는 Value function이 State에만 의존적이기 때문이다.

그렇다면 우리는 Q function의 수식을 조금 변형해야 한다.
$$Q^\pi(s_t, a_t) = \sum_{t'=t}^{T} E_{\pi_\theta} \left [ r(s_{t'}, a_{t'} | s_t, a_t) \right ] = r(s_t, a_t) + \sum_{t'=t+1}^{T} E_{\pi_\theta} \left [ r(s_{t'}, a_{t'} | s_t, a_t) \right ] $$
이때, 뒤의 $\sum$항을 자세히 살펴보자. Q-function, Value function의 정의를 생각해 보면 결국, $s_t, a_t$가 주어지고 Transition model에 의해(환경과 상호작용) $s_{t+1}$이 선택되는 Distribution 아래에서 $V^\pi(s_{t+1})$의 기댓값과 동치임을 알 수 있다.
$$ r(s_t, a_t) + \sum_{t'=t+1}^{T} E_{\pi_\theta} \left [ r(s_{t'}, a_{t'} | s_t, a_t) \right ] = r(s_t, a_t) + E_{s_{t+1} \sim p(s_{t+1} | s_t, a_t)} \left [ V^\pi(s_{t+1}) \right ]$$
그리고 $V^\pi(s_{t+1})$의 기대값은 $V^\pi(s_{t+1})$로 근사할 수 있으므로 최종적으로 Advantage function을 Value function에 대해서 정리하면 다음과 같다.
$$A^\pi(s_t, a_t) \approx r(s_t, a_t) + V^\pi(s_{t+1}) - V^\pi(s_t)$$
Policy evaluation
이제 우리는 Value function을 최적화 해야 된다. 이때까지 본 이상적(수학적) Value function은 다음과 같다(Expectation을 Sigma 안으로 들여온 버전). Policy gradients에서도 배웠지만, 이는 실제로 불가능하다.
$$V^\pi(s_t) = \sum_{t'=t}^{T} E_{\pi_\theta} \left [ r(s_{t'}, a_{t'}) |s_t \right ] $$
그래서 우리는 Monte carlo policy evaluation을 사용하는 방법도 있다. 하지만, 현실적으로 이러한 Sample을 수집하는 것은 불가능하다. State에 의존적이기 때문에 Time $t$에서는 특정한 $s_t$에 도달해야 하지만, Model-free 방법론에서는 특정한 State로 만드는 것이 어렵기 때문이다.
$$V^\pi (s_t) \approx \frac{1}{N} \sum_{i=1}^{N} \sum_{t'=t}^{T} r(s_{t'}, a_{t'})$$

Monte Carlo evaluation with function approximation
따라서 현실적으로 가능한 하나의 Trajectory를 기반으로 판단 해 보자. 정석적인 Monte Carlo 방법보다는 좋지 않지만, 꽤 괜찮을 것이다.
$$V^\pi(s_t) \approx \sum_{t'=t}^{T} r(s_{t'}, a_{t'})$$
그리고 이 Estimate를 위한 Training data를 다음과 같이 정의할 수 있다.

최종적으로는, Training data에 대해서 Batch size를 고려한 Loss function을 다음과 같이 정의할 수 있다. 단순히 Single estimation보다는 Generalization 성능이 향상될 것이다.

단순히 Single sample이 아닌, 이상적인 Target은 다음과 같이 전개할 수 있다. 기존의 Q-function을 Value function을 이용해 재정의한 과정과 유사하게 전개한다면, 다음과 같이 $V^\pi(s_{i,t+1})$를 포함한 식으로 바꿀 수 있다. 이때, 우리가 추정하는 추정치를 통해서 값을 갱신하기 때문에 Bootstrap Estimator라고 칭하기도 한다.

하지만, 양날의 검인 이유는 $\hat{V}$ 자체가 잘못되면 High bias를 가질 수 있지만, Single sample이 아닌 $\hat{V}$에 의한 평균을 사용하기에 Variance를 낮출 수 있다.

From Evaluation to Actor Critic
이때까지 공부한 Actor-critic algorithm을 다시 정리 해 보자. 기존 RL 방식에서 $\hat{V}^\pi$를 Fitting하여 $\hat{A}^\pi $를 추정하는 단계가 추가되었다. 하지만, $\hat{V}^\pi$를 Fitting하는 과정에서 문제가 발생하게 된다.

앞선 과정에서 정의한 Loss function $\mathcal{L}$와 Bootstrap estimator의 Traget은 다음과 같다.
$$\mathcal{L}(\phi) = \frac{1}{2} \sum_i \left\| \hat{V}_\phi^\pi(s_i) - y_i \right\|^2$$
$$y_t \approx r(s_t, a_t) + V^\pi(s_{t+1})$$
만약 $T$가 Infinite하고, Reward가 계속 양수라면, $V$는 무한대가 될 것이다. 이럴때 사용되는 간단한 트릭이 Discount factor $\gamma$를 사용하는 것이다. Discount factor란 미래의 Reward일수록 더 적게 고려함을 의미한다.
Discount factor $\gamma$를 도입함으로써 Time step이 증가할 때 마다 $\gamma$를 낮춰서 Reward를 더 적게 고려함을 의미한다. 이는 $1-\gamma$의 확률로 Death state에 도달하는 것과 동일한 의미이다.

앞으로 TD(Temporal Difference)라는 용어가 종종 등장할 것이다. TD란 미래 전체가 아닌 다음 한 스텝의 추정값으로 현재를 업데이트하는 방법을 의미한다.
앞서 본 것처럼 $r_t + \gamma V(s_{t+1})$과 같이, 한 스텝만 보고 다음 상태의 Value로 대체하는 방식을 의미한다.
그렇다면 우리는 단순히 Fitting 하는 값 만이 아닌, Obejctive function의 Gradient도 수정해야 한다.

Discount factors for policy gradients
그렇다면 Actor-Critic이 아닌, Policy gradients에서는 어떻게 적용해야 될까?
Option 1은 Time step $t$를 기준으로 $\gamma$를 곱하게 되고, Option 2는 초기 상태를 기준으로 $\gamma$를 곱하게 된다.

따라서 Option 2를 Option 1에 맞게 Causality를 반영하여 수식을 전개 해 보면 $\gamma^{t-1}$항이 앞으로 빠져나오게 된다. 이 항은 결국 미래의 결정에 영향을 낮추고 현재 근처의 결정에 더욱 가중치를 주는 역할을 하게 된다. 하지만, 우리는 $T$가 무한대로 갔을 때 미래 항을 줄이고 싶기 때문에 결국 Option 2보다 Option 1이 더욱 선호된다. 또한, $t$가 무한대로 가면 $\gamma^{t-1}$은 0이 되므로 나중에 잘못된 행동을 하던 말던 고려되지 않음을 의미하기에 잘못된 방식이 된다.

따라서 Discount factor를 고려한 전체적인 알고리즘은 다음과 같다.

'Reinforcement Learning' 카테고리의 다른 글
| [RL] CS285: Lecture 06. Actor-Critic Algorithms(2) (0) | 2026.01.29 |
|---|---|
| [RL] CS285: Lecture 05. Policy gradients(2) (0) | 2026.01.28 |
| [RL] CS285: Lecture 05. Policy gradients(1) (0) | 2026.01.28 |
| [RL] CS285: Lecture 04. Introduction to Reinforcement Learning(2) (0) | 2026.01.27 |
| [RL] CS285: Lecture 04. Introduction to Reinforcement Learning(1) (0) | 2026.01.27 |