梳理确定性策略梯度,随机策略梯度,AC,DPG,DDPG之间的联系

1、随机策略

1.1  随机策略公式为:

这里的P是一个概率函数,就是说,在给定状态和参数的情况下,输出的的动作服从一个概率分布,也就意味着每次走进这个状态的时候,输出的动作可能不同。

1.2  随机策略梯度公式为:

 

表明,策略梯度公式是关于状态和动作的期望,在求期望时,需要对状态分布和动作分布进行求积分。这就要求在状态空间和动作空间采集大量的样本,这样求均值才能近似期望。

2、确定性策略

2.1  确定策略公式为:

这个u是一个确定的函数映射,给定状态和参数,输出的动作是确定的。

2.2  确定策略梯度公式为:

与随机策略梯度不同的是,少了对动作的积分,多了回报函数对动作的导数。

3. 确定性策略梯度+AC(DPG)

异策略是指行动策略和评估策略不是一个策略。

Actor采用随机策略,Critic采用确定性策略。

确定性策略异策略AC算法的更新过程:

\[ \delta_t=r_t+\gamma Q^w\left(s_{t+1},\mu_{\theta}\left(s_{t+1}\right)\right)-Q^w\left(s_t,a_t\right)\\\\\ w_{t+1}=w_t+\alpha_w\delta_t\nabla_wQ^w\left(s_t,a_t\right) \\ \theta_{t+1}=\theta_t+\alpha_{\theta}\nabla_{\theta}\mu_{\theta}\left(s_t\right)\nabla_aQ^w\left(s_t,a_t\right)|_{a=\mu_{\theta}\left(s\right)} \]

进行Critic的参数更新时,即上面更新公式的前两行时,动作a为输入,权重w连接的是输入状态s和动作a。在进行Actor更新的时候,需要更新的参数是  ,也就是说确定性策略计算中  与参数  无关。

第一行和第二行是利用值函数逼近的方法更新值函数参数(C),第三行是利用确定性策略梯度的方法更新策略参数(A)。

4.深度确定性策略梯度+AC(DDPG)

DDPG是深度确定性策略,所谓深度是指利用深度神经网络逼近行为值函数和确定性策略。

更新公式为:

\[ \delta_t=r_t+\gamma Q^{w^-}\left(s_{t+1},\mu_{\theta^-}\left(s_{t+1}\right)\right)-Q^w\left(s_t,a_t\right)\\\\\ \\ w_{t+1}=w_t+\alpha_w\delta_t\nabla_wQ^w\left(s_t,a_t\right) \\ \theta_{t+1}=\theta_t+\alpha_{\theta}\nabla_{\theta}\mu_{\theta}\left(s_t\right)\nabla_aQ^w\left(s_t,a_t\right)|_{a=\mu_{\theta}\left(s\right)} \\ \theta^-=\tau\theta +\left(1-\tau\right)\theta^- \\ w^-=\tau w+\left(1-\tau\right)w^- \]

在如同DQN,当利用深度神经网络进行函数逼近的时候,强化学习算法常常不稳定。这是因为,对深度神经网络进行训练的时候往往假设输入的数据是独立同分布的,但强化学习的数据是顺序采集的,数据之间存在马尔科夫性,很显然这些数据并非独立同分布的。为了打破数据之间的相关性,DQN用了两个技巧:经验回放和独立的目标网络。DDPG的算法便是将这两条技巧用到了DPG算法中,DDPG的经验回放跟DQN完全相同,独立目标网络就是:

将这里的和单独拿出来,利用独立的网络对其进行更新。

原文:https://zhuanlan.zhihu.com/p/26441204

你可能感兴趣的:(日记)