信任区域策略优化(TRPO)代理
Trust Region Policy Optimization (TRPO)是一种无模型、在线、策略上、策略梯度强化学习算法。TRPO在通过环境交互采样数据和通过解决约束优化问题更新策略参数之间进行交替。在优化过程中,利用新策略与旧策略之间的KL-divergence作为约束。因此,与标准策略梯度方法相比,该算法通过将更新的策略保持在接近当前策略的信任区域内,从而防止了显著的性能下降<一个href="//www.tatmou.com/la/help/reinforcement-learning/ug/trpo-agents.html" class="intrnllnk">[1].
请注意
TRPO代理不支持循环网络。金宝app
PPO是TRPO的简化版。TRPO比PPO计算成本更高,但如果环境动态是确定的且观测数量较低,TRPO往往比PPO更稳健。有关PPO代理的更多信息,请参见<一个href="//www.tatmou.com/la/help/reinforcement-learning/ug/ppo-agents.html" class="a">近端策略优化(PPO)代理.
有关不同类型的强化学习代理的更多信息,请参见<一个href="//www.tatmou.com/la/help/reinforcement-learning/ug/create-agents-for-reinforcement-learning.html" class="a">强化学习代理.
TRPO代理可以在具有以下观察和行动空间的环境中进行训练。
观察太空
行动空间
离散的还是连续的
离散的还是连续的
TRPO代理人使用以下演员和评论家。
评论家
演员
价值功能评论家V(年代),您可以使用它来创建<一个href="//www.tatmou.com/la/help/reinforcement-learning/ref/rl.function.rlvaluefunction.html">rlValueFunction
随机政策行动者π(年代),您可以使用它来创建<一个href="//www.tatmou.com/la/help/reinforcement-learning/ref/rl.function.rldiscretecategoricalactor.html">rlDiscreteCategoricalActor(对于离散动作空间)或<一个href="//www.tatmou.com/la/help/reinforcement-learning/ref/rl.function.rlcontinuousgaussianactor.html">rlContinuousGaussianActor(适用于连续动作空间)
培训期间,TRPO代理:
估计在动作空间中采取每个动作的概率,并根据概率分布随机选择动作。
使用当前策略与环境进行多个步骤的交互,然后使用小批在多个时期更新参与者和评论家属性。
如果UseExplorationPolicy选项设置为假最大似然运算常用于<一个href="//www.tatmou.com/la/help/reinforcement-learning/ref/rl.env.abstractenv.sim.html">sim卡而且<一个href="//www.tatmou.com/la/help/reinforcement-learning/ref/rl.policy.rlmaxqpolicy.generatepolicyfunction.html">generatePolicyFunction.因此,模拟的代理和生成的策略的行为是确定的。
如果UseExplorationPolicy设置为真正的智能体通过抽样概率分布来选择行动。因此,策略是随机的,主体探索其观察空间。
此选项仅影响模拟和部署;这不会影响训练。
演员和评论家函数逼近器
为了估计策略函数和值函数,TRPO代理维护两个函数逼近器。
演员π(一个|年代;θ-参与者,带参数θ,输出采取每个动作的条件概率一个当处于状态时年代作为下列之一:
离散行动空间-采取每个离散行动的概率。所有行动的概率之和是1。
连续动作空间-每个连续动作的高斯概率分布的平均值和标准偏差。
评论家V(年代;ϕ——批评家,带着参数ϕ,进行观察年代并返回相应的折现长期回报的期望。
有关为函数近似创建actor和批评家的详细信息,请参见<一个href="//www.tatmou.com/la/help/reinforcement-learning/ug/create-policy-and-value-function-representations.html" class="a">创建策略和值函数.
在训练期间,代理调整参数值θ.训练后,参数保持其调谐值,训练后的actor函数近似值存储在π(一个|年代).
代理创建
您可以在MATLAB中创建和训练TRPO代理<年代up>®命令行或使用<年代trongcl一个年代年代="app">强化学习设计师使用. app创建代理的详细信息<年代trongcl一个年代年代="app">强化学习设计师,请参阅<一个href="//www.tatmou.com/la/help/reinforcement-learning/ug/create-agents-using-reinforcement-learning-designer.html" class="a">使用强化学习设计器创建代理.
在命令行上,您可以根据来自环境的观察和操作规范创建具有默认参与者和评论家的TRPO代理。为此,请执行以下步骤。
为您的环境创建观察规范。如果已经有了环境接口对象,可以使用<一个href="//www.tatmou.com/la/help/reinforcement-learning/ref/rl.env.abstractmdp.getobservationinfo.html">getObservationInfo.
为您的环境创建操作规范。如果已经有了环境接口对象,可以使用<一个href="//www.tatmou.com/la/help/reinforcement-learning/ref/rl.env.abstractmdp.getactioninfo.html">getActionInfo.
如果需要,指定每个可学习层中的神经元数量。为此,使用创建代理初始化选项对象<一个href="//www.tatmou.com/la/help/reinforcement-learning/ref/rl.option.rlagentinitializationoptions.html">rlAgentInitializationOptions.
属性指定代理选项<一个href="//www.tatmou.com/la/help/reinforcement-learning/ref/rl.option.rltrpoagentoptions.html">rlTRPOAgentOptions对象。
类创建代理<一个href="//www.tatmou.com/la/help/reinforcement-learning/ref/rl.agent.rltrpoagent.html">rlTRPOAgent对象。
或者,您可以创建actor和critic,并使用这些对象来创建您的代理。在这种情况下,确保参与者和评论家的输入和输出维度与环境的相应操作和观察规范相匹配。
使用以下命令创建角色<一个href="//www.tatmou.com/la/help/reinforcement-learning/ref/rl.function.rldiscretecategoricalactor.html">rlDiscreteCategoricalActor对象(用于离散操作空间)或<一个href="//www.tatmou.com/la/help/reinforcement-learning/ref/rl.function.rlcontinuousgaussianactor.html">rlContinuousGaussianActor对象(用于连续操作空格)。
创建一个评论家使用<一个href="//www.tatmou.com/la/help/reinforcement-learning/ref/rl.function.rlvaluefunction.html">rlValueFunction对象。
类型指定代理选项(如果需要)<一个href="//www.tatmou.com/la/help/reinforcement-learning/ref/rl.option.rltrpoagentoptions.html">rlTRPOAgentOptions对象。
属性创建代理<一个href="//www.tatmou.com/la/help/reinforcement-learning/ref/rl.agent.rltrpoagent.html">rlTRPOAgent函数。
TRPO代理不支持使用循环深度神经网络金宝app作为函数逼近器的参与者和评论家。TRPO代理也不支持使用的深度神经网络金宝appquadraticLayer.
有关为函数近似创建actor和批评家的详细信息,请参见<一个href="//www.tatmou.com/la/help/reinforcement-learning/ug/create-policy-and-value-function-representations.html" class="a">创建策略和值函数.
信任区域策略优化
信任区域策略优化找到使下列参与者损失函数最小的参与者参数。
在这里:
米是小批大小。
D<年代ub>我 是一个优势函数。
π<年代ub>我 (一个<年代ub>我|年代<年代ub>我;θ)是采取行动的概率一个<年代ub>我遵循现行政策。该值是概率(离散动作)或概率密度函数(连续动作)的特定值。
π(一个<年代ub>我 |年代<年代ub>我;θ<年代ub>老)是采取行动的概率一个<年代ub>我遵循旧政策。
wℋ<年代ub>我 (θ,年代<年代ub>我 )为熵损失项,其中w熵是失重的吗ℋ<年代ub>我(θ,年代<年代ub>我)为熵。有关更多信息,请参见<一个href="//www.tatmou.com/la/help/reinforcement-learning/ug/trpo-agents.html" class="intrnllnk">熵损失.
这种最小化受到以下约束。
在这里:
D<年代ub>吉隆坡 (θ<年代ub>老,θ,年代<年代ub>我)是旧政策之间的Kullback-Leibler (KL)分歧π(一个|年代<年代ub>我;θ<年代ub>老)及现行政策π(一个|年代<年代ub>我;θ).D<年代ub>吉隆坡度量新旧策略的概率分布有多大不同。D<年代ub>吉隆坡当两个分布相同时为0。
δ的极限是D<年代ub>吉隆坡 并控制新策略与旧策略的偏差程度。
对于具有离散动作空间的智能体,D<年代ub>吉隆坡计算如下,其中P是动作的数量。
对于具有连续动作空间的agent,D<年代ub>吉隆坡计算如下。
在这里:
μ<年代ub>θ,k 而且σ<年代ub>θ,k的均值和标准差是k当前角色策略输出的动作π(一个<年代ub>k|年代<年代ub>我;θ).
μ<年代ub>θ老k 而且σ<年代ub>θ老k的均值和标准差是k旧策略输出的动作π(一个<年代ub>k|年代<年代ub>我;θ<年代ub>老).
为了近似这个优化问题,TRPO代理使用的线性近似l<年代ub>演员(θ的二次近似D<年代ub>吉隆坡(θ<年代ub>老,θ,年代<年代ub>我).近似是通过泰勒级数展开来计算的θ.
该近似优化问题的解析解如下。
在这里,x=H-1g而且α是保证策略改进并满足约束的系数。
训练算法
TRPO代理使用以下训练算法。若要配置训练算法,请使用rlTRPOAgentOptions对象。
初始化actorπ(一个|年代;θ),参数值随机θ.
初始化评论家V(年代;ϕ),参数值随机ϕ.
生成N遵循现行政策的经验。经验序列是
在这里,年代<年代ub>t是一个状态观察,一个<年代ub>t是在那个状态下采取的行动,年代<年代ub>t + 1下一个状态,和R<年代ub>t + 1从那里搬走的报酬收到了吗年代<年代ub>t来年代<年代ub>t + 1.当处于状态时年代<年代ub>t,智能体计算在动作空间中采取每个动作的概率π(一个|年代<年代ub>t;θ)并随机选择动作一个<年代ub>t基于概率分布。ts起始时间步长是当前设置的吗N的经历。在训练一开始,ts= 1。对于每个后续的集合N在同一训练阶段的经历,ts←ts+N.对于每个不包含终端状态的体验序列,N等于ExperienceHorizon选项值。否则,N小于ExperienceHorizon而且年代<年代ub>N
是终端状态。
对于每个插曲步骤t=ts+ 1,ts+ 2,…,ts+N的方法,计算收益和优势函数AdvantageEstimateMethod选择。
有限的地平线(advantageestimatemmethod = " limited -horizon") -计算回报G<年代ub>t,这是该步骤的奖励和贴现后的未来奖励的总和<一个href="//www.tatmou.com/la/help/reinforcement-learning/ug/trpo-agents.html" class="intrnllnk">[2].
在这里,b是0如果年代<年代ub>t + N是终端状态和1否则。也就是说,如果年代<年代ub>t + N不是终端状态,未来的折现奖励包括折现状态值函数,用评论家网络计算V.计算优势函数D<年代ub>t.
广义优势估计(advantageestimatemmethod = "gae") -计算优势函数D<年代ub>t,为时间差误差的折后和<一个href="//www.tatmou.com/la/help/reinforcement-learning/ug/trpo-agents.html" class="intrnllnk">[3].
在这里,b是0如果年代<年代ub>t + N是终端状态和1否则。λ平滑因子是否使用GAEFactor选择。计算回报G<年代ub>t.
指定贴现因子γ对于任何一种方法,都使用DiscountFactor选择。
从小批量的经验中学习K时代的发展。指定K,使用NumEpoch选择。对于每个学习阶段:
随机抽取大小的小批量数据集进行抽样米从目前的经验来看。指定米,使用MiniBatchSize选择。小批量数据集的每个元素包含当前经验和相应的回报和优势函数值。
通过最小化损失来更新关键参数l<年代ub>评论家在所有采样的小批数据中。
标准化优势值D<年代ub>我根据最近的非标准化优势值。
如果NormalizedAdvantageMethod选择是“没有”,不归一化优势值。
如果NormalizedAdvantageMethod选择是“当前”,根据当前小批中未归一化的优势,对优势值进行归一化。
如果NormalizedAdvantageMethod选择是“移动”,基于非归一化优势对优势值进行归一化N最近的优势,包括当前的优势值。指定窗口大小N,使用AdvantageNormalizingWindow选择。
通过求解约束优化问题更新角色参数。
计算策略梯度。
应用共轭梯度(CG)方法求出以下方程的近似解,其中H是kl的黑森,新旧政策的分歧。
若要配置CG算法的终止条件,请使用NumIterationsConjugateGradient而且ConjugateGradientResidualTolerance选项。要稳定CG算法的数值计算,请使用ConjugateGradientDamping选择。
使用直线搜索算法,找到最大的α它满足以下约束条件。
在这里,δ是kl散度极限,您可以使用KLDivergenceLimit选择。n行的搜索迭代次数,您使用NumIterationsLineSearch选择。
的有效值α存在时,将参与者网络的参数更新为θ.的有效值α不存在,不更新参与者参数。
重复步骤3到5,直到训练达到最终状态。
熵损失
为了促进agent探索,可以添加熵损失项wℋ<年代ub>我 (θ,年代<年代ub>我)到actor损失函数,其中w熵是失重的吗ℋ<年代ub>我(θ,年代<年代ub>我)为熵。
当智能体对下一步采取何种行动更加不确定时,熵值就会更高。因此,最大化熵损失项(最小化负熵损失)会增加agent的不确定性,从而鼓励探索。为了促进额外的探索,这可以帮助代理走出局部最优,您可以指定更大的熵损失权重。
对于离散动作空间,代理使用以下熵值。在这种情况下,参与者输出采取每个可能的离散操作的概率。
在这里:
P是可能的离散动作的数量。
π(一个<年代ub>k |年代<年代ub>我;θ)是采取行动的概率一个<年代ub>k当处于状态时年代<年代ub>我遵循现行政策。
对于连续的动作空间,代理使用以下熵值。在这种情况下,参与者输出每个连续动作的高斯分布的平均值和标准偏差。
在这里:
C是参与者输出的连续动作的数量。
σ<年代ub>凯西,我 是行动的标准偏差吗k当处于状态时年代<年代ub>我遵循现行政策。
参考文献
舒尔曼,约翰,谢尔盖·莱文,彼得·阿比尔,迈克尔·乔丹和菲利普·莫里茨。“信任区域策略优化”。第32届国际机器学习会议论文集, 1889-1897页。2015.
[2] Mnih, Volodymyr, Adrià Puigdomènech Badia, Mehdi Mirza, Alex Graves, Timothy P. Lillicrap, Tim Harley, David Silver和Koray Kavukcuoglu。深度强化学习的异步方法ArXiv: 1602.01783 (Cs)2016年2月4日。<一个href="https://arxiv.org/abs/1602.01783" target="_blank">https://arxiv.org/abs/1602.01783.
[3]舒尔曼,约翰,菲利普·莫里茨,谢尔盖·莱文,迈克尔·乔丹和彼得·阿贝尔。使用广义优势估计的高维连续控制ArXiv: 1506.02438 (Cs)2018年10月20日。<一个href="https://arxiv.org/abs/1506.02438" target="_blank">https://arxiv.org/abs/1506.02438.
另请参阅
对象
rlTRPOAgent
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">rlTRPOAgentOptions
相关的例子
更多关于
Trust Region Policy Optimization (TRPO)是一种无模型、在线、策略上、策略梯度强化学习算法。TRPO在通过环境交互采样数据和通过解决约束优化问题更新策略参数之间进行交替。在优化过程中,利用新策略与旧策略之间的KL-divergence作为约束。因此,与标准策略梯度方法相比,该算法通过将更新的策略保持在接近当前策略的信任区域内,从而防止了显著的性能下降<一个href="//www.tatmou.com/la/help/reinforcement-learning/ug/trpo-agents.html" class="intrnllnk">[1] 请注意 TRPO代理不支持循环网络。金宝app PPO是TRPO的简化版。TRPO比PPO计算成本更高,但如果环境动态是确定的且观测数量较低,TRPO往往比PPO更稳健。有关PPO代理的更多信息,请参见<一个href="//www.tatmou.com/la/help/reinforcement-learning/ug/ppo-agents.html" class="a">近端策略优化(PPO)代理 有关不同类型的强化学习代理的更多信息,请参见<一个href="//www.tatmou.com/la/help/reinforcement-learning/ug/create-agents-for-reinforcement-learning.html" class="a">强化学习代理 TRPO代理可以在具有以下观察和行动空间的环境中进行训练。 TRPO代理人使用以下演员和评论家。 价值功能评论家 随机政策行动者 培训期间,TRPO代理: 估计在动作空间中采取每个动作的概率,并根据概率分布随机选择动作。 使用当前策略与环境进行多个步骤的交互,然后使用小批在多个时期更新参与者和评论家属性。 如果 如果 此选项仅影响模拟和部署;这不会影响训练。 为了估计策略函数和值函数,TRPO代理维护两个函数逼近器。 演员 离散行动空间-采取每个离散行动的概率。所有行动的概率之和是1。 连续动作空间-每个连续动作的高斯概率分布的平均值和标准偏差。 评论家 有关为函数近似创建actor和批评家的详细信息,请参见<一个href="//www.tatmou.com/la/help/reinforcement-learning/ug/create-policy-and-value-function-representations.html" class="a">创建策略和值函数 在训练期间,代理调整参数值 您可以在MATLAB中创建和训练TRPO代理<年代up>® 在命令行上,您可以根据来自环境的观察和操作规范创建具有默认参与者和评论家的TRPO代理。为此,请执行以下步骤。 为您的环境创建观察规范。如果已经有了环境接口对象,可以使用<一个href="//www.tatmou.com/la/help/reinforcement-learning/ref/rl.env.abstractmdp.getobservationinfo.html"> 为您的环境创建操作规范。如果已经有了环境接口对象,可以使用<一个href="//www.tatmou.com/la/help/reinforcement-learning/ref/rl.env.abstractmdp.getactioninfo.html"> 如果需要,指定每个可学习层中的神经元数量。为此,使用创建代理初始化选项对象<一个href="//www.tatmou.com/la/help/reinforcement-learning/ref/rl.option.rlagentinitializationoptions.html"> 属性指定代理选项<一个href="//www.tatmou.com/la/help/reinforcement-learning/ref/rl.option.rltrpoagentoptions.html"> 类创建代理<一个href="//www.tatmou.com/la/help/reinforcement-learning/ref/rl.agent.rltrpoagent.html"> 或者,您可以创建actor和critic,并使用这些对象来创建您的代理。在这种情况下,确保参与者和评论家的输入和输出维度与环境的相应操作和观察规范相匹配。 使用以下命令创建角色<一个href="//www.tatmou.com/la/help/reinforcement-learning/ref/rl.function.rldiscretecategoricalactor.html"> 创建一个评论家使用<一个href="//www.tatmou.com/la/help/reinforcement-learning/ref/rl.function.rlvaluefunction.html"> 类型指定代理选项(如果需要)<一个href="//www.tatmou.com/la/help/reinforcement-learning/ref/rl.option.rltrpoagentoptions.html"> 属性创建代理<一个href="//www.tatmou.com/la/help/reinforcement-learning/ref/rl.agent.rltrpoagent.html"> TRPO代理不支持使用循环深度神经网络金宝app作为函数逼近器的参与者和评论家。TRPO代理也不支持使用的深度神经网络金宝app 有关为函数近似创建actor和批评家的详细信息,请参见<一个href="//www.tatmou.com/la/help/reinforcement-learning/ug/create-policy-and-value-function-representations.html" class="a">创建策略和值函数 信任区域策略优化找到使下列参与者损失函数最小的参与者参数。
在这里: 米 D<年代ub>我 π<年代ub>我 π w 这种最小化受到以下约束。
在这里: D<年代ub>吉隆坡 δ 对于具有离散动作空间的智能体,
对于具有连续动作空间的agent,
在这里: μ<年代ub>θ,k μ<年代ub>θ老k 为了近似这个优化问题,TRPO代理使用的线性近似
该近似优化问题的解析解如下。
在这里, TRPO代理使用以下训练算法。若要配置训练算法,请使用 初始化actor 初始化评论家 生成
在这里, 当处于状态时 ts 对于每个不包含终端状态的体验序列, 对于每个插曲步骤 有限的地平线
在这里, 计算优势函数
广义优势估计
在这里, 计算回报
指定贴现因子 从小批量的经验中学习 随机抽取大小的小批量数据集进行抽样 通过最小化损失来更新关键参数
标准化优势值 如果
如果
如果
通过求解约束优化问题更新角色参数。 计算策略梯度。
应用共轭梯度(CG)方法求出以下方程的近似解,其中
若要配置CG算法的终止条件,请使用 使用直线搜索算法,找到最大的
在这里, 的有效值 重复步骤3到5,直到训练达到最终状态。 为了促进agent探索,可以添加熵损失项 当智能体对下一步采取何种行动更加不确定时,熵值就会更高。因此,最大化熵损失项(最小化负熵损失)会增加agent的不确定性,从而鼓励探索。为了促进额外的探索,这可以帮助代理走出局部最优,您可以指定更大的熵损失权重。 对于离散动作空间,代理使用以下熵值。在这种情况下,参与者输出采取每个可能的离散操作的概率。
在这里: P π 对于连续的动作空间,代理使用以下熵值。在这种情况下,参与者输出每个连续动作的高斯分布的平均值和标准偏差。
在这里: C σ<年代ub>凯西,我 舒尔曼,约翰,谢尔盖·莱文,彼得·阿比尔,迈克尔·乔丹和菲利普·莫里茨。“信任区域策略优化”。 [2] Mnih, Volodymyr, Adrià Puigdomènech Badia, Mehdi Mirza, Alex Graves, Timothy P. Lillicrap, Tim Harley, David Silver和Koray Kavukcuoglu。深度强化学习的异步方法 [3]舒尔曼,约翰,菲利普·莫里茨,谢尔盖·莱文,迈克尔·乔丹和彼得·阿贝尔。使用广义优势估计的高维连续控制
观察太空 行动空间
离散的还是连续的 离散的还是连续的
评论家 演员
rlValueFunction
rlDiscreteCategoricalActor
rlContinuousGaussianActor
sim卡
generatePolicyFunction
演员和评论家函数逼近器
代理创建
getObservationInfo
getActionInfo
rlAgentInitializationOptions
rlTRPOAgentOptions
rlTRPOAgent
rlDiscreteCategoricalActor
rlContinuousGaussianActor
rlValueFunction
rlTRPOAgentOptions
rlTRPOAgent
信任区域策略优化
训练算法
熵损失
参考文献
另请参阅
对象
rlTRPOAgent
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">rlTRPOAgentOptions
相关的例子
更多关于