PPO和DPPO

  PPO:  A2C算法的改进版,主要是为了解决 ‘learning rate 不易设置的问题’, DPPO是 PPO的distributed版本, 比如10个worker,每个worker都有独立的experience。  由于可以避免experience间的相关性,所以DPPO明显优于PPO。

注: PPO已经是OpenAI的默认强化学习算法!

DPPO是PPO的分布式多worker版本。这里主要讨论PPO。 

PPO其实就是为了解决learning rate不易控制的问题,主要是如果将learning rate设置得过小,训练时间太长,效率太差! 如果设置得过大,又容易错过最优解。 PPO其实就是一种可以 自适应 learning rate的AC算法。 critic训练的标准仍然是最小化s-v值的TD_error。而在actor端,更新的标准不再是固定的 P(s-a)*vt, 而是改写成  P*At    (其中At指的是s下获得的advantage),而且这个P,不再是固定的从神经网络中得到,而是 考虑 旧P和新P之间的差异,并且按照这种差异作出自适应的调整, DeepMind用的是一个惩罚函数 KL,而OpenAI用的方法是可以将new P比旧P的更新幅度限定在某个程度范围内。

具体的介绍,参见:https://morvanzhou.github.io/tutorials/machine-learning/reinforcement-learning/

具体的代码,参见:https://github.com/MorvanZhou/Reinforcement-learning-with-tensorflow/blob/master/contents/12_Proximal_Policy_Optimization/DPPO.py

你可能感兴趣的:(PPO和DPPO)