728x90
Spinning Up 알고리즘 설명 및 구조
1. 문서에 포함된 알고리즘
Spinning Up은 6개의 주요 강화학습 알고리즘을 제공합니다:
- Vanilla Policy Gradient (VPG)
가장 기본적인 정책 경사(Policy Gradient) 알고리즘. TRPO와 PPO의 기초가 되는 알고리즘. - Trust Region Policy Optimization (TRPO)
정책 업데이트 안정성을 높이기 위한 기법. - Proximal Policy Optimization (PPO)
TRPO를 간소화하여 안정성과 샘플 효율성을 제공. - Deep Deterministic Policy Gradient (DDPG)
연속 제어 환경을 위한 오프-정책 Q-러닝 알고리즘. - Twin Delayed DDPG (TD3)
DDPG를 개선하여 안정성과 학습 속도를 향상. - Soft Actor-Critic (SAC)
샘플 효율성과 안정성이 뛰어난 오프-정책 알고리즘.
특징
- 모든 알고리즘은 MLP(다층 퍼셉트론) 기반으로 구현되어 있습니다.
- PyTorch와 TensorFlow v1 버전으로 각각 구현되어 있습니다. 단, TRPO는 TensorFlow에서만 제공됩니다.
2. On-Policy vs Off-Policy 알고리즘
On-Policy 알고리즘 요약
- VPG, TRPO, PPO:
- 현재 정책에서 생성된 데이터를 학습에 사용.
- 장점: 안정적이며 정책 성능에 직접적으로 최적화.
- 단점: 샘플 효율성이 낮음.
- 특징: VPG → TRPO → PPO로 발전하며 샘플 효율성이 향상됨.
On-Policy
정의
- 현재 정책(Policy)을 사용하여 데이터를 수집하고, 해당 데이터를 기반으로 정책을 업데이트하는 방식입니다.
- 학습 과정에서 사용되는 데이터는 항상 최신 정책에 의해 생성된 것입니다.
특징
- 새로운 데이터만 사용:
- 정책 업데이트에 이전 정책으로 수집된 데이터를 재사용하지 않습니다.
- 안정적이고 직관적:
- 현재 정책의 성능에 직접적으로 최적화하므로 학습이 안정적이고 수렴성이 좋습니다.
- 낮은 샘플 효율성:
- 수집된 데이터를 한 번만 사용하므로 많은 샘플이 필요합니다.
장점
- 정책의 안정성과 수렴성이 높아 학습 결과의 품질이 보장됩니다.
- 수학적으로 정책의 성능을 직접적으로 최적화합니다.
단점
- 샘플 효율성이 낮아 많은 환경 상호작용 데이터가 필요합니다.
- 대규모 시뮬레이션이나 샘플 비용이 높은 환경에서는 비효율적일 수 있습니다.
대표 알고리즘
- Vanilla Policy Gradient (VPG): 가장 기본적인 On-Policy 알고리즘.
- Trust Region Policy Optimization (TRPO): 정책 업데이트를 더 안정적으로 만드는 알고리즘.
- Proximal Policy Optimization (PPO): TRPO의 간소화 버전으로, 안정성과 샘플 효율성 간의 균형을 제공.
Off-Policy 알고리즘 요약
- DDPG, TD3, SAC:
- 이전에 수집된 데이터를 재사용 가능.
- 장점: 샘플 효율성이 높음.
- 단점: 수학적 안정성 보장이 어려워 불안정할 수 있음.
- 특징: DDPG의 단점을 보완하여 TD3와 SAC가 개발됨.
Off-Policy
정의
- 정책 업데이트에 이전 정책으로 수집된 데이터를 재사용할 수 있는 방식입니다.
- 수집된 데이터를 재활용하여 학습에 사용하기 때문에 데이터 효율성이 높습니다.
특징
- 데이터 재사용:
- 과거의 경험 데이터(Replay Buffer)를 저장하고 이를 반복적으로 사용하여 학습합니다.
- 샘플 효율성 증가:
- 같은 데이터를 여러 번 사용하므로 환경 상호작용 비용을 크게 줄일 수 있습니다.
- 학습 불안정성:
- Bellman 방정식을 기반으로 학습하기 때문에 정책 성능이 항상 최적화된다고 보장할 수는 없습니다.
장점
- 샘플 효율성이 높아 학습 속도가 빠릅니다.
- 데이터 수집 비용이 높은 환경(예: 로봇 제어, 현실 세계 시뮬레이션)에서 유리합니다.
단점
- 학습 안정성이 낮아 훈련이 실패하거나 불안정한 결과를 낼 수 있습니다.
- Q-함수와 정책이 서로 영향을 주고받아 학습의 수렴이 어려울 수 있습니다.
대표 알고리즘
- Deep Deterministic Policy Gradient (DDPG): Q-러닝과 정책 학습을 결합한 알고리즘.
- Twin Delayed DDPG (TD3): DDPG의 단점을 개선하여 학습 안정성과 성능을 향상.
- Soft Actor-Critic (SAC): 샘플 효율성과 안정성을 동시에 제공하는 최신 알고리즘.
3. On-Policy vs Off-Policy 비교
특징On-PolicyOff-Policy
특징 | On-Policy | Off-Policy |
데이터 사용 방식 | 현재 정책으로 수집된 데이터만 사용 | 과거의 데이터도 재사용 가능 |
샘플 효율성 | 낮음 | 높음 |
학습 안정성 | 안정적 | 불안정할 수 있음 |
수렴 보장 | 수학적으로 최적화 보장 | 보장되지 않음 |
적합한 환경 | 시뮬레이션, 데이터 수집 비용이 낮은 환경 | 데이터 수집 비용이 높은 환경 |
대표 알고리즘 | VPG, TRPO, PPO | DDPG, TD3, SAC |
3. 알고리즘 파일 구조
Spinning Up의 알고리즘 구현은 알고리즘 파일과 코어 파일로 나뉩니다.
(1) 알고리즘 파일
각 알고리즘은 다음과 같은 구조를 따릅니다:
- 경험 버퍼 정의: 에이전트-환경 상호작용 데이터를 저장.
- 알고리즘 실행 함수:
- 로그 설정
- 무작위 시드 설정
- 환경 생성
- actor-critic 네트워크 생성
- 손실 함수 및 진단 함수 설정
- 최적화 및 업데이트 루프 실행
- 주요 성능 지표 로깅 및 모델 저장.
(2) PyTorch와 TensorFlow 구현 차이
- PyTorch:
- 네트워크를 정의하고 최적화(optimizer) 및 손실(loss)을 계산.
- 간단하고 명료한 구현.
- TensorFlow:
- 그래프 방식으로 계산을 정의.
- Placeholder와 세션을 사용해 네트워크를 실행.
(3) 코어 파일
- 알고리즘 실행에 필요한 유틸리티 함수 및 공통 구성 요소 제공.
- 알고리즘의 재사용 가능한 코드 구조를 관리.
세부 구조
- TensorFlow 전용 기능
- Placeholder 생성 및 관리.
- 계산 그래프 설정에 필요한 함수.
- actor-critic 관련 함수
- actor-critic 네트워크의 구성 요소를 생성.
- 정책 및 가치 함수를 구현하는 다층 퍼셉트론(MLP) 정의.
- 기타 유틸리티
- 경험 샘플링, 데이터 전처리, 손실 계산과 같은 다양한 함수.
- MLP Actor-Critic 구현
- 정책 함수와 가치 함수(예: Q-함수)를 간단한 MLP로 구현.
- 알고리즘과의 호환성을 보장.
4. 알고리즘 선택 이유
Spinning Up의 알고리즘은 강화학습의 발전 과정을 보여주는 핵심 아이디어를 바탕으로 선택되었습니다.
- On-Policy 알고리즘
- 안정성을 중시하며, 정책 성능에 직접적으로 최적화.
- PPO는 안정성과 샘플 효율성의 균형을 제공.
- Off-Policy 알고리즘
- 샘플 효율성이 높고, 데이터 재사용이 가능.
- SAC는 안정성과 성능이 뛰어난 최신 알고리즘 중 하나.
5. Spinning Up 알고리즘 실행 구조
알고리즘 실행은 기본적으로 다음 단계를 따릅니다:
- 로그 및 환경 설정.
- 랜덤 시드 초기화.
- actor-critic 네트워크 생성.
- 경험 버퍼 설정.
- 손실 함수 및 최적화 루프 실행.
- 주요 성능 지표 로깅 및 모델 저장.
6. Spinning Up의 장점
- PyTorch 및 TensorFlow 지원: 두 가지 딥러닝 프레임워크를 선택적으로 사용 가능.
- 직관적인 코드 구조: 강화학습을 배우거나 실험하기 적합.
- 알고리즘 간 비교 가능: 다양한 강화학습 알고리즘의 장단점과 발전 과정을 쉽게 이해할 수 있음.
728x90
'AI > 강화학습' 카테고리의 다른 글
5. [OPENAI] Experiment Outputs (1) | 2025.01.22 |
---|---|
4. [OPENAI] Running Experiments (0) | 2025.01.21 |
2. [OPENAI] Installation(Window) (0) | 2025.01.17 |
1. [OpenAI] Spinning Up in Deep RL Introduction (1) | 2025.01.16 |
Model Free Control (0) | 2024.06.25 |