강화학습 - Bellman 방정식

BSH·2023년 5월 17일
0

강화학습_basic

목록 보기
3/12

이번 장에서는 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)]\begin{matrix} v_{\pi}(s_{t})&=&\mathbb{E_{\pi}}[G_{t}] \\ &=&\mathbb{E_{\pi}}[r_{t+1}+\gamma r_{t+2}+\gamma^{2}r_{t+2}+...] \\ &=&\mathbb{E_{\pi}}[r_{t+1}+\gamma( r_{t+2}+\gamma r_{t+2}+...)] \\ &=&\mathbb{E_{\pi}}[r_{t+1}+\gamma G_{t+1}] \\ &=&\mathbb{E_{\pi}}[r_{t+1}+\gamma v_{\pi}(s_{t+1})] \end{matrix}

다음으로 정책과 state-action value function을 이용해 vπv_{\pi}를 계산하는 방법입니다.

vπ(st)=ΣaAπ(as)qπ(s,a)v_{\pi}(s_{t})=\Sigma_{a\in A}\pi(a|s)q_{\pi}(s, a)

π(as)\pi(a|s)는 s에서 a를 실행할 확률을 뜻하고 qπ(s,a)q_{\pi}(s, a)는 s에서 a를 실행하는 value를 나타냅니다.

이제 조금 더 자세히 들어가 보겠습니다.

qπ(s,a)=rsa+γΣsSPssavπ(s)q_{\pi}(s, a)=r^{a}_{s}+\gamma \Sigma_{s'\in S}P^{a}_{ss'}v_{\pi}(s')

rsar^{a}_{s}은 즉시 얻는 보상, PssaP^{a}_{ss'}는 s에서 s'으로 가는 확률, vπ(s)v_{\pi}(s')는 s'의 value입니다. 어떤 행동을 취한다고해서 정해진 하나의 상태로 바뀔 수 있지만 환경에 의한 랜덤적인 요소가 존재합니다. 그래서 전이 확률 행렬 P를 사용해 value의 합을 구해주어야 합니다.

이제 state-action value function을 그대로 state function에 대입해줍니다.

vπ(st)=ΣaAπ(as)(rsa+γΣsSPssavπ(s))v_{\pi}(s_{t})=\Sigma_{a\in A}\pi(a|s)(r^{a}_{s}+\gamma \Sigma_{s'\in S}P^{a}_{ss'}v_{\pi}(s'))

반대로 대입하는 경우에는 아래와 같습니다.

qπ(s,a)=rsa+γΣsSPssaΣaAπ(as)qπ(s,a)q_{\pi}(s, a)=r^{a}_{s}+\gamma \Sigma_{s'\in S}P^{a}_{ss'}\Sigma_{a'\in A}\pi(a'|s')q_{\pi}(s', a')

다음 상태의 value와 현재의 연결고리를 나타내는 형식으로 풀어써서 어려워보이지만 전혀 그렇지 않습니다. 이제 이 식을 계산하기 위해서는 보상함수 rsar^{a}_{s}와 전이 확률 PssaP^{a}_{ss'}를 알아야합니다. 이 두가지는 환경의 일부이기 때문에 이 정보를 알고있을 때 MDP를 안다라고 표현합니다.
조금 더 풀어서 말하면 rsar^{a}_{s}을 알고있으면 s에서 a를 할 때 어떤 보상을 받을지 기댓값을 이미 알고있다는 말이고 PssaP^{a}_{ss'}를 알고있다는 것은 s에서 a를 할 때 어떤상태에 도달할지 그 확률분포를 모두 알고 있다는 얘기입니다.


현실의 문제에서는 MDP에 대한 정보를 모르는 상황이 더 많습니다. 그리고 그런 상황에서 강화학습을 해야합니다. 그래서 샘플링(경험)을 통한 학습을 하게됩니다.
모델에 대한 정보를 모를 때 학습하는 접근법은 Model-free, 반대로 rsar^{a}_{s}, PssaP^{a}_{ss'}를 알고 있다면 실제로 경험해보지 않고 시뮬레이션 해보는 것만으로 강화학습을 할 수 있습니다. 이런 종류의 접근법은 Model-based 또는 planning이라고 합니다.
어떤 방법이든 그 중심에는 Bellman equation이 존재합니다. 다음으로는 벨만 최적 방정식을 알아봅시다.

벨만 최적 방정식

벨만 최적 방정식은 기대 방적식과는 대르게 최적 함수에 대한 수식입니다.

최적 밸류와 최적 정책

최적 함수의 정의는 아래와 같습니다.

v=maxπvπ(s)v_{*}=max_{\pi}v_{\pi}(s)
q(s,a)=maxπqπ(s,a)q_{*}(s,a)=max_{\pi}q_{\pi}(s,a)

여기서 의문점은 어떤 상황에는 1정책, 또 다른 상황에서는 2정책이 최고인 상황이 있을 때는 어떻게 할지 고민일 수 있습니다. 그러나 그런 상황에서는 각 상황에 맞추어 각 1, 2 정책을 따로 적용하는 새로운 최적 정책을 만들면 됩니다. 그리고 모든 상태에서 최적 밸류를 갖는 정책 π\pi_{*}가 최소한 한개 이상 존재하는 것이 증명되어 있다고 합니다.

벨만 최적 방정식

간단하게 수식을 살펴보겠습니다.

위의 기대방정식에서 π\pi가 최적이라는 점만 넣으면 거의 동일합니다.
π\pi에 의한 확률적 요소가 사라지고 max값을 취하는 action을 선택합니다.

v(st)=maxa(rsa+γΣsSPssav(s))v_{*}(s_{t})=max_{a}(r^{a}_{s}+\gamma \Sigma_{s'\in S}P^{a}_{ss'}v_{*}(s'))
q(s,a)=rsa+γΣsSPssamaxaq(s,a)q_{*}(s, a)=r^{a}_{s}+\gamma \Sigma_{s'\in S}P^{a}_{ss'}max_{a'}q_{*}(s', a')
profile
컴공생

0개의 댓글