반응형
강화학습 실험은 수십, 수백 회의 iteration을 거치며 성능이 개선되는 과정을 지켜보는 일이 많습니다. 이 때 중간 결과를 기록하고, 성능 지표를 시각화하며, 특정 시점의 모델 상태를 체크포인트로 저장하는 과정은 필수적입니다. RLlib은 기본적으로 이러한 기능들을 지원하고 있어, 별도 구현 없이도 손쉽게 실험 관리가 가능합니다.이번 글에서는 다음 내용을 다룹니다.RLlib의 기본 로그 디렉토리 구조TensorBoard를 통한 학습 곡선 시각화체크포인트(Checkpoint) 저장 및 복원(Restore) 방법trainer.get_policy()나 trainer.workers.foreach_policy() 등으로 모델 파라미터 추출, 추가적인 분석 방법 소개로그 디렉토리와 Ray ResultsRLli..
지금까지는 DQN 계열(가치기반) 알고리즘에 집중했지만, 강화학습에는 정책기반 접근도 중요한 축을 차지합니다. 정책기반 알고리즘은 상태→행동 확률분포를 직접 파라미터화하는 방식으로, 연속형 행동공간이나 고차원 문제에서 장점을 발휘하고, DQN 대비 다른 하이퍼파라미터 특징을 갖습니다.RLlib은 대표적인 정책기반 알고리즘인 A2C(Advantage Actor-Critic)와 PPO(Proximal Policy Optimization)를 기본 지원합니다. 이 글에서는 A2C, PPO를 다양한 환경에서 간단히 실행해보고, Config를 통해 파라미터를 조정하는 방법을 살펴봅니다.A2C와 PPO 간단히 복습A2C(Advantage Actor-Critic):Actor-Critic 구조를 사용하여 상태 가치함수를..
앞선 글에서 RLlib을 이용하면 Config 기반으로 알고리즘과 파라미터를 손쉽게 변경할 수 있음을 확인했습니다. 이번 글에서는 이산적 행동 공간 환경(Discrete Action Space)에서 DQN과 그 변형(Double DQN, Dueling DQN, Prioritized Replay 등)을 RLlib으로 실행하는 방법을 자세히 살펴보고, 다양한 환경(예: CartPole, Atari)을 적용하는 예제를 소개하겠습니다.이산 행동 알고리즘과 RLlibDQN은 이산적 행동 공간을 전제로 개발된 알고리즘으로, RLlib에서 DQNTrainer를 통해 바로 사용할 수 있습니다. 지난 글에서 DQN에 Double/Dueling 옵션을 추가하는 방법을 봤는데, 여기서는 좀 더 다양한 설정(우선순위 리플레이..
이전 글에서 우리는 RLlib을 이용해 단 몇 줄의 코드로 DQN을 CartPole 환경에서 돌려보았습니다. 그러나 실제로 다양한 환경, 알고리즘, 파라미터 조합을 시도하려면 RLlib이 어떻게 설정을 관리하고, 어떤 구조로 동작하는지 이해하는 것이 중요합니다. 이번 글에서는 RLlib의 핵심 개념인 Config, Trainer, Policy, Rollout Worker 등에 대해 자세히 살펴보고, Config 설정과 Trainer 활용법에 대해 좀 더 다양한 예제를 다루겠습니다.RLlib 핵심 개념 자세히 알아보기RLlib은 크게 다음과 같은 구성요소로 이뤄져 있습니다.Trainer:알고리즘 실행의 중심 클래스입니다. 예를 들어, DQNTrainer, PPOTrainer, SACTrainer 등 알고리..
강화학습(RL)을 다루다 보면, 다양한 알고리즘(DQN, PPO, SAC 등)을 일일이 직접 구현하고, 하이퍼파라미터를 조정하며, 환경을 실행하는 과정이 만만치 않다는 걸 실감하게 됩니다. 이전 시리즈에서는 PyTorch로 직접 RL 알고리즘을 구현해봤지만, 실제 실험 단계에선 이런 구현 부담을 덜어주는 라이브러리가 큰 도움이 됩니다.Ray RLlib는 그런 니즈에 부합하는 강력한 분산 강화학습 프레임워크입니다. RLlib은 다음과 같은 장점을 갖습니다.다양한 알고리즘 내장: DQN, PPO, SAC, A3C/A2C, IMPALA 등 대표적인 알고리즘을 기본 지원간단한 Config 기반 설정: 하이퍼파라미터, 환경 설정, 알고리즘 변형을 Config 딕셔너리로 쉽게 제어분산/병렬 학습 지원: Ray의 멀..