https://youtu.be/DnwRhx5EI38?si=z-krgX0xE_5I9Zc0
1. Policy Gradient
policy gradient는 강화학습에서 정책(policy)을 직접 학습하는 방법이다. 여기서 정책은 $\pi_{θ}(a|s)$로 표현되며, 상태 s에서 행동 a를 선택할 확률 분포를 나타낸다.
policy gradient의 목표는 정책을 업데이트하여 expected return을 최대화 하는 것이다. 목표 함수는 다음과 같다.
$$ J(θ)=E_{π_{θ}}[R] $$
핵심은 이 $J(θ)$를 최대화하기 위한 기울기를 계산하는 것이다. 따라서 policy gradient 정리는 다음과 같다.
$$ ∇_{θ}J(θ)\cong \int_{\tau}^{}\sum_{t=0}^\infty∇_{θ}ln P_{\theta}(a_{t}|s_{t})G_{t}P_{\theta}(\tau)d\tau $$
하지만 policy gradient는 하나의 에피소드가 끝나야 한 번의 업데이트가 이루어진다. 에피소드 단위로 정책을 업데이트하게 되면, 보상 $G_{t}$에 노이즈가 많이 포함될 수 있어서 높은 분산을 갖는 한계를 가지고 있다.
2. Actor-Critic 등장 이유
Actor-Critic은 이러한 policy gradient의 한계를 해결하기 위해 나온 방법이다.
기존 policy gradient 식은 다음과 같다.
$$ ∇_{θ}J(θ)\cong \int_{\tau}^{}\sum_{t=0}^\infty∇_{θ}ln P_{\theta}(a_{t}|s_{t})G_{t}P_{\theta}(\tau)d\tau $$
이 식에서 $G_{t}$를 $Q$로 바꾸기위해 전개 과정을 거친다. 그렇게되면 다음과 같은 식을 표현할 수 있다.
$$ = \sum_{t=0}^\infty \int_{{s_t}, a_{t}}^{} ∇_{θ}ln P_{\theta}(a_{t}|s_{t})Q(s_{t}, a_{t})P_{\theta}(s_{t},a_{t})ds_{t},a_{t} $$
이렇게 되면 $∇_{θ}ln P_{\theta}(a_{t}|s_{t})Q(s_{t}, a_{t})$를 샘플로 한다고 했을 때, $G_{t}$까지 얻지 않아도 되니 끝까지 가지 않아도 샘플을 구할 수 있다. 이에 따라 분산이 높아지는 문제를 완화할 수 있게 된다.
여기서 $Q(s_{t}, a_{t})$는 다음과 같이 나타낼 수 있다.
$$ Q_{w} = (R_{t}+\gamma Q_{w}(s_{t+1}, a_{t+1}- Q_{w}(s_{t}, a_{t}))^2 $$
3. Actor-Critic 알고리즘
Actor
- $P_{\theta}(a_{t}|s_{t})$를 업데이트
- action을 선택하는 역할
- $\theta ← \theta+ \alpha∇_{θ}ln P_{\theta}(a_{t}|s_{t})Q_{w}(s_{t},a_{t})$
Critic
- $Q_{w}$를 업데이트
- Actor가 선택한 행동이 얼마나 좋은지 평가하는 역할
- $w ← w - \beta ∇_{w}(R_{t} + \gamma Q_{w}(s_{t+1}, a_{a+1}) - Q_{w}(s_{t}, a_{t}))^2$
(이때, $R_{t} + \gamma Q_{w}(s_{t+1}, a_{a+1})$를 상수 취급한다.)
Actor-Critic의 특징은 다음과 같다.
- Bias: Critic이 근사 모델을 사용해 TD 방법으로 $V(s)$(value function)을 학습하므로 $V(s)$의 추정이 참 값에서 벗어날 수 있게 된다. 이에 따라 Bias가 발생하게 된다.
- Low Variance: Critic이 TD 방법으로 현재 상태와 보상만으로 학습하므로 Variance가 낮다
결론
Actor-Critic 알고리즘은 Policy Gradient 방법의 단점을 해결하기 위해 고안되었다. Policy Gradient는 높은 Variance로 인해 학습이 불안정한 문제를 가지고 있었는데, Actor-Critic은 (Bias가 발생하지만) 낮은 Variance를 통해 안정적이고 효율적인 학습이 가능해 진다.