强化学习从基础到进阶-面试必知必答[8]:近端策略优化proximal policy optimization PPO算法

举报
汀丶 发表于 2023/06/28 19:10:43 2023/06/28
【摘要】 强化学习从基础到进阶-常见问题和面试必知必答[8]:近端策略优化(proximal policy optimization,PPO)算法

强化学习从基础到进阶-常见问题和面试必知必答[8]:近端策略优化(proximal policy optimization,PPO)算法

1.核心词汇

  • 同策略(on-policy):要学习的智能体和与环境交互的智能体是同一个时对应的策略。

  • 异策略(off-policy):要学习的智能体和与环境交互的智能体不是同一个时对应的策略。

  • 重要性采样(important sampling):使用另外一种分布,来逼近所求分布的一种方法,在强化学习中通常和蒙特卡洛方法结合使用,公式如下:

f ( x ) p ( x ) d x = f ( x ) p ( x ) q ( x ) q ( x ) d x = E x q [ f ( x ) p ( x ) q ( x ) ] = E x p [ f ( x ) ] \int f(x) p(x) \mathrm{d} x=\int f(x) \frac{p(x)}{q(x)} q(x) \mathrm{d} x=E_{x \sim q}[f(x){\frac{p(x)}{q(x)}}]=E_{x \sim p}[f(x)]

我们在已知 q q 的分布后,可以使用上式计算出从 p p 这个分布采样 x x 代入 f f 以后得到的期望值。

  • 近端策略优化(proximal policy optimization,PPO):避免在使用重要性采样时由于在 θ \theta 下的 p θ ( a t s t ) p_{\theta}\left(a_{t} | s_{t}\right) 与在 θ \theta ' 下的 p θ ( a t s t ) p_{\theta'}\left(a_{t} | s_{t}\right) 相差太多,导致重要性采样结果偏差较大而采取的算法。具体来说就是在训练的过程中增加一个限制,这个限制对应 θ \theta θ \theta' 输出的动作的KL散度,来衡量 θ \theta θ \theta' 的相似程度。

2.常见问题汇总

2.1 基于同策略的策略梯度有什么可改进之处?或者说其效率较低的原因在于什么?

经典策略梯度的大部分时间花在数据采样上,即当我们的智能体与环境交互后,我们就要进行策略模型的更新。但是对于一个回合我们仅能更新策略模型一次,更新完后我们就要花时间重新采样数据,然后才能再次进行如上的更新。

所以我们可以使用异策略的方法,即使用另一个不同的策略和演员,与环境进行交互并用所采样的数据进行原先策略的更新。这样等价于使用同一组数据,在同一个回合,我们对整个策略模型更新了多次,这样会更加有效率。

2.2 使用重要性采样时需要注意的问题有哪些?

我们可以在重要性采样中将 p p 替换为任意的 q q ,但是本质上要求两者的分布不能差太多,即使我们补偿了不同数据分布的权重 p ( x ) q ( x ) \frac{p(x)}{q(x)} E x p [ f ( x ) ] = E x q [ f ( x ) p ( x ) q ( x ) ] E_{x \sim p}[f(x)]=E_{x \sim q}\left[f(x) \frac{p(x)}{q(x)}\right] ,当我们对于两者的采样次数都比较多时,最终的结果会是较为接近的。但是通常我们不会取理想数量的采样数据,所以如果两者的分布相差较大,最后结果的方差将会很大。

2.3 基于异策略的重要性采样中的数据是从 θ \theta' 中采样出来的,从 θ \theta 换成 θ \theta' 有什么优势?

使用基于异策略的重要性采样后,我们不用 θ \theta 与环境交互,而是由另外一个策略 θ \theta' 进行示范。 θ \theta' 的任务就是示范给 θ \theta 看,它和环境交互,告诉 θ \theta 它与环境交互会发生什么事,以此来训练 θ \theta 。我们要训练的是 θ \theta θ \theta' 只负责做示范,负责与环境交互,所以采样出来的数据与 θ \theta 本身是没有关系的。所以就可以让 θ \theta' 与环境交互采样大量数据, θ \theta 可以更新参数多次。一直到 θ \theta 训练到一定的程度、参数更新多次以后, θ \theta' 再重新采样,这就是同策略换成异策略的妙处。

2.4 在本节中近端策略优化中的KL散度指的是什么?

本质来说,KL散度是一个函数,其度量的是两个动作(对应的参数分别为 θ \theta θ \theta' )间的行为距离,而不是参数距离。这里的行为距离可以理解为在相同状态下输出动作的差距(概率分布上的差距),概率分布即KL散度。

3.面试必知必答

3.1 友善的面试官:请问什么是重要性采样呀?

使用另外一种分布,来逼近所求分布的一种方法,算是一种期望修正的方法,公式如下:

f ( x ) p ( x ) d x = f ( x ) p ( x ) q ( x ) q ( x ) d x = E x q [ f ( x ) p ( x ) q ( x ) ] = E x p [ f ( x ) ] \int f(x) p(x) \mathrm{d} x=\int f(x) \frac{p(x)}{q(x)} q(x) \mathrm{d} x=E_{x \sim q}[f(x){\frac{p(x)}{q(x)}}]=E_{x \sim p}[f(x)]

我们在已知 q q 的分布后,可以使用上式计算出从 p p 分布的期望值。也就可以使用 q q 来对 p p 进行采样了,即重要性采样。

3.2 友善的面试官:请问同策略和异策略的区别是什么?

我可以用一句话概括两者的区别,即生成样本的策略(价值函数)和网络参数更新时的策略(价值函数)是否相同。具体来说,同策略,生成样本的策略(价值函数)与网络更新参数时使用的策略(价值函数)相同。Sarsa算法就是同策略的,其基于当前的策略直接执行一次动作,然后用价值函数的值更新当前的策略,因此生成样本的策略和学习时的策略相同,算法为同策略算法。该算法会遭遇探索-利用窘境,仅利用目前已知的最优选择,可能学不到最优解,不能收敛到局部最优,而加入探索又降低了学习效率。 ε \varepsilon -贪心算法是这种矛盾下的折中,其优点是直接了当、速度快,缺点是不一定能够找到最优策略。异策略,生成样本的策略(价值函数)与网络更新参数时使用的策略(价值函数)不同。例如,Q学习算法在计算下一状态的预期奖励时使用了最大化操作,直接选择最优动作,而当前策略并不一定能选择到最优动作,因此这里生成样本的策略和学习时的策略不同,即异策略算法。

3.3 友善的面试官:请简述一下近端策略优化算法。其与信任区域策略优化算法有何关系呢?

近端策略优化算法借鉴了信任区域策略优化算法,通过采用一阶优化,在采样效率、算法表现以及实现和调试的复杂度之间取得了新的平衡。这是因为近端策略优化算法会在每一次迭代中尝试计算新的策略,让损失函数最小化,并且保证每一次新计算出的策略能够和原策略相差不大。换句话说,其为在避免使用重要性采样时由于在 θ \theta 下的 p θ ( a t s t ) p_{\theta}\left(a_{t} | s_{t}\right) 与在 θ \theta' 下的 p θ ( a t s t ) p_{\theta'}\left(a_{t} | s_{t}\right) 差太多,导致重要性采样结果偏差较大而采取的算法。

更多优质内容请关注公号:汀丶人工智能

相关链接以及码源见文末

强化学习从基础到进阶-案例与实践含码源-强化学习全系列超详细算法码源齐全

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。