Model-free Prediction & Control

Published by onesixx on

RL이란

1) 일단, 해보고 => 경험

2) 자신을 평가하고 ==> evaluation , prediction

3) 평가한대로 자신을 업데이트 => improve, control

4) 1~3 반복 ==> Iteration

http://www.kocw.net/home/search/kemView.do?kemId=1367683

Model-free Prediction

Monte Carlo Approximation

무작위로 일단 해본다.

그 경험으로부터 얻은 sample을 통해서, True값 추청

sample이 많아지면, True값에 근사.

import random

def estimate_pi(num_samples):
    inside_circle = 0
    
    for _ in range(num_samples):
        x = random.uniform(0, 1)
        y = random.uniform(0, 1)
        
        # 원의 중심으로부터의 거리를 계산
        distance = x**2 + y**2
        
        # 원 안에 있는 경우
        if distance <= 1:
            inside_circle += 1
    
    # 원의 면적을 추정
    pi_estimate = (inside_circle / num_samples) * 4
    return pi_estimate

# 시뮬레이션에 사용할 샘플 수를 정의
num_samples = 1000000

# 원주율 값을 추정
pi_estimate = estimate_pi(num_samples)

print(f"Monte Carlo 시뮬레이션을 통한 원주율 추정: {pi_estimate}")   # 3.143448

샘플링 : Agent가 Environment에서 한번 Episode (= sample ) 를 진행하는것

=> 샘플링을 통해 얻은 Sample의 평균은 참가지함수의 추정값

Policy evaluation에서 [기대값을 계산하지않고], 샘플링을 통해 참가치함수 예측

V?(s) = ??[Gt | St =s]

= ??[Rt+1 + ?∙Rt+2 + ?2∙Rt+3 + ?3∙Rt+4 + ... + ?T-t-1∙RT | St =s]

, Temporal Difference

MonteCarlo 예측은 가치함수의 업데이트를 위해, Episode가 끝날때까지 기다려야 함. (실시간이 아님)

=> Episode마다가 아니라, Time Step마다 가치함수 업데이트

Bootstrap : 다른 State의 가치함수 예측값을 통해, 지금 상태의 가치함수를 예측하는 방식'

Gt가 아니라 다음상태 V(St+1)의 예측값만 있으면 된다. 에피소드가 끝나는걸 기다릴 필요없음.

Model-free Control

SARSA : on-Policy

TD(Time difference) Control에서 (가치함수가아닌) Q함수를 업데이트함. ε-greedy로 policy improvement
현재상태은 Q함수(추정값) 를 다음상태의 Q함수(추정값) 로 업데이트

ε-greedy 정책을 통해 [St, At, Rt+1, St+1, At+1] 정책 샘플을 획득하고,
이 샘플을 이용해 Q함수 Q(St, At) 를 업데이트

Q-learning : off-Policy

SALSA에서는 Agent가 ε-greedy로 Action을 하면서 Learning을 한다. (online으로 Action을 하고, online으로 Learning)
=> (자신이 행동하는 대로 학습) Exploration으로 선택한 정책때문에 잘못된 정책을 학습

따라서, Q-Learning은 Action하는 Policy (behavior policy μ, ε-greedy정책) 와
Learning하는 Policy (target policy ?, greedy정책으로 Q함수 업데이트)를 분리
Q함수 업데이트를 위해 [s,a,r,s'] 샘플필요

Categories: RL

onesixx

Blog Owner

Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x