Web Analytics

unifloral

⭐ 184 stars Japanese by EmptyJackson

🌹 Unifloral: 統一オフライン強化学習

オフライン強化学習の統一実装と厳密な評価 - Matthew JacksonUljad BerdicaJarek Liesenによる開発。

💡 コード哲学

CORLCleanRLに触発されています - 是非ご覧ください!

🤖 アルゴリズム

二種類のアルゴリズム実装を提供しています:

トレーニング後、最終評価結果は分析用にfinal_returns/.npzファイルに保存されます。

全スクリプトはD4RLをサポートし、Weights & Biasesを用いたログ取得に対応。設定はWandBスイープファイルで提供。

モデルフリー

| アルゴリズム | スタンドアロン | 統一版 | 補足 | | --- | --- | --- | --- | | BC | bc.py | unifloral/bc.yaml | - | | SAC-N | sac_n.py | unifloral/sac_n.yaml | [[ArXiv]](https://arxiv.org/abs/2110.01548) | | EDAC | edac.py | unifloral/edac.yaml | [[ArXiv]](https://arxiv.org/abs/2110.01548) | | CQL | cql.py | - | [[ArXiv]](https://arxiv.org/abs/2006.04779) | | IQL | iql.py | unifloral/iql.yaml | [[ArXiv]](https://arxiv.org/abs/2110.06169) | | TD3-BC | td3_bc.py | unifloral/td3_bc.yaml | [[ArXiv]](https://arxiv.org/abs/2106.06860) | | ReBRAC | rebrac.py | unifloral/rebrac.yaml | [[ArXiv]](https://arxiv.org/abs/2305.09836) | | TD3-AWR | - | unifloral/td3_awr.yaml | [[ArXiv]](https://arxiv.org/abs/2504.11453) |

モデルベース

ダイナミクスモデルのトレーニング用に単一のスクリプトを実装しています: dynamics.py、設定は dynamics.yaml です。

| アルゴリズム | 単独 | 統合 | 補足 | | --- | --- | --- | --- | | MOPO | mopo.py | - | [[ArXiv]](https://arxiv.org/abs/2005.13239) | | MOReL | morel.py | - | [[ArXiv]](https://arxiv.org/abs/2005.05951) | | COMBO | combo.py | - | [[ArXiv]](https://arxiv.org/abs/2102.08363) | | MoBRAC | - | unifloral/mobrac.yaml | [[ArXiv]](https://arxiv.org/abs/2504.11453) |

新しいものが近日公開予定 👀

📊 評価

評価スクリプト (evaluation.py) は、論文で説明されているプロトコルを実装しており、UCBバンディットの性能を複数のポリシー評価にわたって解析します。

from evaluation import load_results_dataframe, bootstrap_bandit_trials
import jax.numpy as jnp

Load all results from the final_returns directory

df = load_results_dataframe("final_returns")

Run bandit trials with bootstrapped confidence intervals

results = bootstrap_bandit_trials( returns_array=jnp.array(policy_returns), # Shape: (num_policies, num_rollouts) num_subsample=8, # Number of policies to subsample num_repeats=1000, # Number of bandit trials max_pulls=200, # Maximum pulls per trial ucb_alpha=2.0, # UCB exploration coefficient n_bootstraps=1000, # Bootstrap samples for confidence intervals confidence=0.95 # Confidence level )

Access results

pulls = results["pulls"] # Number of pulls at each step means = results["estimated_bests_mean"] # Mean score of estimated best policy ci_low = results["estimated_bests_ci_low"] # Lower confidence bound ci_high = results["estimated_bests_ci_high"] # Upper confidence bound

📝 引用してください!

@misc{jackson2025clean,
      title={A Clean Slate for Offline Reinforcement Learning},
      author={Matthew Thomas Jackson and Uljad Berdica and Jarek Liesen and Shimon Whiteson and Jakob Nicolaus Foerster},
      year={2025},
      eprint={2504.11453},
      archivePrefix={arXiv},
      primaryClass={cs.LG},
      url={https://arxiv.org/abs/2504.11453},
}

--- Tranlated By Open Ai Tx | Last indexed: 2026-01-08 ---