policy improvement
Policy 를 개선하는 방법을 말한다.
-
이 과정에서 Value (Vπ) 또는 Action-Value (Qπ) function 의 policy 가 greedy 하게 바뀐다.
- 각 function 들이 더 높은 행동을 많이 하도록 policy 를 바꾼다.
- 각 function 들의 값에 의존하여 더 greedy 하게, 탐욕적으로 얻고자 하는 행동을 한다.
-
π 의 Action-Value function 을 알고 있다면..
π′(a∣s)={0.9⋅π(a∣s)+0.10.9⋅π(a∣s)ifa=argmaxaQπ(s,a)else
더 나은 policy (π′) 를 얻을 수 있다.
π′ : 새롭게 얻은 policy 이고, 기존 policy 에 0.9 를 곱한 다음, 0.1 을 더하는 policy 이다.
-
주어진 state (s) 에서 action value (a) 값을 최대화 하는 행동에 대해서 update 하고, 그 외의 행동에 대해서는 0.1 을 더하지 않겠다.
-
기존 π 에 모두 0.9 배가 되었으므로, 전체 합이 0.9 가 되고, 나머지 0.1 을 가장 큰 행동에 투자한 policy 이다.
check new policy is more greedy
새롭게 얻은 policy π′ 에 대해 기존 Qπ 가 더 greedy 하게 바뀌었는지 보자.
-
new policy π′ 의 Qπ 의 평균 이 original policy π 에서 Qπ 를 평균 낸 것보다 더 크냐? 의 질문.
a∑π′(a∣s)Qπ(s,a)≥a∑π(a∣s)Qπ(s,a)?
-
왼쪽이 더 크다면, π′ 은 π 보다 Qπ 에 대해서 더 greedy 하다고 볼 수 있다.
a∑π′(a∣s)Qπ(s,a)−a∑π(a∣s)Qπ(s,a)≥0
-
new policy π′ 는 original policy π 에 0.9 를 곱한 것에 Qπ 를 최대화 하는 행동에 대해서만 0.1 의 확률을 추가 한다.
a∑π′(a∣s)Qπ(s,a)=a∑0.9π(a∣s)Qπ(s,a)+[0.1Qπ(s,amax)]
-
이것을 풀어서 계산해보면,
0.9a∑π(a∣s)Qπ(s,a)+[0.1Qπ(s,amax)]−1.0a∑π(a∣s)Qπ(s,a)0.1Qπ(s,amax)−0.1a∑π(a∣s)Qπ(s,a)≥0≥0
- 왼쪽은 가장 큰 값에 0.1 을 곱한 값.
- 오른쪽은 모든 가능한 행동에 대한 Qπ 에 대해 평균에 0.1 을 곱한 값.
따라서 그 차는 0 이상이 된다
a∑π′(a∣s)Qπ(s,a)≥a∑π(a∣s)Qπ(s,a)→True
-
π′ 가 π 보다 Qπ 에 대해서 더 greedy 하다는 것이 증명 되었다.
analyze new policy
-
Qπ ( Action-Value function ) 에 대해서 greedy 하게 개선된 policy 는 아래의 조건을 만족한다.
a∑π(a∣s)Qπ(s,a)≤a∑π′(a∣s)Qπ(s,a)for alls∈S
- 좌변은 Qπ′ 를 π 에 대해서 평균 낸 것이다.
- 새로운 policy π′ 에 대해서 평균을 취한 것 보다 작거나 같다.
- 우변 π′ 를 모든 state 에서 다 update 했다면, 이 조건은 모든 state 에서 만족하게 된다.
-
Qπ(s,a) 를 policy π(a∣s) 로 평균 낸 값은,
→ state s 에서 평균적으로 받는 return. 즉, Vπ ( Value function ) 이 된다.
Eaπ[Qπ(s,a)]=Vπ(s)≤Eaπ′[Qπ(s,a)]for alls∈S
- Eaπ′[Qπ(s,a)] : Qπ 를 가지고 정책을 greedy 하게 바꿔서, 평균 값이 더 커진다.
- Vπ 이 Qπ ( Action-Value function ) 를 π′ 에 대해서 평균 낸 것보다 작거나 같다.
-
Qπ 를 가지고 더 greedy 하게 바꾸었으므로, 그것에 대해서 평균 값이 더 커진다.
policy improvement theorem
그런데, 위 조건을 만족하면 π′ 이 π 보다 더 좋은 policy 라고 할 수 있을까??
위의 조건을 만족하면 π′ 이 π 보다 더 나은 policy 라고 할 수 있다.
Eaπ[Qπ(s,a)]≤Eaπ′[Qπ(s,a)]for alls∈S→Vπ(s)≤Vπ′(s)for alls∈S
-
모든 state 에서 Qπ 는 Action a 를 가지고
for alls∈S
-
π′ 에 대해서 평균을 낸 것이 π 에 대해서 평균을 낸 것보다 크거나 같으면,
Eaπ[Qπ(s,a)]≤Eaπ′[Qπ(s,a)]
-
모든 state 에서 Vπ′ 가 Vπ 보다 크거나 같다.
Vπ(s)≤Vπ′(s)
-
위의 정보로 알수 있는 식은 Vπ(st)≤Eatπ′[Qπ(st,at)]
- Vπ(st) 는 Qπ(st,at) 의 π′ 에 대해 평균 낸 것 보다 작거나 같다.
- π′ 가 Qπ 에 대해 더 greedy 하게 update 되었기 때문에 이는 모든 state 에 대해서 만족한다.
- π 에 대한 Qπ(st,at) 는 action 과 state 는 정해졌으므로, 다음 transition 만 고려한다.
proof
Vπ(st)≤Eatπ′[Qπ(st,at)] 이것을 시작하자.
-
π 에 대한 Qπ 는 Vπ 를 이용해서 표현할 수 있다.
Qπ(st,at)=st+1∑p(st+1∣st,at)[R(st,at,st+1)+γVπ(st+1)]=Est+1[R(st,at,st+1)+γVπ(st+1)]
-
풀어진 식을 대입하면
Vπ(st)≤Eatπ′[Qπ(st,at)]=Eat,st+1π′[rt+1+γVπ(st+1)]withrt+1=R(st,at,st+1)
-
Vπ(st)≤Eatπ′[Qπ(st,at)] 이는 모든 state 에서 만족하므로
Vπ(st+1)≤Eat+1π′[Qπ(st+1,at+1)]
이 식도 만족하게 되어 그대로 대입하면,
≤Eat:t+1,st+1π′[rt+1+γQπ(st+1,at+1)]
로 at 였던 것이 at+1 까지 추가된다.
-
Qπ(st+1,at+1) 을 풀어쓰면,
Qπ(st+1,at+1)=st+2∑p(st+2∣st+1,at+1)[R(st+1,at+1,st+2)+γVπ(st+2)]=Est+2[R(st+1,at+1,st+2)+γVπ(st+2)]
-
이와 같은 방법으로 at 에서 at+k 까지 k 번 풀어 쓰면,
≤k→∞limEat:t+k,st+1:t+kπ′[rt+1+γrt+2+γ2rt+3+⋯+γk−1rt+k+γkQπ(st+k,at+k)]
- γ0 에서 γk−1 까지, rt+1 에서 rt+k 나올 것, 마지막 항에 γkQπ 가 나온다.
- γ<1 이면 γkQπ(st+k,at+k)=0 이 되고,
- 나머지 나열되는 식은 π′ 에 대해서 이 값을 평균 내고 있으므로 Vπ′(st) 가 된다.
- π′ 를 따라 행동 했을 때 평균적으로 받는 return 은 Vπ′(st) 이다.
-
전체는 아래와 같다.
Vπ(st)≤Eatπ′[Qπ(st,at)]=Eat,st+1π′[rt+1+γVπ(st+1)]withrt+1=R(st,at,st+1)≤Eat:t+1,st+1π′[rt+1+γQπ(st+1,at+1)]=Eat:t+1,st+1:t+2π′[rt+1+γrt+2+γ2Vπ(st+2)]⋮≤k→∞limEat:t+k,st+1:t+kπ′[rt+1+γrt+2+γ2rt+3+⋯+γkQπ(st+k,at+k)]=Vπ′(st)
-
[Vπ(s)≤Vπ′(s)for alls∈S]
- Vπ′(st) 는 Vπ(st) 보다 모든 state 에 대해서 항상 크거나 같다.
- 모든 state 에서 π′ 을 통해서 얻을 수 있는 value 가 더 크다는 것은 π′ 이 π 보다 더 나은 policy 라는 것을 의미한다.
-
결론
Policy Improvement theorem 에 의해서 Qπ 혹은, Vπ 에 대해서 더 greedy 하게 policy 를 update 하면, 그 policy 는 더 나은 policy 가 된다. 이 말은 Qπ 혹은, Vπ 만 가지고 강화를 해도 된다.
find optimal policy
-
policy improvement 를 이용해서 optimal policy 를 찾을수 있는가?
πk+1(a∣s)={10ifa=argmaxaQπk(s,a)else
- improvement 를 거칠 때 마다, 위와 같은 policy 를 얻게 된다고 가정.
- πk+1(a∣s) 는 기존 πk 에 의한 Qπk 중에 가장 좋은 행동 (argmaxa)만 1 의 확률로 바꾸는 것.
- 가장 좋은 것만 100% 로 고를 수 있게 바꾸는 것.
-
이렇게 policy 를 계속 update 하면, policy improvement theorem 에 의해 모든 state 에 대해서 Vπ ( Value ), Qπ ( Action-Value ) function 이 개선된다.
-
Vπ 이 계속 개선되다가 π 에 따르는 정해진 value 에 어느 정도 수렴하게 될텐데, 이 Improvement 가 수렴했을 때는 Vπk=Vπk+1 이 모든 state 에 대해서 동일 하겠다.
k→∞limVπk(s)=Vπk+1(s)for alls∈S
bellman optimality equation.
-
여기서 Vπk 를 Bellman equation 식을 이용해서 써보면
Vπk(s)=a∑s′∑p(s′∣s,a)πk(a∣s)(r+γVπk(s′))
인데, Vπk=Vπk+1 이므로 Vπk+1 에 대한 Bellman equation 을 써도 무방하다.
Vπk(s)=a∑s′∑p(s′∣s,a)πk+1(a∣s)(r+γVπk+1(s′))
그리고 Vπk+1 만 Vπk 로 바꿔주면,
Vπk(s)=a∑s′∑p(s′∣s,a)πk+1(a∣s)(r+γVπk(s′))
πk+1 은 πk 에 대한 Qπ 의 max operator 로 바뀔 수 있다.
πk+1(a∣s)={10ifa=argmaxaQπk(s,a)else
- πk+1 에 대한 action 은 πk 에 대한 Qπk 값 중에서 가장 큰 것만 100% 고르기 때문.
- πk 에 대한 Qπk(s,a) 에서 가장 크게 하는 행동이 πk+1 이므로 max operator 로 바뀔 수 있다.
Vπk(s)=amaxs′∑p(s′∣s,a)(r+γVπk(s′))
이것은 Bellman optimality equation! 이다.
result
- Vπk 가 Bellman optimality equation 을 만족한다는 것인데
- optimal value function 이라는 뜻.
- πk 는 optimal policy 중 하나라는 뜻.
- optimal policy 는 여러 개가 될 수 있다.
- 최종적으로 얻은 식은 Bellman optimality equation 이고,
Vπk(s)=amaxs′∑p(s′∣s,a)(r+γVπk(s′))for alls∈S
- 이 policy 를 모든 state 에 대해서 계속 update 를 하면, optimal policy 를 얻을 수 있다.
- Vπk(s) 는 optimal value function 이고, 따라서 πk 는 optimal poilcy 이다.
ref