아래의 내용은 세종대학교 박성수 교수님께서 쓰신 수학으로 풀어보는 강화학습 원리와 알고리즘 책에서 나오는 유도식을 표기법만 달리해서 정리한 내용입니다. 책의 전개와 설명이 좋아서 강화학습에 관심있는 분들은 꼭 구입하셔서 읽어보길 바랍니다.
가치함수
t시점 이후의 보상 총합을 Gt라고 하자.
Gt=r(st,at)+γr(st+1,at+1)+γ2r(st+2,at+2)+⋯+γT−tr(sT,aT)
상태가치 함수(state-value function)
Vπ(st)=Eτat:aT∼p(τat:aT∣st)[k=t∑Tγk−tr(sk,ak)∣st]=∫τat:aT(k=t∑Tγk−tr(sk,ak))p(τat:aT∣st)dτat:aT
여기서, τat:aT는 정책 π로 생성되는 상태와 행동의 시퀀스 (at,st+1,at+1,…,sT,aT)이다. τat:aTπ로 쓰는게 더 자세할 듯 하다.
행동가치 함수
Qπ(st,at)=Eτst+1:aT∼p(τst+1:aT∣st,at)[k=t∑Tγk−tr(sk,ak)∣st,at]=∫τst+1:aT(k=t∑Tγk−tr(sk,ak))p(τst+1:aT∣st)dτst+1:aT
τat:aT=τat∪τst+1:aT로 분해를 하면 chain rule에 의해
p(τat:aT)=p(at,τst+1:aT)=p(τst+1:aT∣st,at).π(at∣st)
위 식을 상태가치 함수의 식에 대입을 하고 적분을 나누어서 생각하면
Vπ(st)=∫τat:aT(k=t∑Tγk−tr(st,at))p(τat:aT∣st)dτat:aT=∫at∫τst+1:aT(k=t∑Tγk−tr(sk,ak))p(at,τst+1:aT)dτst+1:aTdat=∫at∫τst+1:aT((k=t∑Tγk−tr(sk,ak))p(τst+1:aT∣st,at)π(at∣st)dτst+1:aTdat=∫atQπ(st,at)[∫τst+1:aT((k=t∑Tγk−tr(sk,ak))p(τst+1:aT∣st,at)dτst+1:aT]π(at∣st)dat=∫atQπ(st,at)π(at∣st)dat=Eat∼π(at∣st)[Qπ(st,at)]
상태가치 함수는 상태 st에서 선택 가능한 모든 행동 at에 대한 기댓값으로 정의할 수 있다.
벨만 방정식
행동가치 함수의 분해
행동가치 함수를 시간구간 [t,t+n−1]에서 전개
Qπ(st,at)=∫τst+1:aT(k=t∑Tγk−tr(st,at))p(τst+1:aT∣st,at)dτst+1:aT=∫τst+1:aT(rt+γrt+1+⋯+γn−1rt+n−1+k=t+n∑Tγk−tr(sk,ak))p(τst+1∣st,at)dτst+1:aT=Q1∫τst+1:aT(rt+γrt+1+⋯+γn−1rt+n−1)p(τst+1:aT∣st,at)dτst+1:aT+Q2∫τst+1:aT(k=t+n∑Tγk−tr(st,at))p(τst+1:aT∣st,at)dτst+1:aT
이제 Q1과 Q2를 정리해보자. 먼저, τst+1:aT=τst+1:st+n∪τat+n:aT로 나눌 수 있다. 위에서 한 것과 비슷하게 chain rule에 의해
p(τst+1:aT∣st,at)=p(τst+1:st+n,τat+n:aT∣st,at)=p(τat+n:aT∣st,at,τst+1:st+n)p(τst+1:st+n∣st,at)
위 식을 Q1식에 대입하면
Q1=∫τst+1:aT(rt+γrt+1+⋯+γn−1rt+n−1)p(τst+1:st+n∣st,at)dτst+1:st+n=∫τst+1:st+n∫τat+n:aT(rt+γrt+1+⋯+γn−1rt+n−1)p(τat+n:aT∣st,at,τst+1:st+n)dτat+n:aTp(τst+1:st+n∣st,at)dτst+1:st+n=∫τst+1:st+n[=1(∵모든 확률의 합)∫τat+n:aTp(τat+n:aT∣st,at,τst+1:st+n)dτat+n:aT](rt+γrt+1+⋯+γn−1rt+n−1)p(τst+1:st+n∣st,at)dτst+1:st+n=∫τst+1:st+n(rt+γrt+1+⋯+γn−1rt+n−1)p(τst+1:st+n∣st,at)dτst+1:st+n
Q2에 대해서 정리를 해보자.
Q2=∫τst+1:aT(k=t+n∑Tγk−tr(st,at))p(τst+1:aT∣st,at)dτst+1:aT=∫τst+1:st+nγn[∫τat+n:aT(k=t+n∑Tγk−t−nr(st,at))p(τat+n:aT∣st,at,τst+1:st+n)dτat+n:aT]p(τst+1:st+n∣st,at)dτst+1:st+n=∫τst+1:st+nγnVπ(st+n)[∫τat+n:aT(k=t+n∑Tγk−t−nr(st,at))p(τat+n:aT∣st+n)dτat+n:aT]p(τst+1:st+n∣st,at)dτst+1:st+n=∫τst+1:st+nγnVπ(st+n)p(τst+1:st+n∣st,at)dτst+1:st+n
p(τat+n:aT∣st,at,τst+1:st+n)=p(τat+n:aT∣st+n)는 Markov process를 가정했기 때문이다.
이제 Q1과 Q2를 더하면 다음과 같은 식을 유도할 수 있다.
Qπ(st,at)=∫τst+1:st+n[(rt+γrt+1+⋯+γn−1rt+n−1)+γnVπ(st+n)]p(τst+1:st+n∣st,at)dτst+1:st+n=Eτst+1:st+n∼p(τst+1:st+n∣st,at)[rt+γrt+1+⋯+γn−1rt+n−1+γnVπ(st+n)]
상태가치 함수 전개
위의 행동가치 함수를 통해 상태가치 함수를 새롭게 쓸 수 있다.
Vπ(st)=∫atπ(at∣st)[∫τst+1:st+n[rt+⋯+γnVπ(st+n)]p(τst+1:st+n∣st,at)dτst+1:st+n]dat=∫τat:st+n[rt+γrt+1+⋯+γn−1rt+n−1+γnVπ(st+n)]p(τat:st+n∣st)dτat:st+n=Eτat:st+n∼p(τat:st+n∣st)[rt+γrt+1+⋯+γn−1rt+n−1+γnVπ(st+n)]
여기서 p(τat:st+n∣st)=π(at∣st)p(τst+1:st+n∣st,at).
벨만 방정식
시간구간을 나눈는 기준을 n=1로 했을 경우에 t시점의 상태가치 함수를 다음과 같이 쓸 수 있다.
Vπ(st)=∫atπ(at∣st)[∫st+1[r(st,at)+γVπ(st+1)]p(st+1∣st,at)dst+1]dat=Eat∼π(at∣st)[Est+1∼p(st+1∣st,at)[r(st,at)+γVπ(st+1)]]=Eat∼π(at∣st)[r(st,at)+Est+1∼p(st+1∣st,at)[γVπ(st+1)]]
위 식을 벨만 방정식이라고 하며 벨만 방정식은 t시점의 상태가치 함수를 이후의 상태가치 함수로 표현한 관계식이다.
참고자료
- Richard S. Sutton and Andrew G. Barto, Reinforcement Learning
- 박성수, 수학으로 풀어보는 강화학습 원리와 알고리즘, 위키북스