데이터사이언스 대학원 강화학습 수업을 듣고 정리한 내용입니다. Policy Evaluati...
데이터사이언스 대학원 강화학습 수업을 듣고 정리한 내용입니다.
Policy Evaluation & Policy Improvement
The term dynamic programming (DP) refers to a collection of algorithms that can be used to compute optimal policies given a perfect model of the environment as a Markov decision process (MDP)
강화학습에서 우리가 완전한 dynamic을 알고 있을 때, DP로 다음 문제를 해결하기 위해 사용한다.
Policy Evaluation(prediction problem): 주어진 policy에서 value fuction을 반복적으로 연산하는 과정(MDP, π→vπ)
Policy Improvement(control): value function이 주어졌을 때, 향상된 policy를 계산하는 것(MDP, vπ→π′)
Policy Evaluation
Policy Evaluation은 policy π가 주어졌을 때, Value function vπ를 계산한다. Policy Evaluation Update Rule은 다음과 같으며, 여기서 k는 k 번째 policy다.
vk+1(s)←a∑π(a∣s)s′∑r∑p(s′,r∣s,a)[r+γvk(s′)]
“Iterative Policy Evaluation”
pseduo code
Example: 4 x 4 Grid-World
이번 Grid-World 예시는 다음과 같다.
note
Non-terminal states S={1,2,⋯,14}, 회색 영역은 terminal state.
State Transition(s→s′)은 −1의 보상을 얻고, grid밖을 벗어나면 이전 state에 있는 것으로 간주한다. 즉, 많이 움직일 수록 안좋다.
Actions A={↑,↓,→,←}
Uniformly random policy π(a∣s)=0.25 for all a∈A and for all non-terminal states s∈S
Deterministic state transition & reward model p(s′,r∣s,a)
예시1: p(s′=6,r=−1∣s=5,a=→)=1, grid 5에서 우측 행동(→) 선택 시 grid 6으로 가고 보상도 −1을 얻을 확률은 1.
예시2: p(s′=7,r=−1∣s=7,a=→)=1, grid 7에서 우측 행동(→) 선택 시 grid 7으로 가고 보상도 −1을 얻을 확률은 1.
예시3: p(s′=10,r=r′∣s=5,a=→)=0∀r′∈R, grid 5에서 우측 행동(→) 선택 시 grid 10으로 갈 수 있는 확률은 0.
γ=1.0를 가정한다.
그렇다면 이러한 MDP 환경에서 최대의 보상은 무엇일까? 당연히 제일 적은 스텝으로 terminal state에 도달하는 것이다.
따라서 Initial State V(s)=0를 만들고 계속해서 policy evaluation을 진행해보자. 메모리에 상관없이 각 좌표에서 replace하지 않고 두 개의 matrix로 업데이트 한다고 가정한다.
Policy Improvement는 value function vπ가 주어졌을 때, 향상된 policy π′을 구하는 것이다.
“Policy Improvement Theorem”
Let π and π′ be any pair of deterministic policies such that, for all s∈S, qπ(s,π′(s))≥vπ(s).
Then the policy π′ must be as good as, or better than π.
Theorm을 풀어 쓰자면, 새로운 policy π′ 에서의 action-value가 state-value 보다 같거나 높다면, π′는 π보다 같거나 좋은 policy다. 따라서 improved policy π′를 얻기 위해서는 action-value function을 최대화 하는 policy를 선택하면 된다.
최종적으로 improved policy는 action-value가 최대가 되는 action을 선택하는 policy가 된다. 예: s=1에서 improved policy는 ←
k=0
좌: $v_k$, 우: greedy policy with $v_k$
k=1
좌: $v_k$, 우: greedy policy with $v_k$
k=2
좌: $v_k$, 우: greedy policy with $v_k$
k=5
좌: $v_k$, 우: greedy policy with $v_k$
k=50
좌: $v_k$, 우: greedy policy with $v_k$
k=257($\infty)$
좌: $v_k$, 우: greedy policy with $v_k$
Policy Iteration
우리의 최종 목적은 결국 최적의 policy를 구하는 것이다. Policy Iteration은 policy evaluation(E)과 improvement(I)를 반복하는 과정이다.
π0Evπ0Iπ1E⋯Iπ∗Evπ∗
“Policy Iteration”
pseduo code
해설
2. Policy Evaluation - $\Delta$: 이전의 value와 현재 value의 차이 - $v$: 이전 value 저장 - 모든 state $s$ 에서 벨만 업데이트를 통해 현재 $s$의 value $V(s)$를 구한다. - $v$와 $V(s)$의 차이 절댓값과 $\Delta$중 큰 것을 남긴다. - $\Delta$가 아주 작은 임의의 수 $\theta$보다 작을 때 까지 Policy Evaluation을 한다.3. Policy Improvement - 모든 state $s$ 에서 value가 가장 큰 action을 선택하여 policy $\pi(s)$ 로 지정 - `old-action` 이 현재 policy $\pi(s)$와 같이 않으면 아직 `policy-stable` 상태가 아닌 것이다. - `policy-stable` 상태면 멈추고 최적의 value $v_*$와 최적의 policy $\pi_*$ 반환
Value Iteration
Policy Iteration의 단점은 매 스텝마다 policy evaluation이 포함된다는 것이다. 한번에 가능하게 만들 수 없을까?
“Value Iteration”
pseduo code
Generalized Policy Iteration
the general idea of letting policy-evaluation and policyimprovement processes interact, independent of the granularity and other details of the two processes
Policy evaluation과 policy imporvement의 반복이라 볼 수 있다. 그리고 매 스텝마다 최적만 찾을 필요는 없다. approximate policy and approximate value function를 통해서 적당히 좋은 최적값을 찾으면 최종적으로 최적의 값을 찾게 된다.