Outline
기존 Value기반 방법은 각 state value function(혹은 state-action value function)을 찾아내서 그에따른 최적의 greedy policy를 찾아냈다.
이러한 방법은 결정론적 정책을 사용함에 따른 한계가 명확했다. → action공간이 이산적이지 않고 연속적일 경우 사용하기 힘들다.
결론적으로 Value기반은 Greedy한(결정론적) 선택을 하게끔 하고 Policy기반은 확률적 선택을 하게 한다. (이거만 확실하게 알고 넘어가도 됨)
위와 같은 이유로 Policy기반 방법이 Value기반 방법보다 더욱 범용성이 높다 할 수 있다.
그럼이제 본격적으로 한번 Policy기반 방법에 대하여 알아보자.
Policy기반 방법의 특징은 아래와 같다.
- 확률을 사용한 정책 사용 가능
- 액션 공간이 연속적인 경우에도 사용가능
- Policy변화를 낮춰, 수렴성을 높임. (Value기반 방법에서는 Value의 변화에 따라 Policy가 확확 바뀌기 때문에 수렴성이 낮다.)
Policy기반 방법의 목적은 무엇일가? → 보상의 누적을 최대화 하는 최적 정책 찾기 (Value기반과 동일)
Policy기반 방법에서 최적 정책이란 무엇일까? → 시작 위치에서 미래에 얻을 수 있는 누적 보장이 최대가 되는 정책
Policy기반 방법의 목적에 따라서 시작 위치에서 value function이 가장 높은 정책을 찾아야 한다.
시작 위치에서 value funtion : 목적 함수(objective function)
가장 높은 정책 : 시작 위치에서 value function(objective function)을 최대화 하는 정책
목적함수는 아래와 같이 표현 가능 하다.
목적함수=∑(시작점state의분포확률)×(시작state의Valuefunction)
θ를 Policy함수에서 사용되는 model-parameter라고 뒀을때 목적함수는 아래와 같이 정의 할 수 있다.
J(θ)=s∑d(s)V(s)
현재 상황이 model-free한 상황 즉 환경의 동역학에 대해 모른다고 가정할때 위 state value function을 풀어서 아래와 같이 state-action function을 이용해서 정의할 수 있다.
J(θ)=s∑d(s)V(s)=s∑d(s)a∑πθ(s,a)Qπθ(s,a)
위 목적함수를 극대화 하는 정책을 찾는 것이 목표임으로 위 목적함수 모델 파라미터 θ에 대한 미분식을 구할 필요가 있다.
일단 처음에 1-step MDP상황임을 가정하자.
(1-step MDP : 한번의 action으로 R이 정해지고 이 R값이 곧 G 즉 한번의 action으로 R이 정해지면 episode가 종료 )
∇θJ(θ)=s∑d(s)a∑∇θπθ(s,a)Rsa
위의 미분값을 바로 구해서 그에따라 θ값을 update하면 될까? → 불가능하다.
- state-action공간이 커짐에 따라 ∑a∇θπθ(s,a)Rsa의 계산이 불가능해 진다.
- 애초에 모든 state에서의 action에 따른 reward Rsa부터 알 수 없다. (state-action공간이 커짐에 따라서)
LogTrick을 이용해서 위 식을 변형하면 이 문제를 해결할 수 있다.
∇θπθ(s,a)=πθ(s,a)πθ(s,a)∇θπθ(s,a)=πθ(s,a)∇θlogπθ(s,a) 이므로 위 식은 아래와 같이 전개된다.
s∑d(s)a∑πθ(s,a)πθ(s,a)∇θπθ(s,a)Rsa=s∑d(s)a∑πθ(s,a)∇θlogπθ(s,a)Rsa
πθ(s,a)가 ∇밖으로 빠져나오면서 추가 되었다. 위 처럼 수식이 변형 함에 따라 최종적으로 아래와 같이 평균으로 표현할 수 있다.
Eπθ[∇θlogπθ(s,a)Rsa]
식이 이렇게 변형됨에 따라 θ값 업데이트 방식이 πθ에 따라 게임을 진행하며 ∇θlogπθ(s,a)Rsa값을 기록하고 그 값을 토대로 θ값을 업데이트 하는 sampling컨셉으로 θ값 업데이트 방법이 바뀐다.
이제 위의 값을 1-step MDP가 아닌 multi-step MDP로 확장 시키면 아래와 같이 최종적으로 정의된다.
∇θJ(θ)=Eπθ[∇θlogπθ(s,a)Qπθ(s,a)]
이에 따른 모델 파라미터 θ업데이트 식은 아래와 같다.
θ←θ+η∇θlogπθ(s,a)Qπθ(s,a)
이때 η는 학습률(learning rate)이다.
위 θ업데이트 식의 Q값으로 어떤 값을 사용하느냐에 따라서 정책기반 방법들의 계보가 나뉜다.
- 몬테카를로 PB 알고리즘 (REINFORCE 알고리즘)
- Q값으로 G값을 사용(G=return)
- 모델 파라미터 업데이트 식
θ=θ+α∇θlogπθ(st,at)Gt
- TD를 이용한 PB 알고리즘 (actor-critic 알고리즘)
- Q값으로 TD(Temporal Difference)를 이용해서 추정한 추정치를 사용
- 모델 파라미터 업데이트 식 Qπθ(s,a)≈QW(s,a)라고 했을때
θ=θ+α∇θlogπθ(st,at)QW(st,at)