버티의 블로그
[강화학습 #09] Policy Gradient 본문
지금까지 본 강화학습은 모두 value-based로, value function값을 예측하고, greedy하게 policy를 선택했었다. 이러면 특정 state에 대한 optimal action이 하나로 결정되는 deterministic model을 생성하는데, 이는 가위바위보와 같이 랜덤하게 다양한 선택을 하는 것이 중요한 stochastic한 상황에서는 한계가 있다. 따라서 이젠 policy-based로 시도해보고자 한다.
8장에서 본 value function approximation과 비슷하게, policy-based에서는 policy 자체를 approximation한다. 7장에서는 w라는 파라메터를 사용하는 approximator였다면, 여기서는 θ를 사용한다.
이 방식의 장단점은 다음과 같다.
- 빠른 수렴속도
- 고차원이나 연속적인 action space에서 유리함
- stochastic한 policy도 학습 가능
- local optimum에 수렴할 수도 있음
- 높은 variance(분산)을 가짐
이제 policy approximator을 학습시키기 위한 objective function을 다음과 같이 episodic할 때와 continuing할 경우로 나눠 정의할 수 있다.
이때 dπθ(s)는 stationary distribution of Markov chain for
아래는 score function을 이용한 Policy Gradient Theorem 증명이다. πθ는 0이 아닌 경우 미분 가능하다고 가정한다.
Actor-Critic Policy Gradient
이전의 policy gradient를 한 방법에서 업그레이드한 방법으로, Q-value function을 approximate하는 파라메터까지 추가하여 업데이트한다. 그리고 approximator를 critic과 actor로 나눈다.
- Critic : Q-value function을 approximate하는 w를 업데이트
- Actor : Critic이 제시한 방향으로 policy를 approximate하는 θ를 업데이트
위의 식이 만족하려면 아래의 조건을 만족해야 한다.
여기서 Baseline이란 기법으로 variance를 낮출 수 있는데, 에피소드에 대한 state 의존성을 떨어뜨리기 위해 현재 state에서 action과 무관한 baseline을 설정하여 그로부터의 차이만을 파라메터 업데이트에 반영한다. 보통 state value function을 baseline으로 설정하고, 이렇게 뺀 최종 함수를 advantage function이라고 한다. 그리고 critic은 Q-value function이 아닌 state value function을 approximate하게 된다.
이렇게 Actor-Critic 방법에 Advantage를 적용했다 해서 A가 2개, C가 1개 : A2C라고 하기도 한다. 참고로 A2C에 여러 에이전트를 독립적인 환경에서 동시에 학습하는 Asynchronous를 적용하면 A3C가 된다.
하지만 이렇게 되면 자연스럽게 state value function approximate를 위한 파라메터 하나가 추가로 들어간다.
이를 원치 않다면 TD(0)을 사용해서 줄일 수 있다. TD에서의 TD error를 이용하는 것인데, 이 TD error에 대한 approximator
그리고 앞선 value-based 방법과 같이 TD(λ)를 그대로 사용해서 bias를 낮출 수도 있다. 최종적으로 Critic과 Actor가 각각 state value function과 policy를 MC, TD(0), TD(λ)에서 approximate하는 식을 정리하면 다음과 같다.
'AI > 강화학습' 카테고리의 다른 글
[강화학습 #08] Value Function Approximation (0) | 2024.06.06 |
---|---|
[강화학습 #07] SARSA and Q-Learning (0) | 2024.06.05 |
[강화학습 #06] Model-Free Control (0) | 2024.06.04 |
[강화학습 #05] λ-returns on TD (0) | 2024.05.20 |
[강화학습 #04] Monte-Carlo and Temporal-Difference (0) | 2024.05.19 |