天天看点

Actor-Critic Method

Actor-Critic Method

Actor-Critic Method

它是Value-Based 和 Policy-Based Methods 两种算法的结合。

1.目标函数

Actor-Critic Method

:状态价值函数State-Value Function,表示了当前状态所能得到的回报return的期望。

策略函数,即在状态下执行动作的概率分布。

价值函数,即在状态下执行动作得到的奖励 (reward) 之和。

该算法的目标函数是状态价值函数State-Value Function。

若状态 符合离散随机变量的分布,则可用所有的状态

因为都未知,因此我们考虑用两个网络近似表示,这两个网络分别是actor,critic ,即策略网络和价值网络。

策略网络使用 近似,为策略网络的训练参数。

价值网络使用近似,为价值网络的训练参数。

2.网络结构

2.1 策略网络(Policy Network)

Actor-Critic Method

输入为状态,通过卷积层得到特征向量,然后通过全连接层得到指定维度的向量(与状态个数相关),然后通过 Softmax 激活函数得到动作的概率分布。

2.2 价值网络(Value Network)

Actor-Critic Method

输入为状态和动作,状态经过卷积层得到对应的特征向量,动作(若为离散则用ont-hot编码表示)经过全连接层得到对应的特征向量。然后两者进行拼接再经过全连接层得到标量函数价值。

2.3 拟人化

actor比作运动员,critic比作裁判。运动员做一系列的动作,裁判负责打分,运动员根据裁判打分不断精进自己的动作,同时裁判根据规则不断使自己的打分更加精准。

3.训练网络

Actor-Critic Method

更新策略网络的 增加状态价值函数

其监督的标签完全来自价值网络,也就是裁判的打分。

更新价值网络的 用来更准确估计奖励之和return。

使得裁判的打分更加精确,其监督的标签完全来自环境

(environment)的奖励reward。

Actor-Critic Method

具体步骤如下:

1.观察得到状态

2.根据策略网络随机抽样动作

3.执行动作,从环境中得到和奖励

4.使用TD算法更新价值网络参数

5.使用策略梯度算法 (policy gradient) 更新策略网络参数

3.1 TD算法更新value network

Actor-Critic Method

首先分别计算参数下时刻的标量价值 和时刻的标量价值。

设为TD target 目标函数,。

是外界获得的真实奖励, 是折扣率,因为往后对应的奖励影响会变化。

采用目标函数与估计的值 求方差,类似极大似然估计作为损失函数。

沿梯度下降方向更新参数,

3.2 策略梯度算法更新policy network

Actor-Critic Method

定义函数为策略函数取对数后在的偏导与标量价值的乘积。

可以计算出状态价值函数 对 的偏导等于 在下的期望。

因此可以用蒙特卡洛近似模拟梯度。

采用随机梯度上升,

3.3 更新参数图示

3.3.1 更新actor

Actor-Critic Method

3.3.2 更新value

Actor-Critic Method

4.算法总结

Actor-Critic Method

5.两个网络的职责

继续阅读