1. DDPG
DDPG方法相比于传统的PG算法,主要有三点改进:
A. off-policy策略
传统PG算法一般是采用on-policy方法,其将整体强化学习过程分为多个epoch,在每个epoch完成一次policy模型和value模型更新,同时在每轮epoch都需要根据决策模型重新采样得到该轮的训练样本。
但当同环境交互代价比较高时,这种on-policy的方式效率并不好。因此DDPG提出了一种off-policy的方法,其可以利用历史的样本,假设对于历史样本,DDPG的off-policy策略会重新根据当前target policy重新估计价值。
因此DDPG的对于价值预估模型目标为,表示从所有历史样本上随机抽取的Batch
而传统on-policy策略的目标为,下式中可以是MC采样后累积收益,表示当前epoch轮的采样结果。
B. 更复杂的确定性连续动作策略场景建模
传统PG算法是通过一个动作分布来建模运作,这种动作分布一般是离散的,或者将动作建模高斯分布,通过一个神经网络拟合分布均值和标准差两个参数。
DDPG采用一个动作生成网络可以输出确定性且连续的动作值。
C. Target Networks
DDPG的off-policy策略会重新根据当前target policy重新估计价值,因此此处的估计值是通过另一个网络Target Networks进行计算的,主要是为了避免直接采用目标优化网络进行预估时,变化太大而影响效果。
传统的DQN会更隔一段时间,整体同步目标优化网络的参数给Target Network。而DDPG采用的是一种更为平滑的方式,帮助Target Network及时适配目标优化网络的参数。
D. Exploration
DDPG是确定性动作决策,所以为了保证探索,DDPG在采样动作后添加了一个高斯噪声,同时添加了截断来避免不合适的动作值。
DDPG的算法整体流程
2. Twin Delayed DDPG
Twin Delayed DDPG又被称为TD3算法,其主要在DDPG的基础上做了两点升级:
A. target policy smoothing
前文提到DDPG的off-policy策略会重新根据当前target policy重新估计价值,这里的target policy生成的动作没有加上噪声探索,因为这里只是用于估计价值,而不是要探索。
而TD3算法却对这里的target policy动作加上了噪声,其主要原因是为了正则化,这个正则化操作平滑了训练中可能会出现某些不正确的动作尖峰。
B. clipped double-Q learning
DDPG是基于Q-learning的,其由于是取最大可能性的某个确定动作,因此可能会带来Maxinum偏差(简单理解为由于预估分布的存在,所以最大值一般都会偏移期望值),这个问题可能通过double Q-learning进行解决。
TD3在DDPG的基础上,应用了double Q-learning思路,引入了两个target价值预估模型,分别生成价值预估,并选择其中最小作为最终的预估值。
同时也存在两个目标价值模型:
但是target决策模型只有一组,其也只根据某个一个目标价值模型优化:
TD3的算法整体流程
3. Soft Actor-Critic
由于DDPG只能产出确定性动作,因此Soft Actor Critic (SAC) 实现产出概率性动作决策 stochastic policy,SAC算法相比于TD3主要有两点不同:
A. entropy regularization
entropy regularization熵正则是SAC最核心的内容,因为SAC实现产出概率性动作决策,概率性动作决策主要问题是生成动作概率可能过于分散,因此SAC通过熵正则来避免这种情况。
同时policy模型更新目标也添加了熵正则,但是其把两个目标模型都应用了,这个同TD3是不同。
B. Exploration
SAC由于其动作决策函数是概率的,所以天然有exploration特性,因此对于动作决策模型其并没有target network。另外通过在训练中控制也可以控制动作决策模型的exploration特性。