ray.rllib.utils.exploration.random_encoder.RE3#

class ray.rllib.utils.exploration.random_encoder.RE3(action_space: gymnasium.spaces.Space, *, framework: str, model: ModelV2, embeds_dim: int = 128, encoder_net_config: dict | None = None, beta: float = 0.2, beta_schedule: str = 'constant', rho: float = 0.1, k_nn: int = 50, random_timesteps: int = 10000, sub_exploration: Dict[str, Any] | type | str | None = None, **kwargs)[源代码]#

基类:Exploration

用于高效探索的随机编码器。

实现:[1] 使用随机编码器的状态熵最大化以实现高效探索。Seo, Chen, Shin, Lee, Abbeel, & Lee, (2021). arXiv 预印本 arXiv:2102.09430.

使用基于粒子的k近邻(k-NN)估计器在潜在空间中估计状态熵。状态的潜在表示使用随机初始化参数的编码器计算。

状态的熵被视为内在奖励,并添加到环境的外在奖励中以进行策略优化。熵是按批次计算的,它不考虑整个回放缓冲区的分布。

方法

__init__

初始化 RE3。

before_compute_actions

在调用 policy.compute_actions() 之前的准备工作钩子。

get_exploration_optimizer

可以将优化器添加到策略自身的 optimizers 中。

get_state

返回当前的探索状态。

on_episode_end

在剧集结束时处理必要的探索逻辑。

on_episode_start

在剧集开始时处理必要的探索逻辑。

postprocess_trajectory

计算状态的潜在表示/嵌入。

set_state

将 Exploration 对象的状态设置为给定的值。