共计 2703 个字符,预计需要花费 7 分钟才能阅读完成。
强化学习从根底到进阶 - 常见问题和面试必知必答 [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)$ 差太多,导致重要性采样后果偏差较大而采取的算法。
更多优质内容请关注公号:汀丶人工智能
相干链接以及码源见文末
强化学习从根底到进阶 - 案例与实际含码源 - 强化学习全系列超具体算法码源齐全