目录
1. 引言
2. 数学推导
3. 算法
1. 引言
我们上次介绍了利用到了baseline的一种算法:REINFORCE。现在我们来学习一下另一种利用到baseline的算法:Advantage Actor-Critic(A2C)
2. 数学推导
我们在Sarsa算法中推导出了这个公式? ,我们分部期望?![Q_{\pi}(s_t,a_t)=E_{S_{t+1}}[E_{A_{t+1}}[R_t+\gamma Q_{\pi}(S_{t+1},A_{t+1})]]=E_{S_{t+1}}[R_t+\gamma V_{\pi}(S_{t+1})]](https://latex.codecogs.com/gif.latex?Q_%7B%5Cpi%7D%28s_t%2Ca_t%29%3DE_%7BS_%7Bt+1%7D%7D%5BE_%7BA_%7Bt+1%7D%7D%5BR_t+%5Cgamma%20Q_%7B%5Cpi%7D%28S_%7Bt+1%7D%2CA_%7Bt+1%7D%29%5D%5D%3DE_%7BS_%7Bt+1%7D%7D%5BR_t+%5Cgamma%20V_%7B%5Cpi%7D%28S_%7Bt+1%7D%29%5D)
两边对? ?求期望?![V_{\pi}(s_{t})=E_{A_t}[E_{S_{t+1}}[R_t+\gamma V_{\pi}(S_{t+1})]]=E_{A_t,S_{t+1}}[R_t+\gamma V_{\pi}(S_{t+1})]](https://latex.codecogs.com/gif.latex?V_%7B%5Cpi%7D%28s_%7Bt%7D%29%3DE_%7BA_t%7D%5BE_%7BS_%7Bt+1%7D%7D%5BR_t+%5Cgamma%20V_%7B%5Cpi%7D%28S_%7Bt+1%7D%29%5D%5D%3DE_%7BA_t%2CS_%7Bt+1%7D%7D%5BR_t+%5Cgamma%20V_%7B%5Cpi%7D%28S_%7Bt+1%7D%29%5D)
我们便得到了关于状态价值函数的递推关系式??![V_{\pi}(s_{t})=E_{A_t,S_{t+1}}[R_t+\gamma V_{\pi}(S_{t+1})]](https://latex.codecogs.com/gif.latex?V_%7B%5Cpi%7D%28s_%7Bt%7D%29%3DE_%7BA_t%2CS_%7Bt+1%7D%7D%5BR_t+%5Cgamma%20V_%7B%5Cpi%7D%28S_%7Bt+1%7D%29%5D)
使用蒙特卡罗算法近似右侧期望? ,我们得到
?又由? ,也是使用蒙特卡罗算法,我们得到? ,总结一下,现在我们得到两个近似公式,分别记为公式1和公式2。
 
它们在后面各有用处。
在REINRORCE中我们推导出了随机梯度的表达式? 我们用它来更新策略函数,这里的 ?就是我们之前在Dueling Network讲过的优势函数,这便是Advantage的来源。现在需要解决? ?和? ?两个未知量的近似,由公式1,我们解决了? ?的近似问题,对于? ?我们使用神经网络? 来近似它,于是我们得到
,由于? 含有更多的真实信息,我们将其作为TD target 使? ?来优化价值函数的参数。
3. 算法
A2C算法本质上还是一种Actor-Critic方法,所以还是分为两个神经网络进行训练,一个是策略网络(Actor),另一个是价值网络(Critic)

- 观测到一个transition?
? - 计算TD target??
? - 计算TD error??
? - 通过梯度上升?
?更新策略网络 - 通过梯度下降?
?更新价值网络
|