关注:决策智能与机器学习,深耕AI脱水干货
作者:Abhishek Suran
转载请联系作者
提要:PPO强化学习算法解析及其TensorFlow 2.x实现过程(含代码)
在本文中,我们将尝试理解Open-AI的强化学习算法:近端策略优化算法PPO(
Proximal Policy Optimization)。在一些基本理论之后,我们将使用TensorFlow 2.x实现PPO。
为什么PPO ?
因为PPO可以方便地克服以下两个问题。
策略更新不稳定:在许多策略梯度方法中,由于步长较大,策略更新不稳定,导致错误的策略更新,当这个新的错误策略被用于学习时,会导致更糟糕的策略。如果步骤很小,那么就会导致学习的缓慢。
数据效率低:很多学习方法都是借鉴现有经验,在梯度更新后丢弃经验。这使得学习过程变慢,因为神经网络需要大量的数据来学习。
PPO的核心理念
在早期的Policy梯度法中,目标函数类似于
但现在我们不用现行Policy的日志,而是用现行Policy与旧Policy的比率.
我们也将裁剪比例,并将两者的最小值,即b/w裁剪和未裁剪。
此压缩目标将限制大型策略更新,如下所示。
因此,最后的目标包括3个部分,
第一个是Lclip,
第二个是我们的批评者网的MSE,即预测的状态值和目标的平方损失。
第三部分是熵来鼓励探索。
算法的步骤
游戏n步,存储状态,动作概率,奖励,完成变量。
基于上述经验,应用广义优势估计方法。我们将在编码部分看到这一点。
通过计算各自的损失,训练神经网络在某些时期的运行。
对完成训练的模型测试“m”轮。
如果测试片段的平均奖励大于你设定的目标奖励,那么就停止,否则就从第一步开始重复。
代码
神经网络:
在导入所需的库并初始化我们的环境之后,我们定义了神经网络,并且类似于actor评论家文章中的神经网络。
Actor-network将当前状态