ray.rllib.utils.exploration.curiosity.Curiosity#
- class ray.rllib.utils.exploration.curiosity.Curiosity(action_space: gymnasium.spaces.Space, *, framework: str, model: ModelV2, feature_dim: int = 288, feature_net_config: dict | None = None, inverse_net_hiddens: Tuple[int] = (256,), inverse_net_activation: str = 'relu', forward_net_hiddens: Tuple[int] = (256,), forward_net_activation: str = 'relu', beta: float = 0.2, eta: float = 1.0, lr: float = 0.001, sub_exploration: Dict[str, Any] | type | str | None = None, **kwargs)[源代码]#
基类:
Exploration
实现:[1] 基于好奇心的自我监督预测探索 Pathak, Agrawal, Efros, 和 Darrell - UC Berkeley - ICML 2017. https://arxiv.org/pdf/1705.05363.pdf
学习基于三个网络的简化环境模型:1) 将观察嵌入到潜在空间(“特征”网络)。2) 给定两个连续嵌入的观察,预测动作(“逆向”网络)。3) 给定一个观察和动作,预测下一个嵌入的观察(“前向”网络)。
给定观察和动作(通过前向网络),智能体越无法预测实际观察到的下一个特征向量,’内在奖励’就越大,这将被添加到外在奖励中。因此,如果一个状态转换是出乎意料的,智能体就会变得’好奇’,并将进一步探索这个转换,从而在稀疏奖励环境中实现更好的探索。
方法
初始化一个 Curiosity 对象。
在调用 policy.compute_actions() 之前的准备工作钩子。
返回当前的探索状态。
在剧集结束时处理必要的探索逻辑。
在剧集开始时处理必要的探索逻辑。
计算phi值(obs、obs'和预测的obs')以及ri。
将 Exploration 对象的状态设置为给定的值。