跳至内容

schola.scripts.sb3.settings.PPOSettings

class schola.scripts.sb3.settings.PPOSettings(learning_rate=0.0003, n_steps=2048, batch_size=64, n_epochs=10, gamma=0.99, gae_lambda=0.95, clip_range=0.2, normalize_advantage=True, ent_coef=0.0, vf_coef=0.5, max_grad_norm=0.5, use_sde=False, sde_sample_freq=-1) : Bases: object

用于配置近端策略优化 (PPO) 算法设置的数据类。包括学习率、批大小、步数和其他控制 PPO 算法行为的超参数等学习过程的参数。

方法

__init__([learning_rate, n_steps, …])

属性

batch_size每次更新的最小批次大小。
clip_range策略更新的裁剪范围。
constructor
critic_type
ent_coef损失函数中熵项的系数。
gae_lambda广义优势估计 (GAE) 的 Lambda 参数。
gamma未来奖励的折扣因子。
learning_rate优化器的学习率。
max_grad_norm最大梯度范数进行裁剪。
n_epochs策略更新的 epoch 数。
n_steps每次更新每个环境运行的步数。
name
normalize_advantage是否对优势进行归一化。
sde_sample_freq采样 SDE 噪声的频率。
use_sde是否使用状态相关探索 (SDE)。
vf_coef整体损失函数中价值函数损失的系数。

参数: : - learning_rate (float)

__init__(learning_rate=0.0003, n_steps=2048, batch_size=64, n_epochs=10, gamma=0.99, gae_lambda=0.95, clip_range=0.2, normalize_advantage=True, ent_coef=0.0, vf_coef=0.5, max_grad_norm=0.5, use_sde=False, sde_sample_freq=-1) : 参数: : - learning_rate (float)

返回类型: : None

batch_size*: int* = 64 : 每次更新的最小批次大小。这是用于训练策略的每个批次中的时间步数。必须是 n_steps 的因子。

clip_range*: float* = 0.2 : 策略更新的裁剪范围。这是在训练期间新策略与旧策略之间允许的最大差异量。这有助于防止可能导致训练不稳定的过大更新。

property constructor*: Type[PPO]*

property critic_type*: str*

ent_coef*: float* = 0.0 : 损失函数中熵项的系数。这通过对策略的动作分布的确定性施加惩罚来鼓励探索。较高的值会鼓励更多的探索,而较低的值会使策略更加确定。设置为 0.0 可禁用熵正则化。

gae_lambda*: float* = 0.95 : 广义优势估计 (GAE) 的 Lambda 参数。此参数有助于平衡优势估计中的偏差和方差。值为 1.0 对应于标准优势估计,而较低的值将降低方差但可能引入偏差。

gamma*: float* = 0.99 : 未来奖励的折扣因子。这决定了代理对未来奖励的重视程度与即时奖励相比。值为 0.99 意味着未来奖励每步将折现 1%。

learning_rate*: float* = 0.0003 : 优化器的学习率。

max_grad_norm*: float* = 0.5 : 最大梯度范数进行裁剪。如果梯度的范数超过此值,则通过向下缩放梯度来防止梯度爆炸。这有助于稳定训练,尤其是在奖励或梯度方差很高的环境中。

n_epochs*: int* = 10 : 策略更新的 epoch 数。这是模型在训练期间遍历收集数据的次数。更多的 epoch 可能导致更好的收敛,但也可能导致过拟合。

n_steps*: int* = 2048 : 每次更新每个环境运行的步数。这是在更新策略之前收集的时间步数。

property name*: str*

normalize_advantage*: bool* = True : 是否对优势进行归一化。对优势进行归一化有助于通过确保它们的均值为 0 且标准差为 1 来稳定训练。这可能导致更一致的策略更新。

sde_sample_freq*: int* = -1 : 采样 SDE 噪声的频率。这决定了在使用状态相关探索 (SDE) 时何时对噪声进行采样。值为 -1 表示将在每一步采样噪声,而正整数将指定采样之间的步数。这有助于控制代理的探索行为。

use_sde*: bool* = False : 是否使用状态相关探索 (SDE)。这可以通过根据环境的当前状态调整探索噪声来帮助改进探索。当设置为 True 时,它将使用 SDE 进行探索,而不是标准的探索策略。

vf_coef*: float* = 0.5 : 整体损失函数中价值函数损失的系数。这决定了价值函数损失相对于策略损失的权重。较高的值将更强调准确估计价值函数,而较低的值将优先进行策略更新。

© . This site is unofficial and not affiliated with AMD.