AI 딥러닝/RL

가치함수 (Value Function)

깊은대학 2021. 4. 21. 17:33

어떤 상태변수 xt에서 시작하여 그로부터 어떤 정책 π에 의해서 행동이 가해졌을 때 기대할 수 있는 미래 보상의 총합을 상태가치(state-value)라고 한다.

 

 

상태가치 함수의 정의는 다음과 같다.

 

(1)Vπ(xt)=Eτut:uTp(τut:uT|xt)[rt+γrt+1+γ2rt+2++γTtrT|xt]=τut:uT(k=tTγktrk)p(τut:uT|xt)dτut:uT

 

여기서 τut:uT=(ut,xt+1,ut+1,...,uT)는 상태변수 xt에서 시작하여 그로부터 어떤 정책 π로 생성되는 궤적이다. 그리고 rk=r(xk,uk)는 보상함수를 나타낸다.

 

 

어떤 상태변수 xt에서 행동 ut를 선택하고 그로부터 어떤 정책 π에 의해서 행동이 가해졌을 때 기대할 수 있는 미래 보상의 총합을 행동가치(action-value)라고 한다. 행동가치 함수의 정의는 다음과 같다.

 

(2)Qπ(xt,ut)=Eτxt+1:uTp(τxt+1:uT|xt,ut)[rt+γrt+1+γ2rt+2++γTtrT|xt,ut]=τxt+1:uT(k=tTγktrk)p(τxt+1:uT|xt,ut)dτxt+1:uT

 

여기서 τxt+1:uT=(xt+1,ut+1,...,uT)는 상태변수 xt에서 행동 ut를 선택하고 그로부터 어떤 정책 π로 생성되는 궤적이다.

 

 

공간상에서 상태가치 함수와 행동가치 함수의 관계는 다음과 같다.

 

(3)Vπ(xt)=Eutπ(ut|xt)[Qπ(xt,ut)]=utQπ(xt,ut)π(ut|xt)dut

 

즉, 상태가치는 상태변수 xt에서 선택 가능한 모든 행동 ut에 대한 행동가치의 평균값임을 알 수 있다.

 

 

시간상에서 상태가치와 행동가치의 관계식을 알아보기 위해서, 행동가치 함수를 한 시간스텝 전개해 보자.

 

(4)Qπ(xt,ut)=τxt+1:uT(k=tTγktrk)p(τxt+1:uT|xt,ut)dτxt+1:uT=τxt+1:uT(rt+k=t+1Tγktrk)p(τxt+1:uT|xt,ut)dτxt+1:uT=rt+τxt+1:uT(k=t+1Tγktrk)p(τxt+1:uT|xt,ut)dτxt+1:uT

 

조건부 확률의 연쇄법칙에 의하면

 

(5)p(τxt+1:uT|xt,ut)=p(xt+1,τut+1:uT|xt,ut)=p(τut+1:uT|xt+1,xt,ut)p(xt+1|xt,ut)=p(τut+1:uT|xt+1)p(xt+1|xt,ut)

 

가 된다. 여기서 τut+1:uT=(ut+1,...,uT) 이다. 위 식의 마지막 단계는 마르코프(Markov) 시퀀스 가정을 사용한 것이다.

식 (5)를 식 (4)의 두 번째 적분식에 연쇄법칙을 적용하면 다음과 같이 전개된다

 

(6)τxt+1:uT(k=t+1Tγktrk)p(τxt+1:uT|xt,ut)dτxt+1:uT      =τxt+1:uT(k=t+1Tγktrk)p(τut+1:uT|xt+1)p(xt+1|xt,ut)dτxt+1:uT      =xt+1γ[τut+1:uT(k=t+1Tγkt1rk)p(τut+1:uT|xt+1)dτut+1:uT]p(xt+1|xt,ut)dxt+1

 

상태가치 함수의 정의인 식 (1)에 의하면 위 식은 대괄호항은 Vπ(xt+1)이다. 따라서

 

(7)τxt+1:uT(k=t+1Tγktrk)p(τxt+1:uT|xt,ut)dτxt+1:uT      =xt+1γVπ(xt+1)p(xt+1|xt,ut)dxt+1

 

이 된다.

 

 

식 (7)을 (4)에 대입하면, 행동가치 함수는 다음과 같이 된다.

 

(8)Qπ(xt,ut)=rt+xt+1γVπ(xt+1)p(xt+1|xt,ut)dxt+1=rt+Ext+1p(xt+1|xt,ut)[γVπ(xt+1)]

 

식 (8)을 (3)에 대입하면 상태가치 함수는 다음과 같이 된다.

 

(9)Vπ(xt)=ut[rt+xt+1γVπ(xt+1)p(xt+1|xt,ut)dxt+1]π(ut|xt)dut=Eutπ(ut|xt)[rt+Ext+1p(xt+1|xt,ut)[γVπ(xt+1)]]

 

식 (3)을 식 (8)에 대입하면 행동가치 함수는 다음과 같이 된다.

 

(10)Qπ(xt,ut)=rt+xt+1γ[ut+1Qπ(xt+1,ut+1)π(ut+1|xt+1)dut+1]p(xt+1|xt,ut)dxt+1=rt+Ext+1p(xt+1|xt,ut)[Eut+1π(ut+1|xt+1)[γQπ(xt+1,ut+1)]]

 

식 (9)와 (10)을 각각 상태가치와 행동가치 벨만 방정식(Bellman equation)이라고 한다. 벨만 방정식은 시간상에서 상태가치와 행동가치의 관계식을 나타낸다.

식 (9)와 (10)의 좌변과 우변에 각각 똑같아 보이는 상태가치 함수와 행동가치 함수가 있는데, 사실은 가치함수가 시변(time-varying) 함수이므로 두 개의 가치함수는 다른 것이다.

 

 

하지만 무한구간(T, infinite-horizon)에서는 시불변 함수(시간스텝과 무관하게 동일한 입력값에 대해서 동일한 결과값을 갖는 함수)가 된다. 가치함수를 신경망으로 근사화할 때는 암묵적으로 가치함수가 시불변 함수임을 전제로 한다.

 

 

상태가치 함수를 예로 들어서 무한구간에서 가치함수가 시불변 함수가 됨을 증명해 보자.

무한구간에서 Vπ(xt)는 정의에 의해서 다음과 같이 된다.

 

Vπ(xt)=Eτut:p(τut:|xt)[rt+γrt+1+γ2rt+2+|xt]

 

무한구간에서 Vπ(xt+1)는 정의에 의해서 다음과 같이 된다.

 

Vπ(xt+1)=Eτut+1:p(τut+1:|xt+1)[rt+1+γrt+2+γ2rt+3+|xt+1]

 

정책 확률밀도함수 π(ut|xt)와 환경 모델 p(xt+1|xt,ut)가 시불변이라면(역시 심층강화학습에서는 암묵적으로 시불변 함수임을 전제로 한다), 위 식에서 s=t+1 로 놓을 수 있다.

 

Vπ(xt+1)=Eτus:p(τus:|xs)[rs+γrs+1+γ2rs+2+|xs]=Vπ(xs)

 

따라서 무한구간에서 상태가치 함수는 시간스텝과 관계없이 동일한 입력에 대해서는 동일한 결과를 산출하는 시불변 함수라는 것을 알 수 있다.