본문 바로가기
코딩코딩/머신러닝, 딥러닝

[강화학습] MDP를 알 때의 플래닝

by g0n1 2021. 10. 3.
728x90

모델을 알고 있을 때 == 모든 정보를 알고 있을 때 == MDP를 알고 있을 때
이때 사용하는 방법이 크게 3가지가 있다.
1. Policy evaluation
2. Policy iterative
3. Value iterative

1. Policy evaluation

  1. 모든 상태의 값을 임의의 값으로 초기화한다.
  2. 하나의 상태에 대해 벨만 기대방정식으로 값을 업데이트 한다.
  3. 다른 모든 상태에 대해서도 값을 업데이트한다.
  4. 수렴할 때 까지 2,3을 계속 반복한다.

이렇게 하면 임의의 값만 있었는데도 실제 값(reward)이 조금씩 섞여 들어가면서 결과적으로는 우리가 찾으려는 목표에 수렴한다.
정책이 고정된 상황에서의 문제 해결 방법이다.

2. Policy iteration

1은 정책을 평가했다 == 벨만 기대 방정식으로 모든 상태의 가치를 평가했었다.
2는 1에서 한가지 단계가 추가된다. 2. 정책을 1의 결과를 기준으로 그리디하게(순간 최대의 이득을 향하게) 움직이도록 policy를 개선한다.

  1. 정책을 평가한다. (벨만 기대 방정식으로 모든 상태의 가치를 평가)
  2. 1의 결과를 기준으로 그리디하게(순간 최대의 이득을 향하게) 움직이도록 policy를 개선한다.

이때, 1의 안에도 loop가 있다는 것을 인지해야한다. 수렴할 때 까지 반복하기 때문이다. 그렇게 되면 1에서의 loop, 2에서의 loop가 중첩되어 계산량이 엄청 많아진다. 하지만 1번 정책평가 과정을 꼭 수렴할 때 까지 하지 않고 한번만 해도 된다. 그래도 정책은 개선될 것이고 결과적으로는 최적 정책을 찾을 것이기 때문이다.

3. Value iteration

3은 2의 1번 스텝에서 기대방정식 대신 최적 방정식을 사용한다.

  1. 벨만 최적방정식으로 상태가 가질 수 있는 최적의 값으로 업데이트
  2. 최적의 상태값을 알기 때문에 1의 결과를 따라가는 것이 곧 optimal하기 때문에 greedy가 아님








728x90

댓글