Foundations of Machine Learning 2nd——第四章Model Selection(一)
前言
从本篇博文开始我不再添加推导细节,因为写博文的目的是对本书内容做一个总结,理清思路,太过着眼于推导细节会让我忘记主题和整体逻辑,有想看推导细节的小伙伴可以看原书内容,写的都很详细。
本节主题
在设计学习算法的时候一个关键的问题是如何选择映射集 H H H——模型选择问题。(比如如何确定一个模型的超参)一个丰富(rich)且复杂(complex)的映射集有更大的概率包含贝叶斯分类器,但是学习这样一个复杂的因涉及是十分困难的。因此 H H H的选择是一个需要权衡的问题。本节将要权衡的两项内容公式化为:estimation error 和approximation error.
贝叶斯分类器是指generalization error最小的分类器(映射)
Estimation and Approximation Errors
定义
令
H
H
H是一个映射集,将
X
X
X映射到{-1,+1}上。
H
H
H中的一个映射
h
h
h的excess error是其generalization error
R
(
h
)
R(h)
R(h)和贝叶斯损失
R
⋆
R^\star
R⋆的差:
R
(
h
)
−
R
⋆
=
(
R
(
h
)
−
inf
h
∈
H
R
(
h
)
)
+
(
inf
h
∈
H
R
(
h
)
−
R
⋆
)
R(h)-R^\star=(R(h)-\inf_{h\in H}R(h))+(\inf_{h\in H}R(h)-R^\star)
R(h)−R⋆=(R(h)−h∈HinfR(h))+(h∈HinfR(h)−R⋆)
( R ( h ) − inf h ∈ H R ( h ) ) (R(h)-\inf\limits_{h\in H}R(h)) (R(h)−h∈HinfR(h)):estimation error, 他衡量的是映射 h h h到贝叶斯分类器的距离。
( inf h ∈ H R ( h ) − R ⋆ ) (\inf\limits_{h\in H}R(h)-R^\star) (h∈HinfR(h)−R⋆): approximation error,他衡量的是贝叶斯损失能被映射集 H H H逼近的程度,即相当于衡量映射集的丰富度。
显然,当映射集更丰富时,越有可能包含贝叶斯分类器,approximate error越小,同时学习任务也越困难,因此越难逼近 inf h ∈ H R ( h ) \inf\limits_{h\in H}R(h) h∈HinfR(h),从而estimation error越大。
至此我们将模型选择问题数学化为estimation和approximate errors的权衡问题,接下来看如何解决这个问题
最小化经验风险 Empirical risk minimization(ERM)
ERM是一个标准的用来限制estimation error上界(bound the estimation error)的算法。ERM的目标是在训练集上最小化损失。
h
S
E
R
M
=
arg min
h
∈
H
R
S
^
(
h
)
h_S^{ERM} = \argmin_{h\in H}\hat{R_S}(h)
hSERM=h∈HargminRS^(h)
接下来看看ERM是如何bound estimation error的:
命题4.1:
对于任何样本集S,下列不等式对ERM返回的映射都成立:
P
[
R
(
h
S
E
R
M
)
−
inf
h
∈
H
R
(
h
)
>
ϵ
]
≤
P
[
sup
h
∈
H
∣
R
(
h
)
−
R
S
^
(
h
)
∣
>
ϵ
2
]
\Bbb{P}[R(h_S^{ERM})-\inf_{h\in H}R(h)>\epsilon] \leq \Bbb{P}[\sup_{h\in H}|R(h)-\hat{R_S}(h)|>\frac{\epsilon}{2}]
P[R(hSERM)−h∈HinfR(h)>ϵ]≤P[h∈Hsup∣R(h)−RS^(h)∣>2ϵ]
同时注意,该不等式的右部分可以被 2 e − 2 m [ ϵ − R m ( H ) ] 2 2e^{-2m[\epsilon-R_m(H)]^2} 2e−2m[ϵ−Rm(H)]2bounded。(根据第三章内容推导出来,具体细节我没有深入研究,原文也没有展示,如果有会推导的铁汁欢迎留言)。
因此当映射集的拉德马赫复杂度较小,即VC维有限的时候,estimation error也很小的概率就很大。
ERM的局限是只是对estimation 做了bound,并没有实现estimation和approximation errors的平衡。不过ERM对下一步实现二者权衡来说是一个十分重要的定理。
最小化结构经验 Structural risk minimization(SRM)
前面我们说了如何bound estimation error, approximation error不能计算到(无法计算
R
⋆
R^\star
R⋆),怎么bound呢?一个方法是选择一个足够复杂的,approximation error为0或很小的
H
H
H,但是太复杂的
H
H
H又很难限制他的generalization error。因此作者提出了一个方法是把
H
H
H分解成多个复杂度逐渐上升的映射集的联合:
H
=
∪
γ
∈
Γ
H
γ
H = \cup_{\gamma \in \Gamma}H_\gamma
H=∪γ∈ΓHγ,
H
γ
H_\gamma
Hγ的复杂度随着
γ
\gamma
γ上升而上升。
因此优化问题就变成了找到最优的
γ
⋆
\gamma^\star
γ⋆对应的
H
γ
⋆
H_{\gamma^\star}
Hγ⋆, 这个“最优”指的是最好的平衡了estimation error和approximation error.
我们的实现方法是找excess error, 也就是estimation 和 approximation errors的和的上界。 需要用的方法叫 Structural Risk Minimization(SRM)。
我们先确定一下SRM里的关于 H H H的定义: H H H被分解成 H = ∪ k ≥ 1 H k H=\cup_{k\geq 1}H_k H=∪k≥1Hk,且 H k H_k Hk是嵌套的: H k ⊂ H k + 1 H_k\subset H_{k+1} Hk⊂Hk+1
SRM的目标就是:选择合适的下标
k
⋆
≥
1
k^\star\geq1
k⋆≥1,并找到
H
k
⋆
H_{k^\star}
Hk⋆的ERM映射
h
h
h,这个映射能够最小化excess error的上界。
下面的图很好的解释了SRM是如何bound excess error的:generalization error是empirical error和penalty term的和,SRM会选择能够最小化generalization error上界的映射返回。
通过前几章的知识可以知道:
R
(
h
)
≤
R
S
^
(
h
)
+
R
m
(
H
k
(
h
)
)
+
log
k
m
+
log
2
δ
2
m
R(h)\leq\hat{R_S}(h)+R_m(H_{k(h)})+\sqrt{\frac{\log k}{m}}+\sqrt{\frac{\log \frac{2}{\delta}}{2m}}
R(h)≤RS^(h)+Rm(Hk(h))+mlogk+2mlogδ2
H k ( h ) H_k(h) Hk(h)表示包含 h h h的最不复杂的 H k H_k Hk
为了最小化excess error,通过选择
k
k
k和映射
h
∈
H
(
k
)
h\in H(k)
h∈H(k)来最小化的目标函数应该是:
F
k
(
h
)
=
R
S
^
(
h
)
+
R
m
(
H
k
)
+
log
k
m
F_k(h) = \hat{R_S}(h)+R_m(H_{k})+\sqrt{\frac{\log k}{m}}
Fk(h)=RS^(h)+Rm(Hk)+mlogk
右式中第一项用来控制estimation error(目标一致),后两项用来控制approximation error, 也就是映射集的复杂度。
这和SRM的目标映射
h
S
S
R
M
h_S^{SRM}
hSSRM一致:
h
S
S
R
M
=
arg min
k
≥
1
,
h
∈
H
k
F
k
(
h
)
=
arg min
k
≥
1
,
h
∈
H
k
R
S
^
(
h
)
+
R
m
(
H
k
)
+
log
k
m
h_S^{SRM} = \argmin\limits_{k\geq1,h\in H_k}F_k(h) = \argmin_{k\geq1,h\in H_k}\hat{R_S}(h)+R_m(H_{k})+\sqrt{\frac{\log k}{m}}
hSSRM=k≥1,h∈HkargminFk(h)=k≥1,h∈HkargminRS^(h)+Rm(Hk)+mlogk
SRM的有效性通过下列命题保证:
命题4.2 SRM learning guarantee
对于任一
δ
>
0
\delta>0
δ>0, 有至少
1
−
δ
1-\delta
1−δ的概率在大小为
m
m
m的从
D
m
D^m
Dm独立同分布采样到的样本集
S
S
S上,映射
h
S
R
M
h^{SRM}
hSRM的generalization error被下式bounded:
h
S
R
M
≤
inf
h
∈
H
(
R
(
h
)
+
2
R
m
(
H
k
(
h
)
)
+
log
k
(
h
)
m
)
+
2
log
3
δ
m
h^{SRM}\leq\inf_{h\in H}(R(h) + 2R_m(H_{k(h)})+\sqrt{\frac{\log k(h)}{m}})+\sqrt{\frac{2\log\frac{3}{\delta}}{m}}
hSRM≤h∈Hinf(R(h)+2Rm(Hk(h))+mlogk(h))+m2logδ3
这个定理说明 h S R M h^{SRM} hSRM确实实现了estimation 和 approximation error的平衡。
下面是一些关于SRM学习的trick
假设对于某 k k k, min h ∈ H k F k ( h ) ≤ min h ∈ H k + 1 F ( h ) \min_{h\in H_k}F_k(h)\leq\min_{h\in H_{k+1}}F(h) minh∈HkFk(h)≤minh∈Hk+1F(h),那么比 k + 1 k+1 k+1还大的下标就不用考虑了。这个特性对于一些经验损失在达到一定 k k k值后就不能再下降的样本(不过我感觉根据图4.4来说,应该都可以满足这个特性,也可能是我理解不到位)。基于这种条件,最优 k ∗ k^* k∗可以通过在 [ 1 , k m a x ] [1,k_{max}] [1,kmax]之间的二分查找找到。 k m a x k_{max} kmax的寻找方法是对于 min h ∈ H 2 n F k ( h ) \min_{h\in H_{2^n}}F_k(h) minh∈H2nFk(h),指数级的增加下标 2 n 2^n 2n,直到找到 min h ∈ H 2 n F k ( h ) ≤ min h ∈ H 2 n + 1 F k ( h ) \min_{h\in H_{2^n}}F_k(h)\leq\min_{h\in H_{2^{n+1}}}F_k(h) minh∈H2nFk(h)≤minh∈H2n+1Fk(h),令 k m a x = 2 n k_{max}=2^n kmax=2n(个人感觉应该是 2 n + 1 2^{n+1} 2n+1)。当我们固定 k k k的时候, min h ∈ H k F k ( h ) \min_{h\in H_{k}}F_k(h) minh∈HkFk(h)的过程就相当于ERM的过程(找到 arg min h ∈ H k R S ^ ( h ) \argmin_{h\in H_k}\hat{R_S}(h) h∈HkargminRS^(h))。因此,寻找 k m a x k_{max} kmax的做ERM的次数是 O ( n ) = O ( log k m a x ) O(n)=O(\log k_{max}) O(n)=O(logkmax),二分查找 k ∗ k^* k∗的ERM的次数是 O ( log k m a x ) O(\log k_{max}) O(logkmax)。如果 n n n是最小的满足 k ∗ < 2 n k^*<2^n k∗<2n的值的话,整体的ERM的计算次数相当于 O ( k ∗ ) O(k^*) O(k∗)。
总结
这一小节的内容主要是介绍了通过SRM来学习合适的映射集,从而能够平衡结果的实践准确度(estimation error)和理论准确度(approximation error)(这两个准确度名词是我自己造的…)
不过SRM有两个缺点:
- 不是所有的映射集 H H H都可以被分解为多个有限VC维的子映射集的
- SRM计算十分困难,对于大多数映射集,求解ERM是np-hard的,并且通常SRM都有大量的下标 k k k。
下一节会讲一个实践性更强,也是被广泛应用的模型选择的解决方法——交叉验证。