498 字
2 分钟
强化学习中对测试结果的理解

通常在我们训练完模型之后,会对模型的结果进行测试,对于强化学习而言,我们就是已经训练得到了一个 π\pi, 然后需要对该策略进行测试。而测试往往是通过跑足够多的 episodes,然后分析 G0G_{0} 的均值和方差。

我们知道,如果有足够多的样本 {x1,x2,xn}\{ x_{1},x_{2},\dots x_{n} \}, 样本的均值和方差会趋近于随机变量 xx 的真实均值和方差。

一般来说,样本数量的增加会使方差减小,主要有两种情况:

  1. 我们使用样本均值来估计真实均值。指样本均值的方差会逐渐减小,稳定在真实均值附近。
  2. 我们估计一个确定的值。是上一种情况的一般情形。

在强化学习中,我们评估的是训练出的策略 π\pi 的性能。具体来说,通过计算策略 π\pi 的价值函数 Vπ(s0)V_{\pi}(s_{0})(这里假设折扣因子 γ=1\gamma=1),我们可以得到策略在初始状态 s0s_{0} 下的期望回报。每次测试的结果实际上是随机变量 G0G_{0} 的一个样本。

当样本数量足够多时,有

limn1ni=1ngi=limng=E[G0]=Vπ(s0)\lim_{ n \to \infty }\frac{1}{n}\sum_{i=1}^{n}g_{i}=\lim_{ n \to \infty }\overline{g}=\mathbb{E}[G_{0}]=V_{\pi}(s_{0})

方差或标准差平方为:

limn1ni=1n(gig)2=limn1ni=1n(giE[G0])2=var(G0)\lim_{ n \to \infty } \frac{1}{n} \sum_{i=1}^{n} (g_{i}-\overline{g})^{2}=\lim_{ n \to \infty } \frac{1}{n} \sum_{i=1}^{n} (g_{i}-\mathbb{E}[G_{0}])^{2}=\text{var}(G_{0})

然而,由于我们只关心策略的价值函数 Vπ(s0)V_{\pi}(s_{0}),也就是指测试样本的均值,所以方差本身的意义并不大。

定义 G(m)=1mi=1GiG(m) = \frac{1}{m} \sum_{i=1} G_{i},假设 GiN(μ,σ2)G_{i} \sim \mathcal{N}(\mu, \sigma^2),那么 G(m)N(μ,σ2m)G(m) \sim \mathcal{N}(\mu, \frac{\sigma^{2}}{m})。在样本数量趋于无穷大时,G()G(\infty) 就是策略的价值函数 Vπ(s0)V_{\pi}(s_{0})

综上,一般情况下,对于强化学习中学习到的 π\pi 进行测试,我们主要会关注测试样本的均值。针对不同策略,为了确保我们的策略确实更好,可以进行 t-test 来判断 p-value 是否显著。这是一种更好的评估方法。

强化学习中对测试结果的理解
https://fuwari.vercel.app/posts/rl-test/
作者
pride7
发布于
2024-09-11
许可协议
CC BY-NC-SA 4.0