当前位置:   article > 正文

PPO 学习笔记

PPO 学习笔记

PPO算法求解整个神经网络在迭代过程中的梯度问题

每走一步就会得到一个新的状态,把这个状态传到网络里面,会得到一个 action,执行这个 action 又会到达一个新状态


policy 中由状态 st 生成动作 at,生成的这个 at 是由整个网络的所有权重参数 \Theta 决定的。最终目标是优化整个网络模型,使得这个网络模型在每一个状态都能给出正确的答案

我们的目标是训练一个网络模型,只不过背景和数据有一些变化,数据是不断地由自己生成的,也就是智能体在玩的过程中不断生成出来的。用一系列生命周期记录数据,目的是训练好当前的网络模型。


一(下一个状态是什么)和三(规则)都是游戏自带的,只有第二个是我们需要考虑的,我们只需要操心怎么把模型训练的更好

 


我们的目的是求出一个神经网络模型,帮我去玩这个游戏,帮我去得到每一步的 action 是什么,把神经网络中的模型参数 \Theta 求出一个合适的值,所以我们优化的是网络中的权重参数

需要找到一组最优的 \Theta 使得整个生命周期做完之后整体的奖励最大,这是一个梯度上升问题


求 \Theta 等于什么的时候能够使得期望 J(\Theta) 最大

下面终极版的公式需要很多数据,有没有巧妙的方法帮我们收集这些数据?

到此为止我们还没有提到 PPO,只是在算梯度,一会会说 PPO 是帮助我们求解的


每玩一把都是在攒数据,把数据代入即可求解

PPO 的一些技巧方法:

baseline 去均值,使得奖惩分明,奖励是正的,惩罚是负的

不用总的奖励,用去均值之后的


之前讲的只是策略梯度(policy gradient),没有任何 PPO 的概念,下面看一下 PPO 到底是怎样帮助我们优化当前任务的

 

在实际中,和 \Theta2 最像的就是前一步的迭代结果 \Theta1,用前一步迭代结果的时候用到的 \Theta 1产生大量数据供当前的 \Theta2 进行学习,学习完之后变成 \Theta3,\Theta3 的时候狸猫变成 \Theta2,\Theta4 的时候狸猫变成 \Theta3

PPO2 只是多加了一个限制条件,做一个截断的操作,把他俩的相似范围限制到了一个区间


actor 网络输入的是 state,会帮我们决定当前什么样的 action 是最合适的

critic 也是一个网络,会输出 value 值,这个 value 值来评估我当前这个水平做的这个事情是否合适

b 是 critic 网络要学习的结果,是 critic 网络的输出值 value,如果当前智能体水平很高但是还在打低级怪物,获得比较低的奖励,那么此时当他再减去一个 value 之后可能会得到一个负值,意味着当前做这件事不合适


之所以取  min 值,是希望不论 A 大于 0 还是小于 0,p_\Theta 和 p_\Thetak 都不能相差太远

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/521621
推荐阅读
相关标签
  

闽ICP备14008679号