Decision Transformer를 이용한 강화학습 (Reinforcement Learning)
요약
Decision Transformer를 활용한 강화학습 구현 코드를 제공하며, OpenAI gym의 mujoco 제어 작업에 적용할 수 있습니다. 이 구현체는 GPT 기반의 인과적 트랜스포머 구조와 PyTorch Dataset/Dataloader를 사용하여 효율적인 학습을 수행합니다. Google Colab에서 직접 훈련 및 시각화가 가능하여 연구 목적으로 활용하기 좋습니다.
핵심 포인트
- Decision Transformer를 이용한 강화학습 구현 코드를 제공함.
- GPT 기반의 인과적 트랜스포머 구조를 사용함.
- PyTorch Dataset/Dataloader로 효율적인 학습을 최적화함.
- Google Colab에서 바로 훈련 및 시각화가 가능하여 접근성이 높음.
Decision Transformer
개요 (Overview)
OpenAI gym의 mujoco 제어 작업에 대한 Decision Transformer: Reinforcement Learning via Sequence Modeling를 위한 최소 코드를 제공합니다.
공식 구현체와 눈에 띄는 차이점은 다음과 같습니다:
- 간단한 GPT 구현 (causal transformer)
- PyTorch의 Dataset 및 Dataloader 클래스를 사용하고, rewards to go 계산과 state 정규화(state normalization)에서 중복 계산을 제거하여 효율적인 학습을 수행합니다.
- 제공된 노트북으로 Google Colab에서 훈련하고 결과를 시각화하며 렌더링할 수 있습니다.
Google Colab에서 min_decision_transformer.ipynb 열기
Open In Colab
결과 (Results)
참고: 이 결과들은 20k 업데이트 후 얻은 3개의 무작위 시드(random seeds)의 평균 및 분산이며 (colab에서 GPU 리소스 제한으로 인해), 공식 결과는 100k 업데이트 후에 얻어졌습니다. 따라서 이 수치들은 직접적으로 비교할 수는 없지만, 해당 플롯과 함께 사용하면 모델의 학습 진행 정도를 측정하는 데 대략적인 참고 지표로 활용될 수 있습니다. 반환(returns) 및 점수(scores)의 분산은 훈련이 포화 상태에 도달함에 따라 감소해야 합니다.
| Dataset | Environment | DT (this repo) 20k updates | DT (official) 100k updates |
|---|---|---|---|
| Medium | HalfCheetah | 42.18 ± 00.59 | 42.60 ± 00.10 |
| ... | |||
![]() | ![]() | ||
| :---: | :---: |
![]() | ![]() |
|---|
![]() | ![]() |
|---|
지침 (Instructions)
Mujoco-py
mujoco-py repo의 지침을 따라 mujoco-py 라이브러리를 설치하십시오.
D4RL Data
데이터셋은 data 디렉토리에 저장될 것으로 예상됩니다. D4RL repo를 설치하세요. 그런 다음 다음 스크립트를 실행하여 형식화된 데이터를 data 디렉토리에 저장합니다:
python3 data/download_d4rl_datasets.py
실험 실행하기
- 학습 예시 명령어:
python3 scripts/train.py --env halfcheetah --dataset medium --device cuda
- 사전 학습된 모델로 테스트하는 예시 명령어:
python3 scripts/test.py --env halfcheetah --dataset medium --device cpu --num_eval_ep 1 --chk_pt_name dt_halfcheetah-medium-v2_model_22-02-13-09-03-10_best.pt
테스트를 위해서는 dataset을 지정해야 합니다. 이는 학습에 사용된 동일한 상태 정규화 통계(평균 및 분산)를 로드하기 위함입니다.
추가적으로 --render 플래그를 스크립트에 전달하여 테스트 에피소드를 렌더링할 수 있습니다.
- csv 파일의 기록된 데이터를 사용하여 그래프를 그리는 예시 명령어:
python3 scripts/plot.py --env_d4rl_name halfcheetah-medium-v2 --smoothing_window 5
또한 --plot_avg 및 --save_fig 플래그를 스크립트에 전달하여 모든 값을 하나의 그래프로 평균화하고 그림을 저장할 수 있습니다.
참고 사항:
mujoco-py와d4rl설치가 어렵다면, colab 노트북에서 설치 방법을 참조할 수 있습니다.- 데이터셋이
download_d4rl_datasets.py로 형식화되고 저장되면, 학습을 위해 더 이상d4rl라이브러리가 필요하지 않습니다. - 평가는 결정 트랜스포머 논문과 결과가 일치하도록
mujoco-py의v3제어 환경에서 수행됩니다.
인용하기
출판물에 이 저장소를 인용하려면 다음 bibtex를 사용하십시오:
@misc{minimal_decision_transformer,
author = {Barhate, Nikhil},
title = {Minimal Implementation of Decision Transformer},
year = {2022},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/nikhilbarhate99/min-decision-transformer}},
}
참고문헌
- 공식 코드 및 논문
- 최소 GPT (causal transformer) 트윗 및 [colab 노트북](https://colab.research.google.com/drive/1NUBqyboDcGte5qAJKOl8gaJC28V_73Iv?usp=sharing
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Research의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기




