On-policy 预测近似方法

前言

这里近似值函数不是用表格表示,而是作为一个具有权重向量 w ∈ R d \mathbf{w} \in \mathbb{R}^d wRd 的参数化函数形式

我们将给定权重向量 w \mathbf{w} w 的状态 s s s 的近似值写作 v ^ ( s , w ) ≈ v π ( s ) \hat{v}(s, \mathbf{w}) \approx v_\pi(s) v^(s,w)vπ(s)

通常,权重的数量( w \mathbf{w} w 的维度)远远小于状态数量( d ≪ ∣ S ∣ d \ll |\mathcal{S}| dS),并且改变一个权重会改变许多状态的估计值
因此,当单个状态被更新时,改变会从该状态推广,影响到许多其他状态的价值。这种泛化使得学习可能更强大,但也可能使其更难管理和理解

将强化学习扩展到函数近似也适用于部分可观测问题,这里智能体无法获得完整状态
如果 v ^ \hat{v} v^ 的参数化函数形式不允许估计值依赖于状态的特定方面,这就好像那些方面是不可观测的一样

函数近似不能做的,是用过去观测的记忆来增强状态表示

价值函数近似

大多数预测方法被描述为对一个估计价值函数的更新,该函数将其在特定状态下的值转换为该状态的“备份值”或者更新目标
我们用标记 s ↦ u s \mapsto u su 表示单独更新,其中 s s s 是被更新的状态, u u u s s s 的估计值转换到的更新目标
例如,价值预测的蒙特卡洛更新是 S t ↦ G t S_t \mapsto G_t StGt,TD(0) 更新是 S t ↦ R t + 1 + γ v ^ ( S t + 1 , w t ) S_{t} \mapsto R_{t+1} + \gamma \hat{v}(S_{t+1}, \mathbf{w}_t) StRt+1+γv^(St+1,wt),n-步 TD 更新是 S t ↦ G t : t + n S_{t} \mapsto G_{t:t+n} StGt:t+n,在 DP 策略-评估更新中, s ↦ E π [ R t + 1 + γ v ^ ( S t + 1 , w t ) ∣ S t = s ] s \mapsto \mathbb{E}_\pi [R_{t+1} + \gamma \hat{v}(S_{t+1}, \mathbf{w}_t) | S_t = s] sEπ[Rt+1+γv^(St+1,wt)St=s],任意状态 s s s 被更新,而在其他情况下,在实际经验中遇到的状态 S t S_t St 被更新

将每步更新解释为具体价值函数的所需输入-输出行为的示例是很自然
在某种意义上,更新 s ↦ u s \mapsto u su 意味着状态 s s s 的估计值应该更像更新目标 u u u
目前为止,实际更新是微不足道的: s s s 估计值的表条目简单地朝着 u u u 转换了一小部分,而其他所有的状态的估计值并不改变
现在我们允许用任意复杂和精巧的方法来实现更新,并且将在 s s s 的更新推广来使许多其他状态的估计值也跟着变化
以这种方式来学习模拟输入-输出的案例的机器学习方法叫作监督学习方法,但输出是像 u u u 的数字时,这个过程常称为函数近似
函数近似方法希望接收到它们试图近似的函数所需的输入-输出示例
我们使用这些方法来进行价值预测,只需简单地将每一步更新的 s ↦ u s \mapsto u su 作为训练样例传递给它们
然后,将它们产生的近似函数解释为估计价值函数

以这种方式将每一步更新视为传统的训练样例,使我们能够使用任何现有的函数近似方法来进行价值预测
然而,并不是所有的函数近似方法都同样适合于强化学习
在强化学习中,学习可以在线进行,其中智能体和环境或者环境的一个模型进行交互是很重要的
要做到这一点,需要方法能够从递增获得的数据中有效地学习
此外,强化学习通常需要函数近似方法能够处理非平稳目标函数(目标函数随时间变化)

预测目标 ( V E ‾ \overline{VE} VE)

在表格的情况下,一个预测量的连续度量不是必须的,因为学到的价值函数可以准确地等于真正的价值函数
此外,每个状态学到的价值是分离的–一个状态的更新不被其他的所影响
但是通过真正的近似,一个状态的更新影响许多其他状态,并且不可能使得所有状态的价值完全正确
假设我们有比权重多得多的状态,所以使一个状态的估计更准确总是意味着使其余的不那么准确
因此,我们有义务指出我们最关心的那个状态
我们必须指定一个状态分布: μ ( s ) ⩾ 0   ,   ∑ s μ ( s ) = 1 \mu (s) \geqslant 0 \ , \ \sum_s \mu (s) = 1 μ(s)0 , sμ(s)=1,表示我们对每一个状态 s s s 的误差的关心程度
通过一个状态 s s s 的误差,我们意味着近似值 v ^ ( s , w ) \hat{v}(s,\mathbf{w}) v^(s,w) 和真值 v π ( s ) v_\pi(s) vπ(s) 之间差的平方
通过 μ \mu μ 在状态空间上对此加权,我们得到了一个自然目标函数,均方误差,记为 V E ‾ \overline{VE} VE
V E ‾ ( w ) ≐ ∑ s ∈ S μ ( s ) [ v π ( s ) − v ^ ( s , w ) ] 2 \overline{VE} (\mathbf{w}) \doteq \sum_{s \in \mathcal{S}} \mu (s) \left[ v_\pi(s) - \hat{v}(s, \mathbf{w}) \right]^2 VE(w)sSμ(s)[vπ(s)v^(s,w)]2
该值的平方根,(根 V E ‾ \overline{VE} VE)粗略地衡量了近似值和真值的差异,常用在图中
通常 μ ( s ) \mu (s) μ(s) 被选为在 s s s 上花费的时间的一部分
on-policy \text{on-policy} on-policy 训练中,这被称为 on-policy \text{on-policy} on-policy 分布
在持续性任务中, on-policy \text{on-policy} on-policy 分布是在 π \pi π 下的固定分布
在一个回合制任务中, on-policy \text{on-policy} on-policy 分布略有不同,因为它取决于回合的初始状态如何选择
h ( s ) h(s) h(s) 表示一个回合开始于每个状态 s s s 的概率, η ( s ) \eta(s) η(s) 表示在单个回合中在状态 s s s 中平均花费的时间步数
如果回合开始于 s s s,或者从前一个状态 s ˉ \bar{s} sˉ 转移到 s s s,则花费在状态 s s s 的时间:
η ( s ) = h ( s ) + ∑ s ˉ η ( s ˉ ) ∑ a π ( a ∣ s ˉ ) p ( s ∣ s ˉ , a )   , ∀   s ∈ S \eta(s) = h(s) + \sum_{\bar{s}} \eta(\bar{s}) \sum_a \pi(a|\bar{s}) p(s|\bar{s}, a) \ , \quad \forall \ s \in \mathcal{S} η(s)=h(s)+sˉη(sˉ)aπ(asˉ)p(ssˉ,a) , sS
对于预期的访问次数 η ( s ) \eta(s) η(s) 这个等式组可以被求解出来
on-policy \text{on-policy} on-policy 分布是在每一个状态上花费的时间的一部分,标准化使和为一:
μ ( s ) = η ( s ) ∑ s ′ η ( s ′ )   , ∀   s ∈ S \mu(s) = \dfrac{\eta(s)}{\sum_{s'} \eta(s')} \ , \quad \forall \ s \in \mathcal{S} μ(s)=sη(s)η(s) , sS
这是没有折扣的自然选择
如果有折扣 γ < 1 \gamma < 1 γ<1,则应视为终止的形式,这可以简单地通过在前式的第二项中包含因子 γ \gamma γ 来完成

V E ‾ \overline{VE} VE 而言,理想的目标是找到一个全局最优值,一个权重向量 w ∗ \mathbf{w}^* w,满足对所有可能的 w \mathbf{w} w,有: V E ‾ ( w ∗ ) ⩽ V E ‾ ( w ) \overline{VE}(\mathbf{w}^*) \leqslant \overline{VE}(\mathbf{w}) VE(w)VE(w)

随机梯度和半梯度方法

随机梯度下降(SGD)方法是在所有函数近似方法中最为广泛使用的方法之一,也是非常适合于在线强化学习

在梯度下降方法里,权重向量是一个带有固定数量的实值分量的列向量, w ≐ ( w 1 , w 2 , … , w d ) T \mathbf{w} \doteq (w_1, w_2, \dots, w_d)^{\mathsf{T}} w(w1,w2,,wd)T,近似价值函数 v ^ ( s , w ) \hat{v}(s, \mathbf{w}) v^(s,w) 是一个对所有 s ∈ S s \in \mathcal{S} sS w \mathbf{w} w 的可微函数
我们将会在一系列离散时间 t = 0 , 1 , 2 , 3 , … , t=0, 1, 2, 3, \dots, t=0,1,2,3,, 中的每一个更新 w \mathbf{w} w,因此记 w t \mathbf{w}_t wt 为每一步的权重向量
现在,假设在每一步我们观测到一个新的样例 S t ↦ v π ( S t ) S_t \mapsto v_\pi(S_t) Stvπ(St),由一个状态 S t S_t St(可能是随机选的)和其在策略下的真实值组成
这些状态可能是与环境交互的连续状态,但现在我们不这么认为
即使我们有了对每一个 S t S_t St 的精确的值 v π ( S t ) v_\pi(S_t) vπ(St),这仍是一个难题,因为我们的函数近似器有受限的资源和因此有限的精确度
通常,没有 w \mathbf{w} w 能使所有状态,或者甚至所有样例,完全正确
此外,我们还必须推广到所有没出现在样例中的其他状态

假定出现在样例中的状态具有相同的分布, μ \mu μ,我们试图最小化 V E ‾ \overline{VE} VE
一个好的方法是试着减小在观测到的样例上的误差,随机梯度下降(SGD)方法通过在每个样例之后将权重向量向最大程度减小该样例中的误差的方向少量调整来完成这点:
在这里插入图片描述

其中 α \alpha α 是正步长参数,而 ∇ f ( w ) \nabla f(\mathbf{w}) f(w),对任何标量表达式 f ( w ) f(\mathbf{w}) f(w),表示关于向量分量表达式的偏导数的列向量:
∇ f ( w ) ≐ ( ∂ f ( w ) ∂ w 1 , ∂ f ( w ) ∂ w 2 , … , ∂ f ( w ) ∂ w d ) T \nabla f(\mathbf{w}) \doteq \left( \dfrac{\partial f(\mathbf{w})}{\partial w_1} , \dfrac{\partial f(\mathbf{w})}{\partial w_2} , \dots , \dfrac{\partial f(\mathbf{w})}{\partial w_d} \right)^{\mathsf{T}} f(w)(w1f(w),w2f(w),,wdf(w))T
该导数向量是 f f f 对于 w \mathbf{w} w 的梯度
SGD 方法是“梯度下降”法是因为 w t \mathbf{w}_t wt 中的整个步长和样例的平方误差的负梯度成比例
这是使误差下降最剧烈的方向
当更新只在单个可能是随机挑选的样例上完成时,梯度下降法被称为“随机”
在许多样例上,采取小步,整体影响是最小化平均性能度量,如 V E ‾ \overline{VE} VE

现在考虑第 t t t 个训练样例 S t ↦ U t S_t \mapsto U_t StUt 的目标输出,这里记为 U t ∈ R U_t \in \mathbb{R}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值