이번 장에서는 value를 구하는 방법에 대해 나옵니다.
벨만 기대 방정식
수식을 차근차근 살펴보겠습니다.
vπ(st)=====Eπ[Gt]Eπ[rt+1+γrt+2+γ2rt+2+...]Eπ[rt+1+γ(rt+2+γrt+2+...)]Eπ[rt+1+γGt+1]Eπ[rt+1+γvπ(st+1)]
다음으로 정책과 state-action value function을 이용해 vπ를 계산하는 방법입니다.
vπ(st)=Σa∈Aπ(a∣s)qπ(s,a)
π(a∣s)는 s에서 a를 실행할 확률을 뜻하고 qπ(s,a)는 s에서 a를 실행하는 value를 나타냅니다.
이제 조금 더 자세히 들어가 보겠습니다.
qπ(s,a)=rsa+γΣs′∈SPss′avπ(s′)
rsa은 즉시 얻는 보상, Pss′a는 s에서 s'으로 가는 확률, vπ(s′)는 s'의 value입니다. 어떤 행동을 취한다고해서 정해진 하나의 상태로 바뀔 수 있지만 환경에 의한 랜덤적인 요소가 존재합니다. 그래서 전이 확률 행렬 P를 사용해 value의 합을 구해주어야 합니다.
이제 state-action value function을 그대로 state function에 대입해줍니다.
vπ(st)=Σa∈Aπ(a∣s)(rsa+γΣs′∈SPss′avπ(s′))
반대로 대입하는 경우에는 아래와 같습니다.
qπ(s,a)=rsa+γΣs′∈SPss′aΣa′∈Aπ(a′∣s′)qπ(s′,a′)
다음 상태의 value와 현재의 연결고리를 나타내는 형식으로 풀어써서 어려워보이지만 전혀 그렇지 않습니다. 이제 이 식을 계산하기 위해서는 보상함수 rsa와 전이 확률 Pss′a를 알아야합니다. 이 두가지는 환경의 일부이기 때문에 이 정보를 알고있을 때 MDP를 안다라고 표현합니다.
조금 더 풀어서 말하면 rsa을 알고있으면 s에서 a를 할 때 어떤 보상을 받을지 기댓값을 이미 알고있다는 말이고 Pss′a를 알고있다는 것은 s에서 a를 할 때 어떤상태에 도달할지 그 확률분포를 모두 알고 있다는 얘기입니다.
현실의 문제에서는 MDP에 대한 정보를 모르는 상황이 더 많습니다. 그리고 그런 상황에서 강화학습을 해야합니다. 그래서 샘플링(경험)을 통한 학습을 하게됩니다.
모델에 대한 정보를 모를 때 학습하는 접근법은 Model-free, 반대로 rsa, Pss′a를 알고 있다면 실제로 경험해보지 않고 시뮬레이션 해보는 것만으로 강화학습을 할 수 있습니다. 이런 종류의 접근법은 Model-based 또는 planning이라고 합니다.
어떤 방법이든 그 중심에는 Bellman equation이 존재합니다. 다음으로는 벨만 최적 방정식을 알아봅시다.
벨만 최적 방정식
벨만 최적 방정식은 기대 방적식과는 대르게 최적 함수에 대한 수식입니다.
최적 밸류와 최적 정책
최적 함수의 정의는 아래와 같습니다.
v∗=maxπvπ(s)
q∗(s,a)=maxπqπ(s,a)
여기서 의문점은 어떤 상황에는 1정책, 또 다른 상황에서는 2정책이 최고인 상황이 있을 때는 어떻게 할지 고민일 수 있습니다. 그러나 그런 상황에서는 각 상황에 맞추어 각 1, 2 정책을 따로 적용하는 새로운 최적 정책을 만들면 됩니다. 그리고 모든 상태에서 최적 밸류를 갖는 정책 π∗가 최소한 한개 이상 존재하는 것이 증명되어 있다고 합니다.
벨만 최적 방정식
간단하게 수식을 살펴보겠습니다.
위의 기대방정식에서 π가 최적이라는 점만 넣으면 거의 동일합니다.
π에 의한 확률적 요소가 사라지고 max값을 취하는 action을 선택합니다.
v∗(st)=maxa(rsa+γΣs′∈SPss′av∗(s′))
q∗(s,a)=rsa+γΣs′∈SPss′amaxa′q∗(s′,a′)