[RL] PPO

    728x90
    반응형

    성능 붕괴(performance collapse)

    강화학습에서는 여러 가지 정책들을 탐색

    한 정책에 의해 생성되는 궤적을 이용해, 정책의 파라미터를 업데이트

     

    TRPO(Trust Region Policy Optimization)

    정책 경사의 문제점 

    정책을 너무 많이 업데이트하면 최적 정책에서 멀어질 수 있음

    정책을 너무 적게 업데이트하면 최적 정책으로 수렴하는데 너무 오래걸림

     

    TRPO

    기존의 정책에서 너무 멀리 벗어나지 않는 신뢰 영역을 계산

    신뢰 영역 내에서만 정책을 업데이트

    기존 정책과 새로운 정책의 차이는 쿨백-라이블러 발산으로 계산

     

    PPO 실습

    # 병렬 환경
    from stable_baselines3.common.env_util import make_vec_env
    vec_env = make_vec_env("CartPole-v1", n_envs=4)
    
    # 학습
    from stable_baselines3 import PPO
    model = PPO("MlpPolicy", vec_env, verbose=1)
    model.learn(total_timesteps=25000, progress_bar=True)
    
    # 시각화
    import tqdm
    import gymnasium as gym
    env = gym.make("CartPole-v1", render_mode="rgb_array")
    render_episode(env, model)

     

    728x90
    반응형

    댓글