Actor-Critic Method
Posted Harris-H
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Actor-Critic Method相关的知识,希望对你有一定的参考价值。
Actor-Critic Method
它是Value-Based 和 Policy-Based Methods 两种算法的结合。
1.目标函数
F = V π ( s ) F=V_\\pi(s) F=Vπ(s) :状态价值函数State-Value Function,表示了当前状态 S S S所能得到的回报return的期望。
F 1 = π ( a ∣ s ) F_1=\\pi(a|s) F1=π(a∣s) 策略函数,即在状态 s s s下执行动作 a a a的概率分布。
F 2 = Q π ( s , a ) F_2=Q_\\pi(s,a) F2=Qπ(s,a) 价值函数,即在状态 s s s下执行动作 a a a得到的奖励 (reward) 之和。
该算法的目标函数是状态价值函数State-Value Function。
若状态 a a a 符合离散随机变量的分布,则可用所有的状态 a a a 的概率与价值乘积之和来表示。
因为 F 1 , F 2 F_1,F_2 F1,F2都未知,因此我们考虑用两个网络近似表示 F 1 , F 2 F_1,F_2 F1,F2,这两个网络分别是actor,critic ,即策略网络和价值网络。
策略网络使用 π ( a ∣ s ; θ ) \\pi(a|s;\\theta) π(a∣s;θ) 近似 F 1 F_1 F1, θ \\theta θ为策略网络的训练参数。
价值网络使用 q ( s , a ; w ) q(s,a;w) q(s,a;w)近似 F 2 F_2 F2, w w w为价值网络的训练参数。
2.网络结构
2.1 策略网络(Policy Network)
输入为状态 s s s,通过卷积层得到特征向量,然后通过全连接层得到指定维度的向量(与状态个数相关),然后通过 Softmax 激活函数得到动作的概率分布。
2.2 价值网络(Value Network)
输入为状态 s s s和动作 a a a,状态 s s s经过卷积层得到对应的特征向量,动作 a a a(若为离散则用ont-hot编码表示)经过全连接层得到对应的特征向量。然后两者进行拼接再经过全连接层得到标量函数价值 q ( s , a ; w ) q(s,a;w) q(s,a;w)。
2.3 拟人化
actor比作运动员,critic比作裁判。运动员做一系列的动作,裁判负责打分,运动员根据裁判打分不断精进自己的动作,同时裁判根据规则不断使自己的打分更加精准。
3.训练网络
更新策略网络的 θ \\theta θ 增加状态价值函数 V ( s ; θ , w ) V(s;\\theta,w) V(s;θ,w) ,使得运动员表现越来越好。
其监督的标签完全来自价值网络,也就是裁判的打分。
更新价值网络的 w w w 用来更准确估计奖励之和return。
使得裁判的打分更加精确,其监督的标签完全来自环境
(environment)的奖励reward。
具体步骤如下:
1.观察得到状态 s t s_t st
2.根据策略网络随机抽样动作 a t a_t at
3.执行动作 a t a_t at,从环境中得到 s t + 1 s_t+1 st+1和奖励 r t r_t rt
4.使用TD算法更新价值网络参数 w w w
5.使用策略梯度算法 (policy gradient) 更新策略网络参数 θ \\theta θ
3.1 TD算法更新value network
首先分别计算参数 w t w_t wt下 t t t时刻的标量价值 q ( s t , a t ; w t ) q(s_t,a_t;w_t) q(st,at;wt) 和 t + 1 t+1 t+1时刻的标量价值 q ( s t + 1 , a t + 1 ; w t ) q(s_t+1,a_t+1;w_t) q(st+1,at+1;wt)。
设 y t y_t yt为TD target 目标函数, y t = r t + γ ⋅ q ( s t + 1 , a t + 1 ; w t ) y_t=r_t+\\gamma\\cdot q(s_t+1,a_t+1;w_t) yt=rt+γ⋅q(st+1,at+1;wt)。
r t r_t rt是外界获得的真实奖励, γ \\gamma γ 是折扣率 ∈ [ 0 , 1 ] \\in [0,1] ∈[0,1],因为往后对应的奖励影响会变化。
采用目标函数 y t y_t yt与估计的值 q ( s t , a t ; w ) q(s_t,a_t;w) q(st,at;w) 求方差,类似极大似然估计作为 L o s s Loss Loss损失函数。
沿梯度下降方向更新参数 w w w, α \\alpha α 是学习率。
3.2 策略梯度算法更新policy network
定义函数 g ( a , θ ) g(a,\\theta) g(a,θ)为策略函数取对数后在 θ \\theta θ的偏导与标量价值的乘积。
可以计算出状态价值函数 V ( s ; θ , w ) V(s;\\theta,w) V(s;θ,w) 对 θ \\theta θ 的偏导等于 g ( A , θ ) g(A,\\theta) g(A,θ) 在 A A A下的期望。
因此可以用蒙特卡洛近似模拟梯度。
采用随机梯度上升, β \\beta β 是学习率。
3.3 更新参数图示
3.3.1 更新actor
3.3.2 更新value
4.算法总结
5.两个网络的职责
参考内容
以上是关于Actor-Critic Method的主要内容,如果未能解决你的问题,请参考以下文章
深度强化学习 Actor-Critic 模型解析,附Pytorch完整代码