强化学习4-actor-critic 方法
Actor-Critic Methods
1. 状态值函数的近似
现在我们直到状态值函数:
V_{\pi}(s_t) = \sum_a\pi (a|s_t)\cdot Q_\pi (s_t, a).
等式的右侧包含两个关键组件:其中一个代表策略函数(Strategy Function),另一个代表价值函数(Value Function)。其中策略部分用于确定采取各动作的概率分布;而价值部分则用于评估采取各动作所带来的回报期望值。为了全面评估当前状态下的最优决策路径,则需要遍历所有可能的动作组合,并据此计算出该状态下所有可能状态的价值(State Value Function)。
我们现在的方案是将策略函数 和价值函数 用两个神经网络来代替:
V_{\pi}(s_{t}) 被定义为 \sum_{a}\pi(a|s_{t}) 与 Q_{\pi}(s_{t}, a) 的乘积;这被近似于 \sum_{a}\pi(a|s_{t};\bm{\theta}) 与 Q_{\pi}(s_{t}, a;\bm{w}) 的乘积
其中 \pmb{\theta} ,\pmb{w}表示两个神经网络的参数(用来训练)。

策略网络控制动作, 而价值网络评价动作的好坏。
2. 训练网路
通过分析当前系统的动态行为关系,我们成功推导出一个状态值函数的数学表达式。该公式表示为:
V(s;\pmb{\theta}, \pmb{w}) = \sum_a \pi(a|s;\pmb{\theta}) \cdot q(s,a;\pmb{w})
请问是否可以通过该公式来优化参数 \pmb{\theta} 和 \pmb{w} 呢?
- 当我们固定策略\pmb{\theta}后, 通过优化价值网络\pmb{w}使其评估结果趋近于真实值
- 当我们固定价值参数\pmb{w}后, 通过优化策略\pmb{\theta}以最大化累计回报
3. 所以伪代码为
观察当前状态sₜ。
基于现有策略随机选取动作aₜ。
执行动作aₜ后会得到下一个状态s_{t+1}以及即时回报rₜ。
采用时间差分解算法来更新价值网络参数\pmb{w}。
应用梯度上升方法来更新策略网络参数\pmb{\theta}。
随后按照现有策略随机选取下一个动作a_{t+1}进行推导。
基于现有的评价网络能够推导出以下两个公式:
q(t) = q(s(t), a(t); w(t)) \\ q(t + 1) = q(s(t + 1), a(t + 1); w(t))
在此基础上计算即时差分误差\delta^T:
\delta^T = q(T) - [r(T) + γ · q(T + 1)]
通过求解目标函数关于权重向量的梯度向量来确定更新方向:
d_w,t = ∂q(s(t),a(t); w)/∂w| _ { w=w^*_ t }
最终更新价值神经网络权重向量:
$$
W^{}_{ t + } = W^_ t − α·δ^T · d_w,t
步骤5详细说明如下: 1. 确定策略网络的梯度:通过求解目标函数关于θ的导数在当前参数θₜ处的值来计算状态-动作对数概率相对于参数θ的变化率。 2. 调整参数以更新策略网络:利用计算得到的梯度信息和学习率β进行优化迭代以更新当前策略网络的参数θₜ₊₁ = θₜ + β·δₜ·d_{θ,t}。
