Skip to content

TEAMLAB-Lecture/DRL-codes

Repository files navigation

강화학습 알고리즘 구현 모음

이 저장소는 다양한 강화학습 알고리즘과 환경에 대한 구현을 포함하고 있습니다.

프로젝트 구조

.
├── A3C/                    # A3C (Asynchronous Advantage Actor-Critic) 구현
│   ├── a3c_pong.py        # A3C 알고리즘 구현
│   ├── requirements.txt    # 필요한 패키지 목록
│   ├── Dockerfile         # Docker 설정 파일
│   ├── run.bat           # Docker 실행 스크립트 (Windows)
│   ├── run.sh            # Docker 실행 스크립트 (Linux/Mac)
│   └── output_a3c/       # 학습 결과 저장 디렉토리
│       ├── models/       # 학습된 모델 저장
│       ├── logs/         # 학습 로그 저장
│       └── videos/       # 학습 과정 비디오 저장
│
├── FrozenLake/             # FrozenLake 환경에서의 Q-Learning 구현
│   ├── frozen_lake_qlearning.py  # Q-Learning 알고리즘 구현
│   ├── requirements.txt     # 필요한 패키지 목록
│   ├── Dockerfile          # Docker 설정 파일
│   ├── README.md           # 프로젝트 설명
│   ├── run_docker.bat      # Docker 실행 스크립트 (Windows)
│   ├── run_simple.bat      # 간단한 실행 스크립트 (Windows)
│   ├── run_quick_test.bat  # 빠른 테스트 스크립트 (Windows)
│   ├── docker_utils.bat    # Docker 환경 관리 유틸리티 (Windows)
│   └── run.sh             # Docker 실행 스크립트 (Linux/Mac)
│
├── REINFORCE_CartPole/        # CartPole 환경에서의 REINFORCE 구현
│   ├── main.py              # 메인 학습 코드
│   ├── requirements.txt     # 필요한 패키지 목록
│   ├── run.bat             # 실행 스크립트
│   └── Dockerfile          # Docker 설정 파일
│
├── REINFORCE/               # 기본 REINFORCE 알고리즘 구현
│   ├── main.py              # 메인 학습 코드
│   ├── requirements.txt     # 필요한 패키지 목록
│   ├── run.bat             # 실행 스크립트
│   ├── Dockerfile          # Docker 설정 파일
│   ├── policy_net.pth      # 학습된 모델
│   ├── game_progress.gif   # 학습 과정 시각화
│   ├── game_progress.mp4   # 학습 과정 비디오
│   ├── frame.png           # 게임 프레임
│   └── REINFOCE_example_code*.ipynb  # Jupyter 노트북 예제
│
└── REINFORCE_Baseline/      # Baseline이 추가된 REINFORCE 구현
    ├── main.py              # 메인 학습 코드
    ├── requirements.txt     # 필요한 패키지 목록
    ├── run.bat             # 실행 스크립트
    ├── Dockerfile          # Docker 설정 파일
    ├── README.md           # 프로젝트 설명
    ├── logs/               # 학습 로그 저장
    └── videos/             # 학습 과정 비디오 저장

구현된 알고리즘

1. A3C (Asynchronous Advantage Actor-Critic)

  • 위치: A3C/
  • 설명: A3C 알고리즘을 사용하여 Atari Pong 게임을 학습
  • 특징:
    • 멀티프로세싱을 통한 비동기 학습
    • Actor-Critic 아키텍처 사용
    • 학습 과정 비디오 녹화
    • Docker 컨테이너화 지원
    • Windows/Linux/Mac 호환성

2. Q-Learning (FrozenLake)

  • 위치: FrozenLake/
  • 설명: 테이블 기반 Q-Learning을 사용하여 FrozenLake 환경을 해결
  • 특징:
    • 4x4 및 8x8 맵 지원
    • 미끄러운/미끄럽지 않은 버전 지원
    • 학습 과정 시각화
    • 다양한 실행 옵션 제공 (Docker, 간단 실행, 빠른 테스트)
    • Windows/Linux/Mac 호환성

3. REINFORCE (CartPole)

  • 위치: REINFORCE_CartPole/
  • 설명: REINFORCE 알고리즘을 사용하여 OpenAI Gym의 CartPole-v1 환경을 학습
  • 특징:
    • PyTorch를 사용한 신경망 기반 정책 네트워크
    • GPU 가속 지원
    • Docker 컨테이너화 지원

4. 기본 REINFORCE

  • 위치: REINFORCE/
  • 설명: 기본적인 REINFORCE 알고리즘 구현
  • 특징:
    • Jupyter 노트북을 통한 예제 코드 제공
    • 학습 과정 시각화 (GIF, MP4)
    • Docker 컨테이너화 지원

5. REINFORCE with Baseline

  • 위치: REINFORCE_Baseline/
  • 설명: Baseline이 추가된 REINFORCE 알고리즘 구현
  • 특징:
    • 학습 로그 및 비디오 저장
    • 상세한 실행 스크립트
    • Docker 컨테이너화 지원

공통 특징

  • 모든 프로젝트는 Docker를 통해 실행 가능
  • 필요한 패키지는 requirements.txt에 명시
  • 실행 스크립트(run.bat/run.sh) 제공

실행 방법

각 프로젝트 디렉토리에서 다음 명령어를 실행:

# Docker를 사용하는 경우
docker build -t rl-project .
docker run -it rl-project

# 또는 직접 실행
python main.py  # 또는 프로젝트별 메인 파일

환경 요구사항

  • Python 3.6+
  • PyTorch (REINFORCE, A3C 프로젝트)
  • OpenAI Gym/Gymnasium
  • NumPy
  • Matplotlib
  • Docker (선택사항)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published