Deep Learning/RL

RL) 02. Dynamic Programming

zooyeonii 2021. 3. 30. 14:37

MDP를 알 때의 planning

MDP를 안다
= Reward function과 Transition Probability를 안다.
= 어떤 상태 s에서 행동 a를 실행하면 다음 상태가 어떻게 정해지는지, 보상이 어떻게 될지 미리 알고있다.

  • Prediction ) 정책이 주어졌을 때 각 상태의 value를 평가한다. (value값 구함)
  • Control ) 최적의 정책 함수를 찾음.

Prediction (Iterative policy evaluation을 통해)

 

출처 : zooyeonii , 참고 : 바닥부터 배우는 강화학습
출처 : zooyeonii , 참고 : 바닥부터 배우는 강화학습

Q1) 하지만 초반에 모든 값들이 0으로 초기화 되어있고, 현재 상태의 값과 다음 상태의 값들이 모두 0인데, 다음 상태의 값으로 현재 상태 값을 업데이트하는 것이 의미가 있을까?

하지만 S_t의 값을 업데이트할 때, S_t+1 뿐만 아니라, R_t+1 (보상)이라는 환경에서 주는 확실한 값이 섞여서 업데이트가 된다. 그러므로 무의미한 값에 점점 정확한 값이 섞이며 업데이트가 된다고 할 수 있다.

종료 시점의 경우 상태가치가 0으로 초기화되어 있는데, 이는 정확한 값이다. 종료지점의 이후 상태는 존재하지 않기 때문에, 상태가치함수 값이란 정의 자체가 '미래에 받게 될 누적 보상의 기댓값' 이므로 이 때는 '0'이 정확한 값이다. 이 때문에 종료 시점 근처의 상태들은 다음 상태(중에 종료시점이 있겠쥬)의 값이 더 정확한 값을 지니기 때문에 다른 상태들보다 유의미한 업데이트가 이루어진다.

이로써 벨만 기대방정식을 사용하여 업데이트하면 조금씩 더 정확한 값에 이를 수 있다.

Q2) 정책발전 때 정책을 greedy정책으로 업데이트 하는데, 왜 greedy정책이 기존 정책에 비해 더 나은 것일까?

이는 귀납적으로 증명할 수 있는데, 예를 들어 딱 한 순간 action 을 greedy하게 하고, 나머지는 기존 정책을 따르는 경우와 / 모든 정책을 기존 정책대로 하는 경우, 2가지를 비교했을 때 전자가 더 좋다. 이는 다음 스텝에서도 greedy하게 행동하는 것이 더 낫고, 그 다음 스텝에서도 greedy한 행동을 하는 것이 더 낫다... 그러므로 결국 모든 상태에서 greedy한 정책이 기존 정책보다 좋으므로 정책이 개선되었다는 것을 보장할 수 있다는 것이다.

 

Value iteration 최고의 정책 찾기

 

출처 : zooyeonii

 

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