(WIP)Policy Gradient
Policy GradientPermalink
- pθ(τ) : 정책 πθ로 생성되는 궤적의 확률밀도함수
확률의 연쇄법칙을 적용해 pθ(τ)를 전개하면 다음과 같다.
pθ(τ)=pθ(s1,a1,…,sT,aT)=p(s1)pθ(a1,s2,…,sT,aT∣s1)=p(s1)pθ(a1|s1)pθ(s2,a2,…,sT,aT|s1,a1)=p(s1)pθ(a1|s1)p(s2|s1,a1)pθ(a2,s3,…,sT,aT|s1,a1,s2)- p(s2|s1,a1) : 환경 모델로 정책과 무관하기에 아래 첨자 없이 표기
마르코프 시퀀스 가정에 의해 아래를 만족한다.
pθ(a2|s1,a1,s2)=πθ(a2|s2)p(s3|s1,a1,s2,a2)=p(s3|s2,a2)그러므로 아래와 같은 식을 얻을 수 있다.
pθ(τ)=pθ(s1,a1,…,sT,aT)=p(s1)T∏t=1πθ(at|st)p(st+1|st,at)우리의 목적은 목적함수 J(θ)=Eτ∼pθ(τ)[∑tr(st,at)]를 최대화하는 정책 파라미터 θ를 계산하는 것이다.
θ∗=argmaxθEτ∼pθ(τ)[∑tr(st,at)]-
infinite horizon Case θ∗=argmaxθE(s,a)∼pθ(s,a)[r(s,a)]
-
finite horizon case θ∗=argmaxθ∑Tt=1E(st,at)∼pθ(st,at)[r(st,at)]
기댓값은 실제로 계산할 수 없으므로 샘플을 이용해 추정한다. 기댓값 Eτ∼pθ(τ)[⋅]은 에피소드를 πθ 정책을 이용해 N개만큼 생성해 에피소드 평균을 이용해서 근사적으로 계산한다.
Eτ∼pθ(τ)[⋅]≈1NM∑i[⋅]위 공식을 이용하여 목적함수를 다음과 같이 근사적으로 추정한다.
J(θ)=Eτ∼pθ(τ)[∑tr(st,at)]≈1N∑i∑tr(si,t,ai,t)다시 강화학습의 목적을 보자.
우리의 목적은 목적함수 J(θ)=Eτ∼pθ(τ)[∑tr(st,at)]를 최대화하는 정책 파라미터 θ를 계산하는 것이었다.
θ∗=argmaxθEτ∼pθ(τ)[∑tr(st,at)]우리는 아래 목적함수를 최대화하는 방향을 찾기 위해 아래 함수를 미분해야 한다.
J(θ)=Eτ∼pθ(τ)[∑tr(st,at)]식의 편의성을 위해 다음과 같이 표기한다.
T∑t=1r(st,at)=r(τ)우리의 목적함수를 적분으로 표현하면 다음과 같다.
J(θ)=Eτ∼pθ(τ)[T∑t=1r(st,at)]=Eτ∼pθ(τ)[r(τ)]=∫pθ(τ)r(τ)dτ위 식을 θ에 대해 미분해보자
∇θJ(θ)=∫∇θpθ(τ)r(τ)dτ여기서 중요한 트릭이 등장한다.
∇θpθ(τ)=pθ(τ)∇θpθ(τ)pθ(τ)=pθ(τ)∇θlogpθ(τ)에서 ∇θpθ(τ)를 위 수식에 대입하면
∇θJ(θ)=∫∇θpθ(τ)r(τ)dτ=∫pθ(τ)∇θlogpθ(τ)r(τ)dτ식이 나오고 마지막 식을 기댓값으로 표현하면
∇θJ(θ)=∫pθ(τ)[∇θlogpθ(τ)r(τ)]dτ=Eτ∼pθ(τ)[∇θlogpθ(τ)r(τ)]와 같이 표현된다. 이때 ∇θlogpθ(τ)를 자세히 살펴보자 우리는 아래와 같이 pθ(τ)를 표현했다.
pθ(τ)=pθ(s1,a1,…,sT,aT)=p(s1)T∏t=1πθ(at|st)p(st+1|st,at)logpθ(τ)를 구하기 위해 위 식에 log를 씌우면 식이 아래와 같아진다.
logpθ(τ)=logp(s1)+T∑t=1[logπθ(at|st)+logp(st+1|st,at)]마지막으로 최종 목표인 ∇θlogpθ(τ)를 구하기 위해 ∇θ를 씌우면
∇θlogpθ(τ)=∇θ[logp(s1)+T∑t=1[logπθ(at|st)+logp(st+1|st,at)]]인데 가운데 항만 θ의 함수이므로 logp(s1), logp(st+1|st,at)를 제거하면
∇θlogpθ(τ)=∇θ[logp(s1)+T∑t=1[logπθ(at|st)+logp(st+1|st,at)]]=∇θ[T∑t=1logπθ(at|st)]=T∑t=1∇θlogπθ(at|st)미분의 선형성에 의해 함수의 합은 미분의 각 함수의 미분의 합과 같으므로 마지막과 같이 표기한다.
이제 구한 식을 원래 목표였던 ∇θJ(θ) 식에 대입하자. 그리고 편의를 위해 잠시 바꿨던 r(τ)도 돌려놓자
∇θJ(θ)=∫∇θpθ(τ)r(τ)dτ=∫pθ(τ)(∇θlogpθ(τ))r(τ)dτ=∫pθ(τ)(T∑t=1∇θlogπθ(at|st))r(τ)dτ=∫pθ(τ)(T∑t=1∇θlogπθ(at|st))(T∑t=1r(st,at))dτ=Eτ∼pθ(τ)[(T∑t=1∇θlogπθ(at|st))(T∑t=1r(st,at))]기댓값을 추정하기 위해 샘플로 추정했던 아래 식을 떠올려보자
J(θ)=Eτ∼pθ(τ)[∑tr(st,at)]≈1N∑i∑tr(si,t,ai,t)같은 원리로 적용하면 다음과 같다.
∇θJ(θ)=Eτ∼pθ(τ)[(T∑t=1∇θlogπθ(at|st))(T∑t=1r(st,at))]≈1NN∑i=1(T∑t=1∇θlogπθ(ai,t|si,t))(T∑t=1r(si,t,ai,t))Reduce VariancePermalink
CasualityPermalink
목적함수의 그래디언트 식을 보자
∇θJ(θ)=Eτ∼pθ(τ)[(T∑t=1∇θlogπθ(at|st))(T∑t=1r(st,at))]≈1NN∑i=1(T∑t=1∇θlogπθ(ai,t|si,t))(T∑t=1r(si,t,ai,t))(∑Tt=1r(st,at)) 은 (t=1)부터 에피소드가 종료(t=T)될 때까지 받을 수 있는 전체 보상의 합이다. 하지만 시간 t′에서의 정책은 시간 t<t′ 인 시간 t에서의 보상에 영향을 끼치지 않는다. 이러한 인과성(casuality)를 고려하여 위 식을 아래와 같이 수정할 수 있다.
∇θJ(θ)≈1NN∑i=1T∑t=1∇θlogπθ(ai,t|si,t)(T∑t′=tr(si,t′,ai,t′))오른쪽 식 (∑Tt′=tr(si,t′,ai,t′))은 reward-to-go 라고 하며 지금부터 에피소드 종료까지 얻을 보상을 의미한다.
이와 같이 현재 이전의 보상을 제외하면서 곱해지는 보상의 크기를 줄여 분산을 낮춘다.
BaselinePermalink
우리는 목적함수의 그래디언트를 다음과 같이 구했다. (전개의 편의성을 위해 casuality를 적용하지 않는다.)
∇θJ(θ)=Eτ∼pθ(τ)[∇θlogpθ(τ)r(τ)]식이 바뀌었는데 아래식이랑 같은 의미이다. 간단히 다시 말하면 위 식에서 pθ(τ)에 로그를 씌워서 순차적으로 곱해져있던 trajectory를 더하기로 바꾸고 미분으로 환경모델 확률식을 제거하여 아래와 같은 식이 나온다. 전개의 편의를 위해 다시 r(τ)=∑Tt=1r(st,at)를 적용한다.
∇θJ(θ)=Eτ∼pθ(τ)[(T∑t=1∇θlogπθ(at|st))(T∑t=1r(st,at))]근데 여기서 아래와 같이 전체 보상의 합을 계산하는 부분에 아래와 같이 상수를 빼도 될까?
∇θJ(θ)=Eτ∼pθ(τ)[∇θlogpθ(τ)(r(τ)−b)]b만 따로 빼서 전개해보자
Eτ∼pθ[∇θlogpθ(τ)b]=∫pθ(τ)∇θlogpθ(τ)b dτ우리는 아래와 같은 트릭을 사용했었다.
∇θpθ(τ)=pθ(τ)∇θpθ(τ)pθ(τ)=pθ(τ)∇θlogpθ(τ)이번엔 거꾸로 pθ(τ)∇θlogpθ(τ) 에 ∇θpθ(τ)를 대입하면 아래와 같은 식이 나온다.
Eτ∼pθ[∇θlogpθ(τ)b]=∫pθ(τ)∇θlogpθ(τ)b dτ=∫∇θpθ(τ)b dτ=b∇θ∫pθ(τ)dτ=b∇θ1=0그러므로 목적함수 그래디언트식의 r(τ)에서 베이스라인을 빼도 기댓값은 변하지 않는다(unbiased).