가치함수
상태가치함수
상태가치함수는 다음과 같다.
Vπ(xt)=Eτut:uT∼p(τut:uT∣xt)[k=t∑Tγk−tr(xk,uk)∣xt]=τut:uT∫(k=t∑Tγk−tr(xk,uk))p(τut:uT∣xt)dτut:uT
τ는 궤적을 의미하며, τut:uT는 ut 부터 uT까지의 궤적을 뜻한다.
Eτut:uT∼p(τut:uT∣xt) 는 τ가 확률 밀도 함수 p(τ∣xt)를 따를 때의 평균을 의미한다.
행동가치함수
마찬가지로 행동가치함수는 다음과 같다.
Qπ(xt,ut)=Eτx+1:uT∼p(τxt+1:uT∣xt,ut)[k=t∑Tγk−tr(xk,uk)∣xt,ut]=τxt+1:uT∫(k=t∑Tγk−tr(xk,uk))p(τxt+1:uT∣xt,ut)dτxt+1:uT
상태가치함수과 행동가치함수의 관계
앞서 살펴본 바와 같이, 상태가치함수와 행동가치함수는 다음과 같은 관계가 있다.
Vπ(xt)=ut∫Qπ(xt,ut)π(ut∣xt)dut=Eut∼π(ut∣xt)[Qπ(xt,ut)]
즉, 상태가치함수란 특정 상태 xt에서 정책 π에 따라 행동 ut를 선택했을 때, 그때의 행동가치함수의 기댓값이다.
벨만방정식
행동가치함수를 시간구간 [t,t+n−1]과 [t+n,T] 두 부분으로 나눠보자.
Qπ(xt,ut)=Q1+Q2=τxt+1:uT∫(k=t∑t+n−1γk−tr(xk,uk))p(τxt+1:uT∣xt,ut)dτxt+1:uT+τxt+1:uT∫(k=t+n∑Tγk−tr(xk,uk))p(τxt+1:uT∣xt,ut)dτxt+1:uT
이때 궤적 τxt+1:uT를 [xt+1,xt+n]과 [ut+n,uT] 두 영역으로 분할하면 확률의 연쇄법칙에 의해
p(τxt+1:uT∣xt,ut)=p(τxt+1:x+n∣xt,ut)⋅p(τut+n:uT∣xt,ut,τxt+1:xt+n)
이 된다. 이때, 확률밀도함수는 마르코프 시퀀스임을 가정하므로,
p(τxt+1:uT∣xt,ut)=p(τxt+1:x+n∣xt,ut)⋅p(τut+n:uT∣xt+n)
이다.
이를 각각 Q1과 Q2에 대입해보자.
Q1=τxt+1:uT∫(k=t∑t+n−1γk−tr(xk,uk))p(τxt+1:uT∣xt,ut)dτxt+1:uT=τut+n:uT∫ τxt+1:xt+n∫(k=t∑t+n−1γk−tr(xk,uk))p(τxt+1:xt+n∣xt,ut)p(τut+n:uT∣xt+n)dτxt+1:xt+ndτut+n:uT
이때 t와 t+1일때의 상태와 행동은 독립성을 가정하므로,
Q1=τxt+1:xt+n∫⎣⎢⎢⎡ τut+n:uT∫p(τut+n:uT∣xt+n)dτut+n:uT⎦⎥⎥⎤⋅(k=t∑t+n−1γk−tr(xk,uk))p(τxt+1:xt+n∣xt,ut)dτxt+1:xt+n=τxt+1:xt+n∫(k=t∑t+n−1γk−tr(xk,uk))p(τxt+1:xt+n∣xt,ut)dτxt+1:xt+n
이다. 다음으로 Q2를 정리해보자. 마찬가지로, 독립임을 가정하므로,
Q2=τxt+1:uT∫(k=t+n∑Tγk−tr(xk,uk))p(τxt+1:uT∣xt,ut)dτxt+1:uT=∫γn[∫(k=t+n∑Tγk−(t+n)r(xk,uk))p(τut+n:uT∣xt+n)dτut+n:uT]p(τxt+1:xt+n∣xt,ut)dτxt+1:xt+n
이다. 대괄호 안을 면밀히 살펴보면, t+n 시간대의 상태가치함수와 같다는 것을 알 수 있을 것이다. 즉,
Q2=τxt+1:xt+n∫γnVπ(xt+n)p(τxt+1:xt+n∣xt,ut)dτxt+1:xt+n
이다. 이제 행동가치함수 Q를 구해보면,
Qπ(xt,ut)=τxt+1:xt+n∫[k=t∑t+n−1γk−tr(xk,uk)+γnVπ(xt+n)]p(τxt+1:xt+n∣xt,ut)dτxt+1:xt+n=Eτxt+1:xt+n∼p(τxt+1:xt+n∣xt,ut)[k=t∑t+n−1γk−tr(xk,uk)+γnVπ(xt+n)]
가 된다. 특별한 경우로서, n=1로 하면 행동가치함수는 다음과 같다.
Qπ(xt,ut)=Eτxt+1:xt+n∼p(τxt+1:xt+n∣xt,ut)[r(xt,ut)+γVπ(xt+n)]
위 식에서 r(xt,ut)는 xt+1에 관한 함수가 아니므로,
Qπ(xt,ut)=r(xt,ut)+Eτxt+1∼p(τxt+1∣xt,ut)[γVπ(xt+1)]
이다. 이를 상태가치함수로 나타내면 다음과 같다.
Vπ(xt)=Eut∼π(ut∣xt)[r(xt,ut)+Eτxt+1∼p(τxt+1∣xt,ut)[γVπ(xt+1)]]
이 두 식을 바로 벨만방정식(Bellman equation)이라고 부르며, 현재 상태의 가치와 다음 시간 스템의 상태의 가치와의 관계를 나타내는 식이다.
벨만 최적 방정식
모든 정책 중 상태가치 값을 최대로 만드는 정책을 적용했을 때의 상태가치함수와 행동가치함수를 각각 최적 상태가치함수, 최적 행동가치함수라고 한다.
V∗(xt)Q∗(xt,ut)=πmaxVπ(xt)=πmaxQπ(xt,ut)
먼저 최적 상태가치함수부터 살펴보자. t 시간과 t+1 시간의 행동은 독립적이므로, 다음과 같이 쓸 수 있다.
V∗(xt)=πmaxEut∼π(ut∣xt)[r(xt,ut)+Eτxt+1∼p(τxt+1∣xt,ut)[γVπ(xt+1)]]=ut,ut+1,...,uTmax[r(xt,ut)+Eτxt+1∼p(τxt+1∣xt,ut)[γVπ(xt+1)]]
이때 보상함수 r(xt,ut)는 ut+1,...,uT에 대한 함수가 아니고, 궤적 τxt+1도 ut+1,...,uT에 독립이므로,
V∗(xt)=utmax[r(xt,ut)+ut+1,...,uTmaxEτxt+1∼p(τxt+1∣xt,ut)[γVπ(xt+1)]]=utmax[r(xt,ut)+Eτxt+1∼p(τxt+1∣xt,ut)[πmaxγVπ(xt+1)]]=utmax[r(xt,ut)+Eτxt+1∼p(τxt+1∣xt,ut)[γV∗(xt+1)]]
이다. 또한 행동가치함수로부터,
Q∗(xt,ut)=r(xt,ut)+ut+1,...,uTmax[Ext+1∼p(xt+1∣xt,ut)[γVπ(xt+1)]]=r(xt,ut)+Ext+1∼p(xt+1∣xt,ut)[πmaxγVπ(xt+1)]=r(xt,ut)+Ext+1∼p(xt+1∣xt,ut)[γV∗(xt+1)]
최적 상태가치함수와 최적 행동가치함수의 관계
최적 상태가치함수와 최적 행동가치함수로부터 다음과 같은 관계를 얻을 수 있다.
V∗(xt)=utmaxQ∗(xt,ut)
이로부터 다음과 같은 식을 유도 가능하다.
Q∗(xt,ut)=r(xt,ut)+Ext+1∼p(xt+1∣xt,ut)[γut+1maxQ∗(xt+1,ut+1)]
이를 벨만 최적 방정식(Bellman optimality equation)이라고 부르며, 현재의 최적 가치와 다음 시간스텝의 최적 가치와의 관계를 나타낸다.
최적 정책
상태가치값을 최대로 만드는 정책을 최적 정책(optimal policy)라고 부른다.
π∗(xt)=utargmax[r(xt,ut)+Ext+1∼p(xt+1∣xt,ut)[γV∗(xt+1)]]=utargmaxQ∗(xt,ut)
강화학습 방법
최적의 정책을 얻기 위하여 여러 방법을 사용한다.
1. 가치기반 강화학습 : 가치함수를 추정해 최대의 보상을 계산
2. 정책 그래디언트 : 직접 정책을 유도하는 방법
3. 모델 기반 강화학습 : 환경 모델을 추정해 사용하는 방법