728x90
모델을 알고 있을 때 == 모든 정보를 알고 있을 때 == MDP를 알고 있을 때
이때 사용하는 방법이 크게 3가지가 있다.
1. Policy evaluation
2. Policy iterative
3. Value iterative
1. Policy evaluation
- 모든 상태의 값을 임의의 값으로 초기화한다.
- 하나의 상태에 대해 벨만 기대방정식으로 값을 업데이트 한다.
- 다른 모든 상태에 대해서도 값을 업데이트한다.
- 수렴할 때 까지 2,3을 계속 반복한다.
이렇게 하면 임의의 값만 있었는데도 실제 값(reward)이 조금씩 섞여 들어가면서 결과적으로는 우리가 찾으려는 목표에 수렴한다.
정책이 고정된 상황에서의 문제 해결 방법이다.
2. Policy iteration
1은 정책을 평가했다 == 벨만 기대 방정식으로 모든 상태의 가치를 평가했었다.
2는 1에서 한가지 단계가 추가된다. 2. 정책을 1의 결과를 기준으로 그리디하게(순간 최대의 이득을 향하게) 움직이도록 policy를 개선한다.
- 정책을 평가한다. (벨만 기대 방정식으로 모든 상태의 가치를 평가)
- 1의 결과를 기준으로 그리디하게(순간 최대의 이득을 향하게) 움직이도록 policy를 개선한다.
이때, 1의 안에도 loop가 있다는 것을 인지해야한다. 수렴할 때 까지 반복하기 때문이다. 그렇게 되면 1에서의 loop, 2에서의 loop가 중첩되어 계산량이 엄청 많아진다. 하지만 1번 정책평가 과정을 꼭 수렴할 때 까지 하지 않고 한번만 해도 된다. 그래도 정책은 개선될 것이고 결과적으로는 최적 정책을 찾을 것이기 때문이다.
3. Value iteration
3은 2의 1번 스텝에서 기대방정식 대신 최적 방정식을 사용한다.
- 벨만 최적방정식으로 상태가 가질 수 있는 최적의 값으로 업데이트
- 최적의 상태값을 알기 때문에 1의 결과를 따라가는 것이 곧 optimal하기 때문에 greedy가 아님
728x90
'코딩코딩 > 머신러닝, 딥러닝' 카테고리의 다른 글
[ml-agents] 윈도우에 ml-agents 환경 구축 (0) | 2022.02.14 |
---|---|
optimizer 비교 (0) | 2021.10.28 |
빅데이터분석기사 실기 준비 - 분류 모델 11개 비교 (0) | 2021.06.16 |
LinearRegression의 fit_intercept 파라미터 알아보기 (0) | 2021.05.31 |
ValueError: Setting a random_state has no effect since shuffle is False. You should leave random_state to its default (None), or set shuffle=True. (0) | 2021.04.28 |
댓글