Actor-Critic Method
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0gTMx81dsQWZ4lmZf1GLlpXazVmcvwFciV2dsQXYtJ3bm9CX9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5SO0YDN0kzM1QzYlNzYlJWMzYzX0MTN0kDMwEzLclDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
它是Value-Based 和 Policy-Based Methods 两种算法的结合。
1.目标函数
:状态价值函数State-Value Function,表示了当前状态所能得到的回报return的期望。
策略函数,即在状态下执行动作的概率分布。
价值函数,即在状态下执行动作得到的奖励 (reward) 之和。
该算法的目标函数是状态价值函数State-Value Function。
若状态 符合离散随机变量的分布,则可用所有的状态
因为都未知,因此我们考虑用两个网络近似表示,这两个网络分别是actor,critic ,即策略网络和价值网络。
策略网络使用 近似,为策略网络的训练参数。
价值网络使用近似,为价值网络的训练参数。
2.网络结构
2.1 策略网络(Policy Network)
输入为状态,通过卷积层得到特征向量,然后通过全连接层得到指定维度的向量(与状态个数相关),然后通过 Softmax 激活函数得到动作的概率分布。
2.2 价值网络(Value Network)
输入为状态和动作,状态经过卷积层得到对应的特征向量,动作(若为离散则用ont-hot编码表示)经过全连接层得到对应的特征向量。然后两者进行拼接再经过全连接层得到标量函数价值。
2.3 拟人化
actor比作运动员,critic比作裁判。运动员做一系列的动作,裁判负责打分,运动员根据裁判打分不断精进自己的动作,同时裁判根据规则不断使自己的打分更加精准。
3.训练网络
更新策略网络的 增加状态价值函数
其监督的标签完全来自价值网络,也就是裁判的打分。
更新价值网络的 用来更准确估计奖励之和return。
使得裁判的打分更加精确,其监督的标签完全来自环境
(environment)的奖励reward。
具体步骤如下:
1.观察得到状态
2.根据策略网络随机抽样动作
3.执行动作,从环境中得到和奖励
4.使用TD算法更新价值网络参数
5.使用策略梯度算法 (policy gradient) 更新策略网络参数
3.1 TD算法更新value network
首先分别计算参数下时刻的标量价值 和时刻的标量价值。
设为TD target 目标函数,。
是外界获得的真实奖励, 是折扣率,因为往后对应的奖励影响会变化。
采用目标函数与估计的值 求方差,类似极大似然估计作为损失函数。
沿梯度下降方向更新参数,
3.2 策略梯度算法更新policy network
定义函数为策略函数取对数后在的偏导与标量价值的乘积。
可以计算出状态价值函数 对 的偏导等于 在下的期望。
因此可以用蒙特卡洛近似模拟梯度。
采用随机梯度上升,