반응형
이 시리즈를 여기까지 따라오셨다면, 이제 RLlib을 활용해 강화학습 알고리즘을 손쉽게 실행하고, 다양한 파라미터를 Config로 설정하며, 로그 관리, 체크포인트, 분산 학습, 사용자 정의 환경 연동, 콜백 등 광범위한 기능을 다룰 수 있는 역량을 갖추게 되었을 것입니다.지금까지 다룬 주요 내용들을 간략히 정리하고, 실제 프로젝트에서 RLlib을 적용할 때 고려해야 할 포인트를 짚어보며 마무리하겠습니다.지금까지의 내용 정리RLlib 기본 구조 및 Config 활용 (1~2편):Trainer, Policy, Worker 개념 이해Config 객체로 환경, 알고리즘, 프레임워크(Torch/TF), 롤아웃 및 학습 파라미터 설정결과적으로 코드 변경 없이도 다양한 실험 세팅 가능이산 행동 알고리즘 (DQN 변..
이전까지는 주로 Gym에 내장된 표준 환경(CartPole, MountainCar, Atari 등)을 활용했습니다. 그러나 실제 문제 해결 과정에서는 고유한 시뮬레이터나 데이터 소스에서 얻은 관측을 RL 환경으로 구성하고, 에이전트가 특정 형식의 행동을 내도록 설계해야 할 수 있습니다. 또한 RL 실험 중간에 특정 이벤트에 반응하거나, 관측값을 가공하는 등의 커스터마이징이 필요할 수도 있습니다.이번 글에서는 다음 내용을 다룹니다.사용자 정의 Gym 환경을 RLlib에 등록하고 적용하기Observation/Action Wrapper를 통한 관측, 행동 전처리콜백(Callbacks)을 활용한 로그 확장, 성능 조건부 로직 삽입사용자 정의 환경 연동RLlib은 기본적으로 Gym 인터페이스에 맞는 환경이면 어떤..
대규모 강화학습 실험에서는 단일 프로세스나 단일 머신에서 모든 환경과 데이터를 처리하기 어렵습니다. RLlib은 Ray의 강력한 분산 및 멀티프로세싱 기능을 바탕으로, 쉽게 Worker를 늘리고 클러스터로 확장하여 더 많은 데이터를 병렬로 수집하고 처리할 수 있습니다.이번 글에서는 다음 내용을 다룹니다.멀티프로세싱 지원: num_rollout_workers와 num_envs_per_worker 설정으로 병렬 환경 처리클러스터 모드: Ray 클러스터 구성으로 다중 노드 환경에서 RLlib 실행GPU/CPU 리소스 할당: .resources()를 통해 GPU 사용, 다중 GPU 설정대규모 실험 파이프라인: 대량의 환경, 알고리즘 조합 테스트를 위한 전략멀티프로세싱: Worker 수와 Env per Worke..
강화학습 실험은 수십, 수백 회의 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의 멀..
이 시리즈를 따라오느라 수고 많으셨습니다! 여기까지 오신 독자라면, 이제 PyTorch와 다양한 강화학습 알고리즘(DQN 계열, REINFORCE, A2C, PPO, SAC)에 대한 전반적인 감각을 갖추게 되었을 것입니다. 다시 한 번 지금까지 다룬 내용을 간략히 정리해봅시다.지금까지 다룬 내용 정리개념 및 기본 환경 구축 (1편):PyTorch, OpenAI Gym 환경 설정 및 강화학습 기본 개념 소개DQN과 변형들 (2~6편):DQN: 가치기반 접근의 기본Double DQN: Q값 과추정 완화Dueling DQN: 상태 가치(V)와 Advantage 분리로 효율적 학습Prioritized Experience Replay (PER): 중요도가 높은 경험을 더 자주 샘플링하여 효율 개선정책기반 & Ac..
이전까지는 CartPole처럼 왼/오 행동을 선택하는 이산적 행동 공간 문제를 다뤘습니다. 하지만 실제 응용(로봇 제어, 자율주행, 제어 시스템)은 연속적 행동(예: 모터 토크, 휠 각도)을 요구합니다. 이산적 행동 공간용 Q-learning 계열 알고리즘을 그대로 적용하기 어렵기 때문에, 연속 행동 공간에 맞는 알고리즘이 필요합니다.SAC(Soft Actor-Critic)는 연속 행동 공간을 다루는 최신 Actor-Critic 알고리즘 중 하나로, 다음과 같은 특징을 갖습니다.Off-policy Actor-Critic: 리플레이 버퍼를 사용, 데이터 효율적자동 온도 파라미터 조정: 탐사(Exploration)와 활용(Exploitation) 사이의 균형을 맞추는 엔트로피 보상(Entropy Regula..