【笔记2-2】李宏毅深度强化学习笔记(二)Proximal Policy Optimization (PPO)

李宏毅深度强化学习课程 https://www.bilibili.com/video/av24724071

李宏毅深度强化学习笔记(一)Outline
李宏毅深度强化学习笔记(三)Q-Learning
李宏毅深度强化学习笔记(四)Actor-Critic
李宏毅深度强化学习笔记(五)Sparse Reward
李宏毅深度强化学习笔记(六)Imitation Learning
李宏毅深度强化学习课件

Policy Gradient

术语和基本思想

基本组成:

  1. actor (即policy gradient要学习的对象, 是我们可以控制的部分)
  2. 环境 environment (给定的,无法控制)
  3. 回报函数 reward function (无法控制)

Policy of actor π \pi π:
如下图所示,Policy 可以理解为一个包含参数 θ \theta θ的神经网络,该网络将观察到的变量作为模型的输入,基于概率输出对应的行动action
example of policy
Episode:
游戏从开始到结束的一个完整的回合

actor的目标:
最大化总收益reward

Trajectory τ \tau τ:
行动action和状态state的序列

给定神经网络参数 θ \theta θ的情况下,出现行动状态序列 τ \tau τ的概率:
以下概率的乘积:初始状态出现的概率;给定当前状态,采取某一个行动的概率;以及采取该行动之后,基于该行动以及当前状态返回下一个状态的概率,用公式表示为:
probability of \tau
给定一个行动状态序列 τ \tau τ, 我们可以得到它对应的收益reward,通过控制actor,我们可以得到不同的收益。由于actor采取的行动以及给定环境下出现某一个状态state是随机的,最终的目标是找到一个具有最大期望收益(即下述公式)的actor。

累积期望收益:采取某一个行动状态序列 τ \tau τ的概率, 以及该行动状态序列对应的收益reward的乘积之和。
expected reward

Policy Gradient

得出目标函数之后,就需要根据目标函数求解目标函数最大值以及最大值对应的policy的参数 θ \theta θ。类比深度学习中的梯度下降求最小值的方法,由于我们这里需要求的是目标函数的最大值,因此需要采取的方法是梯度上升。也就是说,思想起点是一样的,即需要求出目标函数的梯度。

求解梯度的步骤如下,以前文所述目标函数为基础,对参数 θ \theta θ 求导,其中,对概率加权的reward求和就是求reward的期望,因此有红框部分的改写,又因为训练的过程中会进行采样训练,采样个数为N,因此公式可以近似表示为N词采样得到的reward的平均。
policy gradient

Tip 1: 添加基准线
由于训练过程中采样是随机的,可能会出现某个行动不被采样的情况,这会导致采取该行动的概率下降;另外,由于采取的行动概率和为一,可能存在归一化之后,好的action的概率相对下降,坏的action概率相对上升的情况,因此需要引入一个基准线baseline b b b.
具体的例子:当policy决定采取的三个action a,b,c均有正的reward时,比如3,4,5,在计算各个action的概率的时候,本来应该给action c分配较大的概率,但是归一化之后,a的概率反而可能上升,c的概率可能会下降,与对应reward应该被分配的概率分布不符。但是引入baseline之后,可能a的reward会变为负,这样的话,采取该行动的概率就会下降。
baseline
Tip 2: 进一步考虑各个时间点的累积收益计算方式
考虑到在时间t采取的行动action与t时期之前的收益reward无关,因此只需要将t时刻开始到结束的reward进行加总。并且,由于行动action对随后各时间点的reward的影响会随着时间的推移而减小,因此加入折旧因子 γ \gamma γ
这样就得到了一个考虑比较全面,比较完善的梯度计算方式。
Assign Suitable Credit

从on-policy到off-policy (反复多次使用经验)

术语和基本思想

On-policy: 学习到的agent以及和环境进行互动的agent是同一个agent
Off-policy: 学习到的agent以及和环境进行互动的agent是不同的agent

为什么要引入 Off-policy:
why off policy
如果我们使用 π θ \pi_\theta πθ 来收集数据,那么参数 θ \theta θ 被更新后,我们需要重新对训练数据进行采样,这样会造成巨大的时间消耗。
目标:利用 π θ ′ \pi_{\theta}′ πθ 来进行采样,将采集的样本拿来训练 θ \theta θ θ ′ \theta′ θ 是固定的,采集的样本可以被重复使用。

原理:Important sampling:
当我们只有通过另外一个分布得到的样本时,期望值可以做出以下更改,更换分布之后,需要使用重要性权重 p ( x ) / q ( x ) p(x)/q(x) p(x)/q(x)来修正 f ( x ) f(x) f(x).,这样就实现了使用q分布来计算p分布期望值。
important sampling
需要注意的是,两个分布 p , q p,q pq之间的差别不能太大,否则方差会出现较大的差别。

先基于原始的分布p计算函数的方差,然后计算引入不同分布q之后得到的函数方差,可以发现两者得出的方差表达式后面一项相同,主要差别在于前面那一项,如果分布p和q之间差别太大,会导致第一项的值较大或较小,于是造成两者较大的差别。
在这里插入图片描述
如果 p , q p, q p,q两个分布的差别过大,在训练的过程中就需要进行更多次数的采样。

比如下图中,实际分布p和辅助分布q差别较大,横轴左边表示收益为负,右边表示收益为正。蓝色的线表示真实分布p的分布,主要集中在左边,也就是说,真实情况下reward的期望值应该是负的。

但是由于辅助分布q,即绿色线,主要集中在右侧,因此在采样的时候采到右边的概率更大,可能会导致多轮采样之后,算出来的期望收益依旧为正,只有当采样到左侧的点,并且乘上较大的修正系数 p / q p/q p/q之后,算出的结果才会变成真实的符号,负号。尽管采样到右侧的点修正系数很小,最终结果可能依旧是正确的,但这样会导致在采样上耗费较大的时间,因此,p q分布之间的差异依旧不宜过大。
在这里插入图片描述
从上述important sampling的思想出发,可以使用该思想来达到上文所述的目标,即 “利用 π θ ′ \pi_{\theta}′ πθ 来进行采样,将采集的样本拿来训练 θ \theta θ θ ′ \theta′ θ 是固定的,采集的样本可以被重复使用” 表示为:
在这里插入图片描述
提醒 :

  1. Advantage function (收益reward减去基准baseline) 也应该随着新的采样参数而变化(从基于 θ \theta θ A θ A^{\theta} Aθ变为基于 θ ′ \theta' θ A θ ′ A^{\theta'} Aθ
  2. 在不同的参数情况下,某一个状态state出现的概率几乎没有差别,因此可以将这一项近似地消掉
  3. stop criteria取决于两个分布之间的差别大小
    在这里插入图片描述

加入约束: ( θ \theta θ 不能与 θ ′ \theta′ θ差别过大)
Tip: 这是一项加在行为上的约束,而不是加在参数上的约束

PPO / TRPO:
PPO在原目标函数的基础上添加了KL divergence 部分,用来表示两个分布之前的差别,差别越大则该值越大。那么施加在目标函数上的惩罚也就越大,因此要尽量使得两个分布之间的差距小,才能保证较大的目标函数。

TRPO 与 PPO 之间的差别在于它使用了 KL divergence 作为约束。但是这使得TRPO相对而言更难计算,因此较少使用。
在这里插入图片描述
在这里插入图片描述

PPO 算法

  1. 初始化policy的参数 θ 0 \theta^0 θ0
  2. 在每一次迭代中,使用 θ k \theta^k θk来和环境互动,收集状态和行动并计算对应的advantage function
  3. 不断更新参数,找到目标函数最优值对应的参数 θ \theta θ

在训练的过程中采用适应性的KL惩罚因子:
当KL过大时,增大beta值来加大惩罚力度
当KL过小时,减小beta值来降低惩罚力度
在这里插入图片描述

PPO2:

Tips:

  1. PPO2引入了Clip函数,意味着第二项,即蓝色的虚线必须在 1- ϵ \epsilon ϵ 和 1+ ϵ \epsilon ϵ 之间
  2. 红色的线表示取最小值之后整个函数值分布情况.
    在这里插入图片描述
  • 110
    点赞
  • 385
    收藏
    觉得还不错? 一键收藏
  • 17
    评论
### 回答1: Proximal Policy OptimizationPPO)是一种目前被广泛应用于强化学习领域的优化算法。它起源于OpenAI公司的研究者们的努力,旨在解决现有的基于策略梯度方法在采样效率和训练稳定性方面的问题。 在过去,基于策略梯度的方法在训练过程中存在一些挑战。首先,传统的策略梯度方法通常需要采样大量的样本来进行训练,导致训练的时间开销较大。其次,在训练过程中,梯度更新的幅度可能过大,导致策略的变化太过剧烈,进而影响训练的稳定性。 为了解决这些问题,OpenAI的研究者提出了PPO算法。PPO算法通过引入“近端”以及“裁剪”机制来控制策略更新的大小,从而保证了训练过程的稳定性。具体来说,PPO算法通过在每一次训练迭代中进行多次策略更新,并使用一种近端优化方法来限制每次更新的大小。这样可以防止梯度的剧烈变化,同时提升采样效率。 PPO算法的提出为强化学习领域带来了重要的突破。它的优势在于训练过程中不仅更加稳定,而且具有较高的采样效率。这使得PPO算法成为了广泛应用于各类强化学习问题的解决方案。同时,PPO算法的思想也为其他相关的优化算法提供了启示,为这一领域的发展做出了重要贡献。 总而言之,PPO算法的起源源于OpenAI公司研究者们对基于策略梯度方法的改进探索,它通过引入近端优化和裁剪机制来提高训练稳定性和采样效率,为强化学习领域带来了重要的突破。 ### 回答2: Proximal Policy Optimization(简称PPO)是由OpenAI于2017年提出的一种强化学习算法。这个算法的灵感来自前人提出的TRPO(Trust Region Policy Optimization)算法。TRPO算法是一种基于策略梯度的算法,它通过限制策略更新的步长,保持原始策略与更新策略的KL散度在可接受范围内,从而确保策略更新的稳定性。 然而,TRPO算法的计算复杂度较高,且在实际应用中存在一些不足之处。鉴于这些问题,OpenAI团队对TRPO进行改进而提出了PPO算法。 PPO算法提出了一个新的目标函数,在保证更新策略不会离原始策略太远的前提下,最大化策略梯度并通过剪切来调节步长。这样,PPO算法在计算效率和稳定性上都比TRPO有所提升。此外,PPO还引入了重要性比率修正项,用于抵消由采样引入的偏差,提高更新的准确性。 PPO算法的起源可以追溯到强化学习的研究和应用需求。在过去几年中,强化学习在各个领域取得了巨大的进展,包括机器人控制、游戏AI等。然而,现有的算法在性能和效率上仍然存在着一些问题。因此,PPO算法的提出是为了解决这些问题,进一步推动强化学习的发展。 总之,PPO算法的起源可以归结为对既有算法的改进和创新。通过提出新的目标函数和修正项,PPO算法在计算效率和稳定性上有了明显的改进,使得强化学习能够更好地应用于各个领域。 ### 回答3: Proximal Policy OptimizationPPO)是一种由OpenAI提出的强化学习算法,其起源可以追溯到自然策略梯度(Natural Policy Gradient)算法和策略梯度定理。 自然策略梯度算法是一种基于策略梯度的方法,其主要思想是对策略进行优化,以最大化预期回报。然而,自然策略梯度算法在实际应用中存在一些问题,例如训练不稳定和采样效率低下。 为了解决这些问题,OpenAI团队在2017年提出了PPO算法。PPO算法的核心观点是尽量改善策略,但同时保持策略的近似保持不变(approximately keeping policy)。 PPO的基本原理是,通过执行多个策略更新步骤,每个更新步骤都在同样的时间内执行多个策略,以最大限度地改善策略,并且通过一种称为"clipping"的技术来约束策略更新的幅度。"clipping"技术可以控制策略改进的幅度,以防止策略更新过大而导致训练不稳定。 通过这样的方式,PPO可以在保持较大的更新幅度的同时,避免过度更新策略,从而提高训练的稳定性和采样效率。 总结起来,Proximal Policy Optimization的起源可以追溯到对自然策略梯度算法的改进和优化。它通过多种策略更新步骤和"clipping"技术,使得训练更加稳定和高效。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值