Advertisement

强化学习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} 呢?

  1. 当我们固定策略\pmb{\theta}后, 通过优化价值网络\pmb{w}使其评估结果趋近于真实值
  2. 当我们固定价值参数\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}。

全部评论 (0)

还没有任何评论哟~