# 価値ベースの計画

> [!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]
> スケジューラーのトレードオフ、すなわち速度と品質のバランスをどのように探求するかを学ぶには、[ガイド](../../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/v0.43.0/src/diffusers/experimental/rl/value_guided_sampling.py#L25)

**パラメータ:**

value_function ([UNet1DModel](/docs/diffusers/v0.43.0/ja/api/models/unet#diffusers.UNet1DModel)) : 報酬に基づいて軌道をファインチューニングするための、特化されたUNetです。

unet ([UNet1DModel](/docs/diffusers/v0.43.0/ja/api/models/unet#diffusers.UNet1DModel)) : エンコードされた軌道をノイズ除去するためのUNetアーキテクチャ。

scheduler ([SchedulerMixin](/docs/diffusers/v0.43.0/ja/api/schedulers/overview#diffusers.SchedulerMixin)) : `unet` と組み合わせて、エンコードされた軌道のノイズ除去に使用するスケジューラです。このアプリケーションのデフォルトは [DDPMScheduler](/docs/diffusers/v0.43.0/ja/api/schedulers/ddpm#diffusers.DDPMScheduler) です。

env () : OpenAI gym API に準拠した、エージェントが行動する環境。現時点では、Hopper にのみ事前学習済みモデルが用意されています。

状態のシーケンスを予測するように訓練された拡散モデルから、価値ベースのガイダンス付きサンプリングを行うためのパイプライン。

このモデルは [DiffusionPipeline](/docs/diffusers/v0.43.0/ja/api/pipelines/overview#diffusers.DiffusionPipeline) を継承しています。すべてのパイプラインに実装されている汎用的なメソッド（ダウンロード、保存、特定のデバイスでの実行など）については、スーパークラスのドキュメントを参照してください。

