# 가치 기반 계획

> [!WARNING]
> 🧪 이것은 강화 학습을 위한 실험적 파이프라인입니다!

이 파이프라인은 Michael Janner, Yilun Du, Joshua B. Tenenbaum, Sergey Levine의 [Planning with Diffusion for Flexible Behavior Synthesis](https://huggingface.co/papers/2205.09991) 논문을 기반으로 합니다.

해당 논문의 초록은 다음과 같습니다:

*모델 기반 강화 학습 방법은 학습을 근사 동역학 모델 추정에만 사용하고, 나머지 의사결정 작업은 고전적인 궤적 최적화기에 위임하는 경우가 많습니다. 개념적으로 단순하지만, 이 조합에는 여러 경험적 단점이 있어 학습된 모델이 표준 궤적 최적화에 적합하지 않을 수 있음을 시사합니다. 본 논문에서는 궤적 최적화 파이프라인의 가능한 한 많은 부분을 모델링 문제로 통합하여, 모델에서 샘플링하는 것과 이를 통해 계획하는 것이 거의 동일해지도록 하는 방식을 고려합니다. 우리의 기술적 접근법의 핵심은 반복적으로 궤적의 노이즈를 제거하여 계획을 수립하는 확산 확률 모델에 있습니다. 분류기 기반 샘플링과 이미지 인페인팅이 일관된 계획 전략으로 재해석될 수 있는 방법을 보여주고, 확산 기반 계획 방법의 특이하고 유용한 특성을 탐구하며, 장기 의사결정과 테스트 시 유연성을 강조하는 제어 환경에서 우리 프레임워크의 효과성을 입증합니다.*

모델에 대한 추가 정보는 [프로젝트 페이지](https://diffusion-planning.github.io/), [원본 코드베이스](https://github.com/jannerm/diffuser)에서 확인하거나 데모 [노트북](https://colab.research.google.com/drive/1rXm8CX4ZdN5qivjJ2lhwhkOmt_m0CvU0#scrollTo=6HXJvhyqcITc&uniqifier=1)에서 직접 사용해 볼 수 있습니다.

모델을 실행하는 스크립트는 [여기](https://github.com/huggingface/diffusers/tree/main/examples/reinforcement_learning)에서 사용할 수 있습니다.

> [!TIP]
> Scheduler의 [가이드](../../using-diffusers/schedulers)를 확인하여 스케줄러의 속도와 품질 사이의 트레이드오프를 탐색하는 방법을 배우고, [파이프라인 간 구성 요소 재사용](../../using-diffusers/loading#reusing-models-in-multiple-pipelines) 섹션을 확인하여 동일한 구성 요소를 여러 파이프라인에 효율적으로 로드하는 방법을 배워보세요.

## ValueGuidedRLPipeline[[diffusers.experimental.ValueGuidedRLPipeline]]

#### diffusers.experimental.ValueGuidedRLPipeline[[diffusers.experimental.ValueGuidedRLPipeline]]

```python
diffusers.experimental.ValueGuidedRLPipeline(value_function: UNet1DModel, unet: UNet1DModel, scheduler: DDPMScheduler, env)
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/experimental/rl/value_guided_sampling.py#L25)

**매개변수:**

value_function ([UNet1DModel](/docs/diffusers/main/ko/api/models/unet#diffusers.UNet1DModel)) : 보상 기반의 궤도 미세 조정(fine-tuning)을 위한 전용 UNet입니다.

unet ([UNet1DModel](/docs/diffusers/main/ko/api/models/unet#diffusers.UNet1DModel)) : 인코딩된 궤적을 디노이즈하기 위한 UNet 아키텍처.

scheduler ([SchedulerMixin](/docs/diffusers/main/ko/api/schedulers/overview#diffusers.SchedulerMixin)) : `unet`와 함께 사용되어 인코딩된 궤적의 노이즈를 제거하는 스케줄러입니다. 이 애플리케이션의 기본값은 [DDPMScheduler](/docs/diffusers/main/ko/api/schedulers/ddpm#diffusers.DDPMScheduler)입니다.

env () : OpenAI gym API를 따르는 환경입니다. 현재 Hopper에만 사전 학습된 모델이 있습니다.

상태 시퀀스를 예측하도록 학습된 diffusion 모델에서 가치 기반 샘플링을 수행하는 Pipeline

이 모델은 [DiffusionPipeline](/docs/diffusers/main/ko/api/pipelines/overview#diffusers.DiffusionPipeline)에서 상속됩니다. 모든 파이프라인에 대해 구현된 일반적 메서드(다운로드, 저장, 특정 디바이스에서 실행 등)에 대해서는 상위 클래스 문서를 확인하세요.

