文章目录
本文参考:
VC-dimension
VC-dimension是算法复杂度中的一个重要概念,这里我们可以用它衡量一种分类器在一种数据分布上的分类能力,必须限定在特定的数据分布和分类器种类下谈。
Shatter
了解VC-dimension先要了解Shatter的含义,这其实直观地展现了一个数据分布能够被分类器分类的能力,线性分类器linear classifiers在 R 2 \mathbb{R^{2}} R2的场景下,shatter了下面这三个点的数据分布。shatter译名为粉碎,实际上线性分类器确实把三个点所有可能地情况全“粉碎”出来了。
从上面可以看出,线性分类器把所有一个点的情况,两个点的情况,三个点的情况,都正反划分了一次正类和负类,粉碎了所有可能的分类情况,衡量了线性分类器在这个数据分布下的“能力”。
进一步抽象地,如果某一组分类器 H \mathcal{H} H shatter了一种数据分布 S S S,就是对于该数据分布的所有分隔情况,即 2 ∣ S ∣ 2^{|S|} 2∣S∣种组合,可以分类为 S + S^{+} S+正类,剩下的 S − = S ∖ S + S^{-}=S \setminus S^{+} S−=S∖S+为负类。
VC-dimension的定义
VC-dimension的定义就可以抛出,从shatter的场景出发,仍然需要两个要素,分类器集合 H \mathcal{H} H和数据分布情况 P \mathcal{P} P, H \mathcal{H} H在 P \mathcal{P} P上的VC-dimension V C ( P , H ) VC(\mathcal{P},\mathcal{H}) VC(P,H) is the largest subset P ⊂ P P \subset \mathcal{P} P⊂P that can be shattered by H \mathcal{H} H(可以被shatter的最大子集的大小).
这里比较难理解的点是何为最大子集大小,参考Measuring the Power of a Classifier With VC Dimension中说的“in order to have a VC dimension of N, the classifier must only shatter a single configuration of N points — there will likely be many other configurations of N points that the classifier cannot shatter.” 简单地说,就是在一个数据分布的一个configuration下满足能够shatter N个点(即使该数据分布其他不能够shatter N个点的configuration),我们也可以认为这个数据分布的VC-dimension为N。在图1中已经完全定死的三个点的分布,最大子集大小唯一,直接可以一眼看出。但是如果抽象地来看,我们讨论一般线性分类器Generic Linear Classifiers在 R 2 \mathbb{R^{2}} R2上的VC维,这个 R 2 \mathbb{R^{2}} R2就给足了数据分布的可能性,当我们像图一中那样3个点的数据分布是可以的,这也可以说明 V C ( R 2 , H ) ≥ 3 VC(\mathbb{R^{2}},\mathcal{H}) \ge3 VC(R2,H)≥3,实际上我们也找不到4个点能够被shatter的情况,所以 V C ( R 2 , H ) = 3 VC(\mathbb{R^{2}},\mathcal{H}) =3 VC(R2,H)=3. 但是当 R 2 \mathbb{R^{2}} R2中三点按一条线摆开,这个情况却不能被shatter,总结下来,线性分类器Generic Linear Classifiers在 R 2 \mathbb{R^{2}} R2上的 V C ( R 2 , H ) = 3 VC(\mathbb{R^{2}},\mathcal{H}) =3 VC(R2,H)=3但是却不能shatter一条线上的三个点。
实际上,上面所说的
H
\mathcal{H}
H也是一个宽泛的概念,其包含了各种形式的Linear Classifiers,只要是属于
y
=
a
x
+
b
y=ax+b
y=ax+b这种形式的。
进一步总结,当
H
\mathcal{H}
H是一般线性分类器的集合,在
R
d
\mathbb{R^{d}}
Rd上的
V
C
(
R
d
,
H
)
=
d
+
1
VC(\mathbb{R^{d}},\mathcal{H}) =d+1
VC(Rd,H)=d+1
感性地理解,这也将VC-dim和数据空间维度d联系起来,在假定
H
\mathcal{H}
H能够shatter
R
d
\mathbb{R^{d}}
Rd的情况下,d越大,VC-dim越大。这种理解有助于后面VC-Based的通理的理解。
VC-Based Generalization Theorem
相比于之前学过的通理1,该通理摆脱了候选分类器大小set of classifiers
ln
∣
H
∣
\ln|H|
ln∣H∣的限制,分子上的关键因素变成了VC维
λ
=
V
C
(
P
,
H
)
\lambda = VC(\mathcal{P},\mathcal{H})
λ=VC(P,H),分母上还是训练集合大小
∣
S
∣
|S|
∣S∣,可以在各种场景下应用。
这里老师明确的是,其实线性分类器和其他的分类器一样强大,在后面,我们会通过各种数学方法(比如核函数kernel function),将非线性分类问题转换成线性分类问题,但是这样子引入了更多的artificial dimensions,需要付出样本空间维度
d
d
d增大的代价,也就有了更大的VC维
λ
\lambda
λ,为了误差尽可能小,需要相应地增大
∣
S
∣
|S|
∣S∣,也就更需要更多的训练数据来训练。相当于我们是固定了线性分类器组合
H
\mathcal{H}
H,有可能会将
d
=
∞
d=\infty
d=∞以便我们引入线性分类器,这也会将
λ
\lambda
λ带向
∞
\infty
∞。
也正当 λ = ∞ \lambda=\infty λ=∞, VC-Based通理开始逐渐乏力,进一步地,我们探索线性分类下的Margin-Based通理。
Margin-Based Generalization Theorem
该定理只应用于线性分类中的线性可分场景,后面可以看出,我们实际上只需要考虑线性分类器linear classifier,因为可以讲许多非线性的情况转换成线性分类的情况;同时,我们不论原数据分布是什么,只需要考虑其线性可分linear separable的情况,也即在样本上的训练误差
e
r
r
s
(
h
)
err_s(h)
errs(h)为0,从而考虑其他误差项就可以了,引出的Margin-Based通理如下:
该通理不再依赖维度
d
d
d, 而将优化目标放在了
R
R
R和
∣
w
∣
|w|
∣w∣上,称它为margin-based是因为从后面的支持向量机中我们也可以知道,某个linear separable情况下的超平面的
m
a
r
g
i
n
=
1
∣
w
∣
margin=\frac{1}{|w|}
margin=∣w∣1,在linear separable的情况下需要找出最大的margin,让
∣
w
∣
{|w|}
∣w∣最小。对公式进行转换,该公式分子的关键因素为
R
2
m
a
r
g
i
n
2
\frac{R^2}{margin^2}
margin2R2,即前一章学习过的感知机perceptron训练的迭代次数,分母上还是训练集合大小
∣
S
∣
|S|
∣S∣。
三个通理的联系
三个通理分母上都和训练集合大小 ∣ S ∣ |S| ∣S∣有关,通理一分子上为 ln ∣ H ∣ \ln|H| ln∣H∣,通理二分子上为VC维 λ \lambda λ,通理三分子上为 R 2 m a r g i n 2 \frac{R^2}{margin^2} margin2R2,这三者并不是完全没有联系的。
在一个有d个参数的模型中,如果每个参数用一个8 byte的浮点数表示,那么这里占用了
64
∗
d
64*d
64∗d bit的空间,理论上来说
∣
H
∣
|H|
∣H∣就会有
2
64
∗
d
2^{64*d}
264∗d种情况,每一种排列即代表一种不同的模型,
ln
∣
H
∣
=
64
∗
d
\ln|H|=64*d
ln∣H∣=64∗d,这个
d
d
d放在通理二上,相当于就是样本空间的维度,
λ
=
d
+
1
\lambda=d+1
λ=d+1与其产生了联系。
从上图可以看出VC-dim
λ
\lambda
λ与 margin
γ
\gamma
γ也是有联系的,
H
1
\mathcal{H_1}
H1的
M
a
r
g
i
n
(
γ
1
)
Margin(\gamma_1)
Margin(γ1)>
H
2
\mathcal{H_2}
H2的
M
a
r
g
i
n
(
γ
2
)
Margin(\gamma_2)
Margin(γ2),问题设定的场景分别为考虑
M
a
r
g
i
n
≥
γ
2
Margin \ge \gamma_2
Margin≥γ2的所有分类器和考虑
M
a
r
g
i
n
≥
γ
1
Margin \ge \gamma_1
Margin≥γ1,显然
γ
2
\gamma_2
γ2的分类器包含了黑、红、绿,而
γ
1
\gamma_1
γ1只包含了黑。从VC-dim的定义出发,since
H
1
⊂
H
2
\mathcal{H_1} \sub \mathcal{H_2}
H1⊂H2, if a set of points
S
⊂
P
S \sub \mathcal{P}
S⊂P is shattered by
H
1
\mathcal{H_1}
H1(for any
T
⊂
S
T \sub \mathcal{S}
T⊂S, it can be classifies as +1 ),
S
S
S can also be shattered by
H
2
\mathcal{H_2}
H2, meaning that:
V
C
(
P
,
H
1
)
≤
V
C
(
P
,
H
2
)
VC(\mathcal{P},\mathcal{H_1}) \le VC(\mathcal{P},\mathcal{H_2})
VC(P,H1)≤VC(P,H2)
γ
\gamma
γ越大,通理三
R
2
m
a
r
g
i
n
2
\frac{R^2}{margin^2}
margin2R2越小,可以近似地将通理二VC-dim
λ
≈
R
2
m
a
r
g
i
n
2
\lambda \approx \frac{R^2}{margin^2}
λ≈margin2R2,误差上界也更小。
下一章讲的支持向量机SVM就是在linear separable场景下找到Margin最大的分类器的解题方法。
相关题目
- 问题1: 举例子说明shatter,需要注意axis-parallel rectangle 和 all the possible classifiers.
- 问题2: 举例子说明不能shatter
- 问题3、问题4:从VC-dim定义的shatter出发,证明公式
- 问题5:一些复杂的公式证明