4. Dynamic Programming
데이터사이언스 대학원 강화학습 수업을 듣고 정리한 내용입니다.
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,
) - Policy Improvement(control): value function이 주어졌을 때, 향상된 policy를 계산하는 것(MDP,
)
Policy Evaluation¶
Policy Evaluation은 policy
Iterative Policy Evaluation
Example: 4 x 4 Grid-World¶
이번 Grid-World 예시는 다음과 같다.
Note
- Non-terminal states
, 회색 영역은 terminal state. - State Transition(
)은 의 보상을 얻고, grid밖을 벗어나면 이전 state에 있는 것으로 간주한다. 즉, 많이 움직일 수록 안좋다. - Actions
- Uniformly random policy
for all and for all non-terminal states - Deterministic state transition & reward model
- 예시1:
, grid 5에서 우측 행동( ) 선택 시 grid 6으로 가고 보상도 을 얻을 확률은 1. - 예시2:
, grid 7에서 우측 행동( ) 선택 시 grid 7으로 가고 보상도 을 얻을 확률은 1. - 예시3:
, grid 5에서 우측 행동( ) 선택 시 grid 10으로 갈 수 있는 확률은 0.
- 예시1:
를 가정한다.
그렇다면 이러한 MDP 환경에서 최대의 보상은 무엇일까? 당연히 제일 적은 스텝으로 terminal state에 도달하는 것이다.
따라서 Initial State
과정 풀어쓰기
(i, j) | 0 | 1 | 2 | 3 |
---|---|---|---|---|
0 | 0.0 | 0.0 | 0.0 | 0.0 |
1 | 0.0 | 0.0 | 0.0 | 0.0 |
2 | 0.0 | 0.0 | 0.0 | 0.0 |
3 | 0.0 | 0.0 | 0.0 | 0.0 |
초기 상태 가치는 모두 0.0이다.
(i, j) | 0 | 1 | 2 | 3 |
---|---|---|---|---|
0 | 0.0 | -1.0 | -1.0 | -1.0 |
1 | -1.0 | -1.0 | -1.0 | -1.0 |
2 | -1.0 | -1.0 | -1.0 | -1.0 |
3 | -1.0 | -1.0 | -1.0 | 0.0 |
각 state
예를 들어, 좌표 (0, 2)
다른 예시로 terminal state 중 하나인 좌표 (0, 0)
은 모든 transition에 대하여 확률이 0이기 때문에 계속
(i, j) | 0 | 1 | 2 | 3 |
---|---|---|---|---|
0 | 0.0 | -1.75 | -2.0 | -2.0 |
1 | -1.75 | -2.0 | -2.0 | -2.0 |
2 | -2.0 | -2.0 | -2.0 | -1.75 |
3 | -2.0 | -2.0 | -1.75 | 0.0 |
각 state
예를 들어, 좌표 (1, 2)
다른 예시로, 좌표 (0, 1)
Policy Improvement¶
Policy Improvement는 value function
Policy Improvement Theorem
Let
Then the policy
Theorm을 풀어 쓰자면, 새로운 policy
Grid-World Improved Policy
최종적으로 improved policy는 action-value가 최대가 되는 action을 선택하는 policy가 된다. 예:
좌:
좌:
좌:
좌:
좌:
좌:
Policy Iteration¶
우리의 최종 목적은 결국 최적의 policy를 구하는 것이다. Policy Iteration은 policy evaluation(
Policy Iteration
-
Policy Evaluation
: 이전의 value와 현재 value의 차이 : 이전 value 저장- 모든 state
에서 벨만 업데이트를 통해 현재 의 value 를 구한다. 와 의 차이 절댓값과 중 큰 것을 남긴다. 가 아주 작은 임의의 수 보다 작을 때 까지 Policy Evaluation을 한다.
-
Policy Improvement
- 모든 state
에서 value가 가장 큰 action을 선택하여 policy 로 지정 old-action
이 현재 policy 와 같이 않으면 아직policy-stable
상태가 아닌 것이다.policy-stable
상태면 멈추고 최적의 value 와 최적의 policy 반환
- 모든 state
Value Iteration¶
Policy Iteration의 단점은 매 스텝마다 policy evaluation이 포함된다는 것이다. 한번에 가능하게 만들 수 없을까?
Value Iteration
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를 통해서 적당히 좋은 최적값을 찾으면 최종적으로 최적의 값을 찾게 된다.