Skip to content

Latest commit

Β 

History

History
126 lines (113 loc) Β· 5.06 KB

File metadata and controls

126 lines (113 loc) Β· 5.06 KB

κ°•ν™”ν•™μŠ΅ μ•Œκ³ λ¦¬μ¦˜ κ΅¬ν˜„ λͺ¨μŒ

이 μ €μž₯μ†ŒλŠ” λ‹€μ–‘ν•œ κ°•ν™”ν•™μŠ΅ μ•Œκ³ λ¦¬μ¦˜κ³Ό ν™˜κ²½μ— λŒ€ν•œ κ΅¬ν˜„μ„ ν¬ν•¨ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

ν”„λ‘œμ νŠΈ ꡬ쑰

.
β”œβ”€β”€ 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 (선택사항)