주어진 정책 π 의 상태별 밸류 vπ(s)를 구하는 것이 생각보다 어려운 일이다.
밸류 를 계산하는 방법은 "벨만 방정식을 이용해서 구한다." 나 다름이 없을 정도로 강화학습에서 중요한 수식이다.
이후 다이나믹 프로그래밍dynamic programming을 이용하여 벨만 방정식을 반복적으로 사용하여 임의로 초기화 되어 있던 값들이 조금씩 실제 밸류에 가까워지는 방식에 대해 다룰것이다.
피보나치 수열이 대표적인 예이다.
fib(n)=51((21+5)n−(21+5)n)
fib(n)=fib(n−1)+fib(n−2)
현재 시점(T) 다음 시점(T+1) 사이의 재귀적 관계를 이용해 정의하여 벨만 방정식을 사용한다.
0 단계
vπ(st)=Eπ[rt+1+γvπ(st+1)]
- 위 식은 현 상태st 의 밸류와 다음 상태 st+1의 밸류와의 관계를 나타냄
- vπ의 정의
π(a1∣st)=0.6,
π(a2∣st)=0.4
1 단계
- 액션 밸류 qπ(s,a) 를 이용하여 상태 밸류 vπ(s)를 표현 하는 첫 번째 식.
- vπ(s)를 이용하여 qπ(s,a)를 표현하는 두 번째 식.
2 단계
v∗(s)=πmax vπ(s)
q∗(s,a)=πmax qπ(s,a)
π∗
- 최적의 정책 : π∗
- 최적의 밸류 : v∗(s)=vπ∗(s) (π∗를 따랐을 때의 밸류)
- 최적의 액션 밸류 : q∗(s,a)=qπ∗(s,a) (π∗를 따랐을 때의 액션 밸류)
0단계
v∗(st)=amaxE[rt+1+γv∗(st+1)]
q∗(st,at)=E[rt+1+γ a′max q∗(st+1,a′)]
1단계
v∗(s)=amax q∗(s,a)
q∗(s,a)=rsa+γs′∈S∑Pss′av∗(s′)
2단계
v∗(s)=amax[rsa+γs′∈S∑Pss′av∗(s′)]
q∗(s,a)=rsa+γs′∈S∑Pss′aa′max q∗)(s′,a′)
벨만 '최적' 방정식에서는 π정책 에 의한 확률적 요소가 사라진다. 최대값 연산자를 통해 제일 좋은 액션을 선택하기에...