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

1.核心词汇

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

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

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

    $$

    \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$ 的分布后,可以使用上式计算出从 $p$ 这个分布采样 $x$ 代入 $f$ 以后得到的期望值。

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

2.常见问题汇总

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

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

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

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

我们可以在重要性采样中将 $p$ 替换为任意的 $q$,但是本质上要求两者的分布不能差太多,即使我们补偿了不同数据分布的权重 $\frac{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 友善的面试官:请问什么是重要性采样呀?

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

$$

\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$ 的分布后,可以使用上式计算出从 $p$ 分布的期望值。也就可以使用 $q$ 来对 $p$ 进行采样了,即重要性采样。

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

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

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

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

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

相关链接以及码源见文末

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

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

  1. 深度学习课程笔记(十四)深度强化学习 --- Proximal Policy Optimization (PPO)

    深度学习课程笔记(十四)深度强化学习 ---  Proximal Policy Optimization (PPO) 2018-07-17 16:54:51  Reference: https://b ...

  2. [ 学习路线 ] 2015 前端(JS)工程师必知必会 (2)

    http://segmentfault.com/a/1190000002678515?utm_source=Weibo&utm_medium=shareLink&utm_campaig ...

  3. 迈向高阶:优秀Android程序员必知必会的网络基础

    1.前言 网络通信一直是Android项目里比较重要的一个模块,Android开源项目上出现过很多优秀的网络框架,从一开始只是一些对HttpClient和HttpUrlConnection简易封装使用 ...

  4. .NET零基础入门09:SQL必知必会

    一:前言 仿佛到了更进一步的时候了,每一个程序员迟早都会遇到数据存储的问题.我们拿什么来存储程序产生的数据?举例来说,用什么来存储我们的打老鼠游戏每次的成绩呢?选择如下: 1:内存中.缺点,退出游戏, ...

  5. 第3节:Java基础 - 必知必会(上)

    第3节:Java基础 - 必知必会(上) 本篇是基础篇的第一小节,我们从最基础的java知识点开始学习.本节涉及的知识点包括面向对象的三大特征:封装,继承和多态,并且对常见且容易混淆的重要概念覆盖和重 ...

  6. 【SQL必知必会笔记(1)】数据库基础、SQL、MySQL8.0.16下数据库、表的创建及数据插入

    文章目录 1.数据库基础 1.1 数据库(database) 1.2 表(table) 1.3 列和数据类型 1.4 行 1.5 主键 2.什么是SQL 3.创建后续练习所需数据库.表(MySQL8. ...

  7. 【MySQL 基础】MySQL必知必会

    MySQL必知必会 简介 <MySQL必知必会>的学习笔记和总结. 书籍链接 了解SQL 数据库基础 什么是数据库 数据库(database):保存有组织的数据的容器(通常是一个文 件或一 ...

  8. 《SQL必知必会》学习笔记整理

    简介 本笔记目前已包含 <SQL必知必会>中的所有章节. 我在整理笔记时所考虑的是:在笔记记完后,当我需要查找某个知识点时,不需要到书中去找,只需查看笔记即可找到相关知识点.因此在整理笔记 ...

  9. 《SQL必知必会》学习笔记二)

    <SQL必知必会>学习笔记(二) 咱们接着上一篇的内容继续.这一篇主要回顾子查询,联合查询,复制表这三类内容. 上一部分基本上都是简单的Select查询,即从单个数据库表中检索数据的单条语 ...

  10. 学习《SQL必知必会(第4版)》中文PDF+英文PDF+代码++福达BenForta(作者)

    不管是数据分析还是Web程序开发,都会接触到数据库,SQL语法简洁,使用方式灵活,功能强大,已经成为当今程序员不可或缺的技能. 推荐学习<SQL必知必会(第4版)>,内容丰富,文字简洁明快 ...

随机推荐

  1. Buffer 缓冲区操作

    1.缓冲区分片在 NIO 中,除了可以分配或者包装一个缓冲区对象外,还可以根据现有的缓冲区对象来创建一个子缓冲区,即在现有缓冲区上切出一片来作为一个新的缓冲区,但现有的缓冲区与创建的子缓冲区在底层数组 ...

  2. vue3.0 学习使用记录

    vue学习 在最近的一次项目中,前端js框架里使用了vue.vue的编程思想比较新颖,用起来也感觉高效便捷.由于个人原因,做完这个项目之后可能就接触不到前端的内容了,所以记录这个项目中对vue的学习和 ...

  3. 接口文档 token原理 jwt介绍和原理 drf-jwt快速使用

    目录 昨日回顾 认证 权限 频率 全局异常处理 接口文档 接口文档编写 drf自动生成接口文档 cookies-session-token发展史 jwt介绍和原理 jwt的构成 base64的编码和解 ...

  4. 玩转AIGC,5分钟 Serverless 部署 Stable Diffustion 服务

    有没有一种可能,其实你早就在AIGC了?阿里云将提供免费Serverless函数计算产品资源,邀请你,体验一把AIGC级的毕加索.达芬奇.梵高等大师作画的快感.下面请尽情发挥你的想象空间!!双重奖品设 ...

  5. 基于阿里云Serverless函数计算开发的疫情数据统计推送机器人

    一.Serverless函数计算 什么是Serverless? 在<Serverless Architectures>中对 Serverless 是这样子定义的: Serverless w ...

  6. 【RK3399】1.RK3399开发板基础配置

    最近在小黄鱼入手了一个RK3399的开发板,RK的芯片我也是第一次使用.FireFly配套提供了完善的教程,可以在他们的WIKI上找到.上面有的内容就不在本文叙述了,大家可以参考教程https://w ...

  7. vscode报错Already included file name ‘xxx‘ differs from file name ‘xxx‘ only in casing的解决方法:

    场景:我们创建了一个文件是小写开头的,又改成大写开头的. 比如: relationDemo.vue 改成 RelationDemo.vue 原因:缓存的判重逻辑是不区分大小写导致的.在这种情况下,vs ...

  8. P1077-DP【黄】

    昨天好几道题没做出来很郁闷,结果今天上来半小时不到就直接做出一道黄DP题了,不错,又有写题的冲动了. 这道题我一直被那个"因为方案数可能很多,请输出方案数对 1000007取模的结果.&qu ...

  9. [转帖]KingbaseES wal(xlog) 日志清理故障恢复案例

    https://www.cnblogs.com/kingbase/p/16266365.html 案例说明:在通过sys_archivecleanup工具手工清理wal日志时,在control文件中查 ...

  10. [转帖]【MySQL 8】MySQL 5.7都即将停只维护了,是时候学习一波MySQL 8了!

    https://juejin.cn/post/7111255789876019208 MySQL 8新特性 选择MySQL 8的背景:MySQL 5.6已经停止版本更新了,对于 MySQL 5.7 版 ...