해당 글은 cs229-notes13를 참고하여 작성되었습니다.
1. Finite-horizon MDPs
- MDP : 의사결정 문제의 수학적 모델링
- 상태(st)에서 행동(at)선택 -> 다음상태(st)로 전이
- 위의 과정에서 에이전트는 보상을 받음
- 에이전트의 목표는 최대한 많은 보상을 받는 Policy 찾기
- optimal Bellman equation : 현재상태의 최적가치함수(Vπ∗(s))와 다음 상태의 최적가치함수(Vπ∗(s′))의 관계식
Vπ∗(s)=R(s)+maxa∑s′Psa(s′)Vπ∗(s′)
π∗(s)=argmaxa∑s′Psa(s′)Vπ∗(s′)
- 이때 V는 가치함수로, cost-to-go이며 π는 policy이다. *가 붙는건 최적이라는 의미
- general setting
- discrete 및 continuous 모두 커버하기 위해 ∑표기를 기댓값 표기로 변경
- "즉시 보상" 개념 도입 -> 현재 state에서 action에 따른 보상 역시 현재의 최적 policy 항에 포함됨
- 유한 시간 범위의 MDP 고려
- "남은 step 수"의 존재에 따라서 policy, 전이확률분포, 보상함수가 시간의 함수가 되어버림
- 전이함수는 왜 시간의 함수가 되는가? : 상태 중 일부였던 시간을 따로 빼서 생각한다고 보면됨.
- Finite-horizon MDPs에서 최적가치함수 찾는 법
- back ground : 유한시간의 마지막 스텝에선 "다음스텝의 가치함수"항이 없음
- 알고리즘
- VT∗ 계산 (유한 시간 중 가장 마지막 step)
- Vt∗를 이용하여 Vt−1∗ 계산 (가장 마지막의 전 step으로부터 0스텝이 될때까지)
2. LQR
- 가정
- 선형 전이 모델(노이즈 포함)
- st+1=Atst+Btat+wt
- wt∼N(0,∑t)
- 2차 보상함수 모델
- R(t)(st,at)=−st⊤Utst−at⊤Wtat
- 위의 보상함수에 따르면 입력도 작고 상태도 origin에 가까울수록 보상이 큰 것. 이는 최종 목표상태를 보통 원점으로 두기 때문
- LQR 알고리즘
1. 만약 모델의 A,B,∑을 모른다면, 임의의 정책으로 전이들을 모으고, 이걸로 가장 전이함수를 잘 나타내는 A,B 찾기
2. DP로 최적 정책 찾기
- Initialization step : VT∗(sT)=−sT⊤UTsT로 마지막 step의 최적가치함수 계산
- Recurrence step : Vt+1∗(st+1)이 state에 대해 2차면 Vt∗(st)도 state에 대해 2차임을 사용해 이의 미분이 0이 되도록 하는 a가 a∗임을 이용하여 at∗찾기
- at∗=[(Bt⊤Φt+1Bt−Wt)−1BtΦt+1At]⋅st=Lt⋅st
- Lt=[(Bt⊤Φt+1Bt−Wt)−1BtΦt+1At]
- Φt=At⊤(Φt+1−Φt+1Bt(Bt⊤Φt+1Bt−Wt)−1BtΦt+1)At−Ut
- Ψt=−tr(∑tΦt+1)+Ψt+1
- Optimal policy is linear in st
- Φt depens on neither Ψ nor the noise ∑t
- optimal policy also does not depend on the noise
3. From non-linear dynamics to LQR
- Linearization of dynamics : 비선형 동역학을 1차 테일러 전개를 통해 특정지점에서의 선형 동역학으로 근사
- st1=F(st)≈F(sˉt)+F′(sˉt)⋅(st−sˉt)
- st1≈F(sˉt,aˉt)+∇sF(sˉt,aˉt)⋅(st−sˉt)+∇aF(sˉt,aˉt)⋅(at−aˉt)
- st+1≈Ast+Bat+κ
- 이때 κ는 상수. 즉, LQR의 전제처럼 Linear하지 않은 동역학이 됨. 이는 st의 차원을 하나 늘려서 선형으로 바꾸는 trick 사용
- DDP : 각 time step마다 nominal trajectory을 discrete하게 나눠서 각 지점에 대해 동역학을 근사화하고 LQR을 돌림
- 이때 nominal trajectory는 비선형 동역학을 따르므로, step이 증가하면 다시 다음 지점에 대해 동역학을 선형화하고 LQR을 돌려야함. stopping criterion까지
4. LQG
- POMDP에서 사용가능한 LQR
- POMDP : 각 time step에서 state의 정보를 전부 알 수 있는게 아님. state를 관측하여 관측치만 알 수 있음
- 모델
- st+1=Atst+Btat+wt
- yt=C⋅st+vt
- 이때 R(t)는 MDP와 똑같음. 안달라짐
- wt,vt는 모두 가우시안 분포를 따음
- LQG 알고리즘
- 우리가 가진 관찰로 belif state distribution 계산
st∣y1,⋯,yt≈N(st∣t,∑t∣t)
- st∣t를 st의 가장 좋은 근사로 사용
- at:=Ltst∣t로 LQR돌림
- Kalman filter : st∣t와 ∑t∣t를 구하는 것은 칼만필터 사용을 추천