본문 바로가기
AI/강화학습

3. [OPENAI] Algorithms

by 보안매크로 2025. 1. 20.
728x90

Spinning Up 알고리즘 설명 및 구조


1. 문서에 포함된 알고리즘

Spinning Up은 6개의 주요 강화학습 알고리즘을 제공합니다:

  1. Vanilla Policy Gradient (VPG)
    가장 기본적인 정책 경사(Policy Gradient) 알고리즘. TRPO와 PPO의 기초가 되는 알고리즘.
  2. Trust Region Policy Optimization (TRPO)
    정책 업데이트 안정성을 높이기 위한 기법.
  3. Proximal Policy Optimization (PPO)
    TRPO를 간소화하여 안정성과 샘플 효율성을 제공.
  4. Deep Deterministic Policy Gradient (DDPG)
    연속 제어 환경을 위한 오프-정책 Q-러닝 알고리즘.
  5. Twin Delayed DDPG (TD3)
    DDPG를 개선하여 안정성과 학습 속도를 향상.
  6. 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)을 사용하여 데이터를 수집하고, 해당 데이터를 기반으로 정책을 업데이트하는 방식입니다.
  • 학습 과정에서 사용되는 데이터는 항상 최신 정책에 의해 생성된 것입니다.

특징

  1. 새로운 데이터만 사용:
    • 정책 업데이트에 이전 정책으로 수집된 데이터를 재사용하지 않습니다.
  2. 안정적이고 직관적:
    • 현재 정책의 성능에 직접적으로 최적화하므로 학습이 안정적이고 수렴성이 좋습니다.
  3. 낮은 샘플 효율성:
    • 수집된 데이터를 한 번만 사용하므로 많은 샘플이 필요합니다.

장점

  • 정책의 안정성과 수렴성이 높아 학습 결과의 품질이 보장됩니다.
  • 수학적으로 정책의 성능을 직접적으로 최적화합니다.

단점

  • 샘플 효율성이 낮아 많은 환경 상호작용 데이터가 필요합니다.
  • 대규모 시뮬레이션이나 샘플 비용이 높은 환경에서는 비효율적일 수 있습니다.

대표 알고리즘

  • 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

정의

  • 정책 업데이트에 이전 정책으로 수집된 데이터를 재사용할 수 있는 방식입니다.
  • 수집된 데이터를 재활용하여 학습에 사용하기 때문에 데이터 효율성이 높습니다.

특징

  1. 데이터 재사용:
    • 과거의 경험 데이터(Replay Buffer)를 저장하고 이를 반복적으로 사용하여 학습합니다.
  2. 샘플 효율성 증가:
    • 같은 데이터를 여러 번 사용하므로 환경 상호작용 비용을 크게 줄일 수 있습니다.
  3. 학습 불안정성:
    • 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) 알고리즘 파일

각 알고리즘은 다음과 같은 구조를 따릅니다:

  1. 경험 버퍼 정의: 에이전트-환경 상호작용 데이터를 저장.
  2. 알고리즘 실행 함수:
    • 로그 설정
    • 무작위 시드 설정
    • 환경 생성
    • actor-critic 네트워크 생성
    • 손실 함수 및 진단 함수 설정
    • 최적화 및 업데이트 루프 실행
    • 주요 성능 지표 로깅 및 모델 저장.

(2) PyTorch와 TensorFlow 구현 차이

  • PyTorch:
    • 네트워크를 정의하고 최적화(optimizer) 및 손실(loss)을 계산.
    • 간단하고 명료한 구현.
  • TensorFlow:
    • 그래프 방식으로 계산을 정의.
    • Placeholder와 세션을 사용해 네트워크를 실행.

(3) 코어 파일

  • 알고리즘 실행에 필요한 유틸리티 함수공통 구성 요소 제공.
  • 알고리즘의 재사용 가능한 코드 구조를 관리.

세부 구조

  1. TensorFlow 전용 기능
    • Placeholder 생성 및 관리.
    • 계산 그래프 설정에 필요한 함수.
  2. actor-critic 관련 함수
    • actor-critic 네트워크의 구성 요소를 생성.
    • 정책 및 가치 함수를 구현하는 다층 퍼셉트론(MLP) 정의.
  3. 기타 유틸리티
    • 경험 샘플링, 데이터 전처리, 손실 계산과 같은 다양한 함수.
  4. MLP Actor-Critic 구현
    • 정책 함수와 가치 함수(예: Q-함수)를 간단한 MLP로 구현.
    • 알고리즘과의 호환성을 보장.

4. 알고리즘 선택 이유

Spinning Up의 알고리즘은 강화학습의 발전 과정을 보여주는 핵심 아이디어를 바탕으로 선택되었습니다.

  1. On-Policy 알고리즘
    • 안정성을 중시하며, 정책 성능에 직접적으로 최적화.
    • PPO는 안정성과 샘플 효율성의 균형을 제공.
  2. Off-Policy 알고리즘
    • 샘플 효율성이 높고, 데이터 재사용이 가능.
    • SAC는 안정성과 성능이 뛰어난 최신 알고리즘 중 하나.

5. Spinning Up 알고리즘 실행 구조

알고리즘 실행은 기본적으로 다음 단계를 따릅니다:

  1. 로그 및 환경 설정.
  2. 랜덤 시드 초기화.
  3. actor-critic 네트워크 생성.
  4. 경험 버퍼 설정.
  5. 손실 함수 및 최적화 루프 실행.
  6. 주요 성능 지표 로깅 및 모델 저장.

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