[2025-1] 노하림 - A2C
A2C 알고리즘
A2C는 정책 기울기(Policy Gradient) 방법을 기반으로 하며, 액터-크리틱 구조를 사용하여 정책(Actor)과 가치 함수(Critic)를 동시에 학습하는 알고리즘이다. A2C는 기존 강화 학습 알고리즘의 단점을 보완하며, 샘플의 분산을 줄이고 안정적인 학습을 가능하게 한다. 또한 정책과 가치 함수를 동시에 학습하며 정책의 안정성과 학습 효율성을 모두 높인다.
어드밴티지 함수
\[ A(s, a) = Q(s, a) - V(s) \]
- \( Q(s, a) \): 특정 상태에서 특정 행동의 가치
- \( V(s) \): 상태의 가치
Q함수에 상태 함수 $s_t$만 들어간 경우 액션 함수가 아닌 상태 함수가 들어가 적분에 영향을 주지 않는다. 이 경우 Q함수의 구조가 단순해지며 액션에 대한 정보가 부족해진다. Q값에서 상태 가치 함수 V(s)를 빼는 방식으로 Q-V를 사용하여 샘플의 분산을 줄인다.
V만 구해도 되게끔 바꾸자
A2C에서는 Q값을 직접적으로 계산하는 대신, 상태 가치 함수 V만을 구하는 방식으로 변경한다. 이를 통해 계산의 복잡성을 줄이고 업데이트를 더 간단하게 만든다.
$$Q(st, a_t) = r_t + \gamma V(s{t+1})$$
- $r_t$ : 보상
- $\gamma$ : 할인율
A2C 알고리즘은 1) 샘플 수집 2) 어드밴티지 계산 3) 정책 및 가치 함수 업데이트 단계로 진행된다.
1) 샘플 수집 및 관리
A2C는 샘플을 수집한 후 이를 기반으로 정책과 가치 함수를 업데이트한다. 기존 정책에 따라 데이터를 수집한 뒤, 학습이 완료되면 새로운 정책에 따라 데이터를 다시 수집한다. 이전 샘플을 재사용하지 않으므로 정책 변화에 따른 편향(bias)을 줄일 수 있지만, 정보 손실이 발생할 수 있다.
2) 어드밴티지 계산
\[ A(s_t, a_t) = r_t + \gamma V(s_{t+1}) - V(s_t) \]
3) 정책 및 가치 함수 업데이트
A2C는 정책 매개변수 \( \theta \)와 가치 함수 매개변수 \( w \)를 동시에 업데이트한다.
1) 정책 매개변수 업데이트
\[ \theta \leftarrow \theta + \alpha \nabla_\theta \log \pi(a_t | s_t; \theta) A(s_t, a_t) \]
2) 가치 함수 매개변수 업데이트
\[ w \leftarrow w - \beta \nabla_w (G_t - V(s_t; w))^2 \]
- \( G_t \): 리턴(Return) 다음과 같이 계산됨
\[ G_t = r_t + \gamma G_{t+1} \]
TD 에러와 업데이트
A2C는 TD(Temporal Difference) 에러를 사용하여 가치 함수를 업데이트한다.
\[ \delta_t = r_t + \gamma V(s_{t+1}; w) - V(s_t; w) \]
이 TD 에러를 최소화하는 방향으로 가치 함수가 업데이트된다.
bias가 생긴 원인
- Q값을 근사치인 V값으로 대체함으로써 발생하는 근사 오차
- 이전 샘플을 재사용하지 않음으로써 발생하는 정보 손실
- 정책 업데이트 후 샘플링된 상태가 이전 정책에 기반하여 수집되기 때문에 발생하는 편향