MDP를 알 때의 planning
MDP를 안다
= Reward function과 Transition Probability를 안다.
= 어떤 상태 s에서 행동 a를 실행하면 다음 상태가 어떻게 정해지는지, 보상이 어떻게 될지 미리 알고있다.
- Prediction ) 정책이 주어졌을 때 각 상태의 value를 평가한다. (value값 구함)
- Control ) 최적의 정책 함수를 찾음.
Prediction (Iterative policy evaluation을 통해)
Q1) 하지만 초반에 모든 값들이 0으로 초기화 되어있고, 현재 상태의 값과 다음 상태의 값들이 모두 0인데, 다음 상태의 값으로 현재 상태 값을 업데이트하는 것이 의미가 있을까?
하지만 S_t의 값을 업데이트할 때, S_t+1 뿐만 아니라, R_t+1 (보상)이라는 환경에서 주는 확실한 값이 섞여서 업데이트가 된다. 그러므로 무의미한 값에 점점 정확한 값이 섞이며 업데이트가 된다고 할 수 있다.
종료 시점의 경우 상태가치가 0으로 초기화되어 있는데, 이는 정확한 값이다. 종료지점의 이후 상태는 존재하지 않기 때문에, 상태가치함수 값이란 정의 자체가 '미래에 받게 될 누적 보상의 기댓값' 이므로 이 때는 '0'이 정확한 값이다. 이 때문에 종료 시점 근처의 상태들은 다음 상태(중에 종료시점이 있겠쥬)의 값이 더 정확한 값을 지니기 때문에 다른 상태들보다 유의미한 업데이트가 이루어진다.
이로써 벨만 기대방정식을 사용하여 업데이트하면 조금씩 더 정확한 값에 이를 수 있다.
Q2) 정책발전 때 정책을 greedy정책으로 업데이트 하는데, 왜 greedy정책이 기존 정책에 비해 더 나은 것일까?
이는 귀납적으로 증명할 수 있는데, 예를 들어 딱 한 순간 action 을 greedy하게 하고, 나머지는 기존 정책을 따르는 경우와 / 모든 정책을 기존 정책대로 하는 경우, 2가지를 비교했을 때 전자가 더 좋다. 이는 다음 스텝에서도 greedy하게 행동하는 것이 더 낫고, 그 다음 스텝에서도 greedy한 행동을 하는 것이 더 낫다... 그러므로 결국 모든 상태에서 greedy한 정책이 기존 정책보다 좋으므로 정책이 개선되었다는 것을 보장할 수 있다는 것이다.
Value iteration 최고의 정책 찾기
value iteration 과 policy iteration의 차이점 : policy iteration은 현 정책으로 행동하고, state value를 구해서 정책을 평가함. 벨만기대방정식을 통해 state value를 업데이트하고, 그 후 정책을 greedy하게 업데이트함. value iteration은 현 정책이 없음. MDP를 다 알기 때문에 벨만최적방정식을 통해 각 상태의 max state value를 구함. 이렇게 최적 가치함수가 정해지면, 이를 따라 움직이는 것이 곧 최적의 정책이 됨.
참고 : 바닥부터 배우는 강화학습, 파이썬과 케라스로 배우는 강화학습, David silver 강의
'Deep Learning > RL' 카테고리의 다른 글
RL) Hindsight Experience Replay (0) | 2021.08.27 |
---|---|
Multi-task RL (0) | 2021.08.22 |
[paper review] Asynchronous Methods for Deep RL (0) | 2021.05.21 |
RL) 03. Monte-Carlo Prediction (0) | 2021.03.30 |
RL) 01. MDP (0) | 2021.03.19 |