Proximal Policy Optimization
PP是OpenAI默认的强化学习算法。
2.1 Review on PG
策略
- 输入:机器所观察到的内容,表示成一个向量或矩阵
- 输出:每个动作对应于输出层的一个神经元
要使期望奖励最大,利用梯度上升法来更新参数。
2.1.1 Implementation
如果从分类问题的角度看,将状态作为输入,每个行为看作是一个标签,那么输出就应该是每种类型对应的概率。可以看出,强化学习的过程相比于分类问题多了一个total reward。
2.1.2 Tips
1. Add a baseline
可能存在
2. Assign suitable credit
在一个episode中,可能有好的action和不好的action,一个trajectory得到的total reward高并不能代表所有的action都很好。如果我们可以采样足够多次,那么就可以避免这个问题。但是,现在我们的采样次数有限,所以要给每个action一个credit,将total reward改为从某个行为被执行后累计的reward,并添加折扣因子。
2.2 On-policy → Off-policy
- On-policy:学习到的agent和与环境交互的agent是同一个
- Off-policy:学习到的agent和与环境交互的agent是不同的
- 用策略
收集数据,当 被更新时,必须要重新采样训练数据 - 目标:用从策略
的采样来训练 。 是固定的,所以其采样数据可以重用。
重要性采样
理论上,两个概率分布的期望是一样的,但是方差不一样。所以要有足够多的样本,并且两个概率分布的差距不能太大。
利用重要性采样,
目标函数可以写成
2.3 Add Constraint
因为重要性采样要求两个概率分布的差距不能太大,在PPO (Proximal Policy Optimization)中增加了一个
在TRPO (Trust Region Policy Optimization)中,这个约束的位置和PPO不一样。两种方法的效果相差不大,但是PPO更容易实现。
注意
这里的KL距离(相对熵)指的是action的距离(即在两种概率分布下action出现的概率要相似),而不是指参数θ的距离。
2.3.1 PPO algorithm
- 初始化策略参数
- 在每次迭代中
用 和环境交互收集 并计算advantage
找出能最优化 的
2.3.2 PPO2 algorithm
2.3.3 Experimental results
参考文献:Proximal Policy Optimization Algorithms