Skip to content

7.9 VC维

原文 The Elements of Statistical Learning
翻译 szcf-weiya
时间 2017-02-19:2017-02-19
更新 2018-01-05; 2018-01-07; 2018-05-05

更新笔记

@2018-01-07 完成了图7.7的部分模拟,即 AIC 和 BIC 下 kNN 回归与分类的情形,其它情形待完成。具体模拟细节记录在了这个 R Notebook中。

使用样本内误差估计的困难在于需要确定在拟合中使用的参数(或复杂度)个数 $d$。尽管 7.6 节引入的有效参数个数对部分非线性模型是有用的,但是不太普遍。Vapnik-Chervonenkis (VC) 理论提供了对复杂度更一般的度量,而且给出了相应的 optimism 估计。这里我们简短回顾这个理论。

假设我们有由参数 $\alpha$ 编码的函数类 $\{f(x,\alpha)\},x\in \IR^p$。现在假设 $f$ 为指示函数,也就是取值为 0 或 1。如果 $\alpha=(\alpha_0,\alpha_1)$,且 $f$ 为线性指示函数 $I(\alpha_0+\alpha_1^Tx>0)$,于是说函数 $f$ 的复杂度是参数个数 $p+1$ 似乎是合理的。但是如果 $f(x,\alpha)=I(\sin\alpha\cdot x),x\in \IR$, $\alpha$ 为任意实数会怎么样呢?图 7.5 显示了函数 $\sin(50\cdot x)$ 的图象。

实线是函数 $\sin(50x),x\in [0,1]$。绿点(实心)和蓝色(空心点)说明了相应的指示函数 $I(\sin(\alpha x)>0)$ 如何通过选择合适高的频率 $\alpha$ 来打散(分离)任意多的点。

这是个非常弯曲的函数,当频率 $\alpha$ 增大变得更粗糙,但是它仅仅有一个参数 $\alpha$:尽管这样,它比 $p=1$ 时的线性指示函数 $I(\alpha_0+\alpha_1x)$ 复杂度更低的结论似乎是不合理的。

Vapnik-Chervonenkis 维度是衡量函数类的复杂度的一种方式,它通过评估函数类中的成员的弯曲程度实现的。

函数类 $\{f(x,\alpha)\}$ 的 VC 维定位为可以被 $\{f(x,\alpha)\} $的成员打散的点的最多数目(在一定条件下)。

点集被函数类打散是指无论我们对每个点如何赋予二值标签,都有类中的一个函数完美地将它们分隔开。

图 7.6. 前三张图显示了平面中的直线类可以打散 3 个点。最后一张图显示了这个类不能打散 4 个点,因为没有直线可以使得空心点在一侧而实心点在另一侧。因此平面中直线类的 VC 维是 3。注意到非线性曲线类可以打散 4 个点,也因此有比 3 更高的 VC 维。

图 7.6 显示了在平面中线性指示函数的 VC 维是 3 而非 4,因为没有 4 个点可以被直线集打散。一般地,$p$ 维线性指示函数的 VC 维为 $p+1$,这也是自由参数的个数。另一方面,可以证明 $\sin(\alpha x)$ 函数类有无穷的 VC 维,正如图 7.5 显示的那样。通过合适的 $\alpha$,任何点集都可以被这个函数类打散(练习 7.8)。

至今我们仅仅讨论了指示函数的 VC 维,但这个可以推广到实值函数中。实值函数类 $\{g(x,\alpha)\}$ 的 VC 维定义为指示类 ${I(g(x,\alpha)-\beta)}$ 的 VC 维,其中 $\beta$ 在 $g$ 的值域中取值。

可以使用 VC 维来构造(样本外)预测误差的估计;不同类型的结果都是可以的。当使用函数类时,采用 VC 维的概念,可以证明训练误差的乐观 (optimisim) 的结果。这样的结果的例子如下。如果我们采用 VC 维为 $h$ 的类函数 $\{f(x,\alpha)\}$ 来拟合 $N$ 个训练点,于是在训练集上至少以 $1-\eta$ 的概率成立下式:

这些界对 $\{f(x,\alpha)\}$ 的所有成员都同时成立,而且选自 Cherkassky and Mulier (2007)1。他们建议 $c=1$。对于回归他们建议 $a_1=a_2=1$,对于分类他们没有给出推荐,因为 $a_1=4,a_2=2$ 对应最坏的情形。它们也给出了回归的另一个实用 (practical) 的界 其中 $\rho=\frac{h}{N}$,不含调整常数。这个界表明随着$h$增大 $N$ 减小,optimism 会增大,这与式 (7.24) 给出的 AIC 调整值 $d/N$ 数值上是一致的。然而,(7.46) 结果更强:不是给出每个固定函数 $f(x,\alpha)$ 的 optimism 的期望值,而是给出对于所有函数 $f(x,\alpha)$ 的概率上限,也因此可以对函数类进行搜索。

Vapnik 的结构风险最小化 (SRM) 方法拟合嵌套的 VC 维递增 $h_1 < h_2 < \cdots$ 的模型序列,接着选择有最小上界的模型。

我们注意到类似 (7.46) 中的上界通常是非常不精确的,但是这并不会妨碍它们成为模型选择的良好准则,其中相对(不是绝对)的测试误差的大小是重要的。这种方法的主要不足是计算类函数的 VC 维的困难。通常只能得到粗糙的 VC 维上界,这可能不是充分的。结构风险最小化程序可以成功运行的例子是支持向量分类器,将在 12.2 节讨论。

例子(继续)

图 7.7. 在图 7.3 的四种情形下,用箱线图显示相对误差 $100\times [\Err_{\cal T}(\hat\alpha)-min_\alpha \Err_{\cal T}(\alpha)]/[max_\alpha \Err_{\cal T}(\alpha)-min_\alpha \Err_{\cal T}(\alpha)]$ 的分布。这是选择的模型相对于最优模型的误差。每个箱线图表示大小为 80 的 100 个训练集,误差是在大小为 10000 的测试集上计算的。

图 7.7 显示了当采用 AIC,BIC 和 SRM 来对图 7.3 的例子来选择模型大小的结果。对于标着 KNN 的例子,模型指标$\alpha$ 指的是邻居的个数,而对于标着 REG 的来说 $\alpha$ 为子集大小。采用每个选择方法(例如,AIC),我们估计最优模型 $\hat \alpha$ 并且在测试集上找到真实的预测误差 $\Err_{\cal T}(\hat\alpha)$。对于同样的训练集,我们计算最优和最坏可能的模型选择的预测误差:$min_\alpha \Err_{\cal T}(\alpha)$ 和 $max_\alpha \Err_{\cal T}(\alpha)$。箱线图显示了下面值的分布 它表示选定的模型相对于最优模型的误差。对于线性回归,模型复杂度由特征的个数度量;正如在 7.5 节提到的那样,它低估了 $df​$,因为它没有考虑该大小下对最优模型的搜索。这对线性分类器的 VC 维也同样适用。对于 $k​$ 最近邻,模型复杂度取 $N/k​$。在加性误差模型回归模型下,这个可以证明为真正的有效自由度个数(练习 7.6);我们不知道它是否对应VC维。我们取(7.46)中常数为 $a_1=a_2=1​$;SRM 的结果随着不同的常数值而变化,而且这个选择给出了最有利的结果。我们运用另一个实用的界 (7.47) 来重复 SRM 的选择过程,并且得到几乎一样的结果。对于误分类误差,我们在最少限制的模型上(对于 KNN 取 $k=5​$,因为 $k=1​$ 会导致 0 训练误差)采用 $\hat\sigma_\varepsilon^2=[N/(N-d)]\cdot \overline{err}(\alpha)​$。AIC 准则对于四种情形都适用,尽管在 0-1 损失时缺少理论支撑。BIC 表现也近似一样,但 SRM 的表现很混合。


  1. Cherkassky, V. and Mulier, F. (2007). Learning from Data (2nd Edition), Wiley, New York. 

Comments