Actor-Critic Method
它是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
定义函数为策略函数取对数后在
的偏导与标量价值的乘积。
可以计算出状态价值函数 对
的偏导等于
在
下的期望。
因此可以用蒙特卡洛近似模拟梯度。
采用随机梯度上升,
3.3 更新参数图示
3.3.1 更新actor
3.3.2 更新value
4.算法总结
5.两个网络的职责