PAC动机
给定一个分类器,它在训练集中的误差可以知道,但在未见实例中的误差(即泛化误差)却是未知的。一旦训练出分类器,则其在测试集中的表现就是“听天由命”。
但有人还是想把命运掌握在自己手中。思考这样一个事实:如果训练集够大,分类器“见多识广”,即使用kNN这种简单的模型,都可以获得很小的泛化误差。进一步地,能否从定量的角度,获得训练集大小与分类器泛化误差之间的关系?而PAC干的就是这件事情。
使用PAC,我们可以获得这类结论:为了以99%的以上的可能性,获得泛化误差不超过2%某种类型的分类器,仅需要训练样本数不少于520即可。也就是说,做1000次实验,每次用含520个样本的数据集训练分类器,再使用10000个样本进行测试,则只有不超过10次实验,单次误分类样本超过200个。这里的“可能性”对应于Probability,“近似正确”则对应于Approximately Correct。参数说明:
99
%
=
1
−
1
%
=
1
−
δ
99\% = 1 - 1\% = 1 - \delta
99%=1−1%=1−δ,
2
%
=
ϵ
2\% = \epsilon
2%=ϵ。
例子
如图1所示,样本属性值域:实数区间[0, 1],标签:负(三角形表示)、正(圆圈表示)两类。已知所有的负例均在正例左边,且数据服从均匀分布(即在任何点采样的概率密度相同)。求一个分类器,使得它把负、正样本分开。
图中数据从左至右为{(0.08, -), (0.23, -), (0.33, -), (0.65, +), (0.71, +), (0.86, +)},注意输入的时候是乱序的。
问题分析
-
这是个二分类问题。
-
分类器模型(一维空间的超平面)即一个点(阈值)。
-
随着样本数量的增加,最右边的负例与最左边的正例距离越来越近,阈值的可取范围越来越窄,分类器越准确。
算法A
逐个扫描给定数据,获得负例的最大值,图1中 r ′ = 0.33 r' = 0.33 r′=0.33。完毕。
算法分析
- 直观上看,取 r ′ = ( 0.33 + 0.65 ) / 2 = 0.49 r' = (0.33 + 0.65)/2 = 0.49 r′=(0.33+0.65)/2=0.49是一个更好的选择,但是没关系,这点损失不算啥。
- 假设真正的分割点为 r r r, 则当测试数据落在 r ′ r' r′与 r r r之间时,我们会错误地把负例误分类为正例。由于 r ′ r' r′是贴着最大负值划的,我们不可能犯另一种错误:“把正例误分类为负例”。这使得算法更容易分析。根据均匀分布假设,分类器的泛化误差为 r − r ′ r - r' r−r′.
- 令 r ′ ′ = r − ϵ r'' = r - \epsilon r′′=r−ϵ。则测试数据落在 [ r ′ ′ , r ] [r'', r] [r′′,r]的概率为 ϵ \epsilon ϵ.
- 如果 r ′ < r ′ ′ r' < r'' r′<r′′,则分类器的泛化误差大于 ϵ \epsilon ϵ;否则分类器的泛化误差小于 ϵ \epsilon ϵ.
- 我们不知道r是多少,也不知道 r ′ ′ r'' r′′是多少,但这些不重要(what?),我们只需要知道 r ′ ′ − r = ϵ r'' - r = \epsilon r′′−r=ϵ.
- 对于1个训练数据而言,它落入区间 [ r ′ ′ , r ] [r'', r] [r′′,r]的概率是epsilon,不落入该区间的概率是 ( 1 − ϵ ) (1 - \epsilon) (1−ϵ).
- 对于 m m m个训练数据而言,它们都不落入区间 [ r ′ ′ , r ] [r'', r] [r′′,r]的概率是 ( 1 − ϵ ) m (1 - \epsilon)^m (1−ϵ)m. 这对应于泛化误差大于 ϵ \epsilon ϵ(失败).
- m m m个训练数据,至少有一个落入区间 [ r ′ ′ , r ] [r'', r] [r′′,r]的概率是 1 − ( 1 − ϵ ) m 1- (1 - \epsilon)^m 1−(1−ϵ)m. 这对应于泛化误差小于 ϵ \epsilon ϵ(成功).
- 要求分类器成功的概率不小于 1 − δ 1 - \delta 1−δ,即要求 1 − ( 1 − ϵ ) m ≥ 1 − d e l t a 1- (1 - \epsilon)^m \geq 1 - delta 1−(1−ϵ)m≥1−delta ⇒ \Rightarrow ⇒ ( 1 − ϵ ) m ≤ δ (1 - \epsilon)^m \leq \delta (1−ϵ)m≤δ.
- 根据"众所周知"的不等式
(
1
−
ϵ
)
m
≤
e
−
m
ϵ
(1 - \epsilon)^m \leq e^{-m \epsilon}
(1−ϵ)m≤e−mϵ, 可转而要求
e
−
m
ϵ
≤
δ
e^{-m \epsilon} \leq \delta
e−mϵ≤δ
⇒
\Rightarrow
⇒
m
≥
1
ϵ
ln
1
δ
m \geq \frac{1}{\epsilon} \ln\frac{1}{\delta}
m≥ϵ1lnδ1.
分析完毕。
参考文献
[1]: Foundations of Machine Learning.
[2]: https://blog.youkuaiyun.com/weixin_43824178/article/details/100103967