logo

반복적 정책 평가법 실습

미끄러운 보행의 경우

  • 5번의 상태 가치 = 4번 갈 확률 * 4번의 상태 가치 + 5번에 그대로 있을 확률 * 5번의 상태 가치 + 골을 할 확률 * 골의 상태 가치
  • 4번의 상태 가치 = 3번 갈 확률 * 3번의 상태 가치 + 4번에 그대로 있을 확률 * 4번의 상태 가치 + 5번 갈 확률 * 5번의 상태 가치
  • ...
  • 확률은 정책과 전이 함수에 따라 결정되므로 각 상태 가치를 방정식으로 풀면 되지만, 풀기가 어려움 -> 부트스트래핑을 이용
V(5)=P(4∣5)V(4)+P(5∣5)V(5)+P(골∣5)V(골) V(4)=P(3∣4)V(3)+P(4∣4)V(4)+P(5∣4)V(5)
구멍 1 2 3 4 5 골

반복적 정책 평가법

def policy_evaluation(pi, P, gamma=1.0, theta=1e-10):
    # pi: 정책, P: 전이 함수, gamma: 할인율, theta: 수렴 판정 조건
    prev_V = np.zeros(len(P))  # 상태의 수와 크기가 같은 영(0)벡터
    gap = True
    while gap:
        V = np.zeros_like(prev_V)  # prev_V와 모양이 같은 영벡터
        for s in range(len(P)):  # 모든 상태에 반복
            for prob, next_state, reward, done in P[s][pi[s]]:
                V[s] += prob * (reward + gamma * prev_V[next_state] * (not done))
        gap = np.max(np.abs(prev_V - V)) > theta  # 기존 V와 차이가 작으면 중단
        prev_V = V.copy()
    return V

무조건 왼쪽으로 걷는 정책

LEFT, RIGHT = 0, 1
pi = {
    s: LEFT
    for s in range(env.observation_space.n)
}

평가

V = policy_evaluation(pi, env.P)

퀴즈

문제 1 / 4맞음: 0힌트: 0틀림: 0채점중: 0남음: 4

동적 계획법과 부트스트래핑의 관계에 대한 설명으로 올바른 것을 모두 고르세요.

  • ☐동적 계획법은 알려진 환경 모델로 가능한 다음 결과의 기대값을 계산한다.
  • ☐반복적 정책 평가법은 동적 계획법이면서 부트스트래핑을 사용한다.
  • ☐부트스트래핑은 에피소드가 끝난 뒤의 실제 반환값만 사용해야 한다.
  • ☐부트스트래핑을 사용하는 모든 방법에는 전이 확률 모델이 필요하다.

퀴즈를 풀려면 대화형 기능을 불러와야 합니다.

Previous
동적 계획법