1.PPO
(1)DeepMind公司发明的算法PPO
(2)OpenAI公司发明的算法PPO2;
近端策略优化算法(proximal policy optimization,PPO)
Actor 网络输出在给定状态 S下采取每个动作的概率分布,PPO 迭代地更新这个 policy,以改进策略并提高性能
PPO 通过迭代更新 policy 来提高性能
Critic网络:学习一个准确估计的状态值函数,以便计算优势函数。这个 value 网络帮助计算 advantage(优势),即在某个状态下执行某个动作相对于平均水平的优越性
一种是结合KL的penalty的,另一种是clip裁断的方法。
Advantage的计算
2.DDPG
由四个网络组成:
actor
actor_target
crtic
crtic_target
DDPG 的输出是连续的动作
DDPG 则使用 critic 网络的 Q 值来计算 policy gradient,并更新 actor 网络。
核心代码:
step和reset函数
step函数:将actor产生的action,放入环境中运行,当buffer满了后,进行学习,更新网络参数
reset函数:当遇到done情况,将环境重新恢复初始环境
3.策略梯度Policy Gradient(在线学习)
在处理连续动作空间时learning rate取值过小,会导致深度强化学习收敛性较差,陷入完不成训练的局面;取值过大则会导致新旧策略迭代时数据不一致,造成学习波动较大或局部震荡。
选概率大的
PG利用带权重的梯度下降方法更新策略
4.随机梯度上升方法:为了获取更大的奖励
5.动态规划:需要一个完全已知的环境,需要状态之间的转换概率
6.时序差分:
在时序差分的方法当中,我们不需要每次等到采样结束以后再去更新值函数,取而代之的是我们可以采用自举(bootstrapping)方式来进行更新,在计算某一状态的回报时,用的是即将离开这一个状态的奖励加上\small \gamma乘以下一个状态的预估状态值,具体来说,时序差分方法的值函数更新公式为:
7.MC蒙特卡洛:蒙特卡罗方法有一个缺陷,他需要在每次采样结束以后才能更新当前的值函数(完整的一个episode),但问题规模较大时,这种更新的方式显示是非常慢的
蒙特卡洛的G值:从某个state出发,然后一直走,直到最终状态。然后我们从最终状态原路返回,对每个状态评估G值。
8.Q值:
评估动作的价值,我们称为Q值:它代表了智能体选择这个动作后,一直到最终状态奖励总和的期望每个动作的Q值,就是从这个动作之后所获得的奖励总和的期望值
9.V值:
评估状态的价值,我们称为V值:它代表了智能体在这个状态下,一直到最终状态的奖励总和的期望
10.DQN
11.Q-learning
Q-Learning 算法构建了一个状态-动作值的 Q 表,其维度为 (s,a)
12.AC=TD版本
PG受到蒙特卡洛需要完成整个episode到达最终状态才能通过计算G值的限制,为了提升效率,引入AC网络
AC中的critic估算的是V值,Q值的期望(均值)就是V