机器学习(1)归纳偏好和NFL
这是萌新小白第一次写博客,也是刚刚开始机器学习的系统学习。第一次的博客主要介绍的是归纳偏好和NFL定理。
- 归纳偏好
任何一个有效的机器学习算法都必然有其归纳偏好,否则其就会因为假设空间中在训练集上假设的“等效”而感到困惑无法产生确定的学习结果。譬如面对一个有很多西瓜的验证集,对于同样要素(样本特征)的西瓜算法会有时判定为“好瓜”,有时判定为“坏瓜”。这样子的学习结果显然是没有实际作用的。
譬如,训练集中的数据点为
{(0, 0), (1, 1), (-1, 1)}
那么在没有归纳偏好的前提下学习结果可以为
y = 1 - cos(π / 2 * x)
或者为
y = x ^ 2
等等,有无数的曲线可以拟合,也就是作为机器学习第得到的结论,并且这些结论在误差期望上都是相同的(下面的NFL即为证明)。在这种情况下,只有规定了归纳偏好为“平滑”或者其他,才能够得到更为精确的机器学习结果。
归纳偏好可以视为学习算法在自身一个很庞大的假设空间中对假设进行选择的启发式或“价值观”。“奥卡姆剃刀”的简单有效原理便是一种原则。事实上,归纳偏好对应了学习算法本身做出的关于“什么样的模型更好”的假设。具体问题中,归纳偏好是否和问题本身相匹配,大多数时候直接决定了算法能否取得好的性能。
- NFL定理
NFL定理证明的是由于对所有可能函数的相互补偿,最优化算法的性能是等价的。该定理暗指,没有其它任何算法能够比搜索空间的线性列举或者纯随机搜索算法更优。该定理只是定义在有限的搜索空间,对无限搜索空间结论是否成立尚不清楚。
NFL定理的结论为:
1)对所有可能的的目标函数求平均,得到的所有学习算法的“非训练集误差”的期望值相同;
2)对任意固定的训练集,对所有的目标函数求平均,得到的所有学习算法的“非训练集误差”的期望值也相同;
3)对所有的先验知识求平均,得到的所有学习算法的“非训练集误差”的期望值也相同;
4)对任意固定的训练集,对所有的先验知识求平均,得到的所有学习算法的的“非训练集误差”的期望值也相同。
NFL定理表明没有一个学习算法可以在任何领域总是产生最准确的学习器。不管采用何种学习算法,至少存在一个目标函数,能够使得随机猜测算法是更好的算法。
首先,假设一个算法为a,而随机胡猜的算法为b,为了简单起见,假设样本空间为 和假设空间为H都是离散的。令P(h|X,a)表示算法a基于训练数据X产生假设h的概率,再令f代表希望的真实目标函数。a的训练集外误差,即a在训练集之外的所有样本上的误差为
E
o
t
e
(
a
∣
X
,
f
)
=
∑
h
∑
x
∈
χ
−
X
P
(
x
)
Ⅱ
(
h
(
x
)
≠
f
(
x
)
)
P
(
h
∣
X
,
a
)
E_{ote}(a|X,f)=\sum_h\sum_{x\isin\chi-X}P(x)Ⅱ(h(x)\neq f(x))P(h|X, a)
Eote(a∣X,f)=h∑x∈χ−X∑P(x)Ⅱ(h(x)=f(x))P(h∣X,a)
其中,Ⅱ(.)是指示函数,若括号内为真则取值1,否则为0.
考虑二分类问题。且真实目标函数可以使任何函数
χ
↦
{
0
,
1
}
\chi\mapsto \{0,1\}
χ↦{0,1},函数空间为
{
0
,
1
}
∣
χ
∣
\{0, 1\}^{|\chi|}
{0,1}∣χ∣,对所有可能的f按照均匀分布对误差求和,有
∑
f
E
o
t
e
(
a
,
∣
X
,
f
)
=
∑
f
∑
h
∑
x
∈
χ
−
X
P
(
x
)
Ⅱ
(
h
(
x
)
≠
f
(
x
)
)
P
(
h
∣
X
,
a
)
=
∑
x
∈
χ
−
X
P
(
x
)
∑
h
P
(
h
∣
X
,
a
)
∑
f
Ⅱ
(
h
(
x
)
≠
f
(
x
)
)
=
∑
x
∈
χ
−
X
P
(
x
)
∑
h
P
(
h
∣
X
,
a
)
∗
2
∣
χ
∣
−
1
=
2
∣
χ
∣
−
1
∑
x
∈
χ
−
X
P
(
x
)
∑
h
P
(
h
∣
X
,
a
)
=
2
∣
χ
∣
−
1
∑
x
∈
χ
−
X
P
(
x
)
\begin{aligned} \sum_f E_{ote}(a, |X,f ) &=\sum_f\sum_h\sum_{x\isin\chi-X}P(x)Ⅱ(h(x)\neq f(x))P(h|X, a) \\ &=\sum_{x\isin\chi-X} P(x)\sum_hP(h|X, a)\sum_fⅡ(h(x)\neq f(x))\\ &=\sum_{x\isin\chi-X} P(x)\sum_hP(h|X, a)*2^{|\chi|-1}\\ &=2^{|\chi|-1}\sum_{x\isin\chi-X} P(x)\sum_hP(h|X, a)\\ &=2^{|\chi|-1}\sum_{x\isin\chi-X} P(x) \end{aligned}
f∑Eote(a,∣X,f)=f∑h∑x∈χ−X∑P(x)Ⅱ(h(x)=f(x))P(h∣X,a)=x∈χ−X∑P(x)h∑P(h∣X,a)f∑Ⅱ(h(x)=f(x))=x∈χ−X∑P(x)h∑P(h∣X,a)∗2∣χ∣−1=2∣χ∣−1x∈χ−X∑P(x)h∑P(h∣X,a)=2∣χ∣−1x∈χ−X∑P(x)
其中最后一步是因为
∑
h
P
(
h
∣
X
,
a
)
=
1
\sum_hP(h|X, a) = 1
∑hP(h∣X,a)=1
上式结果证明了,当分布均匀时,也就是没有实际背景时,无论算法多好在没有实际背景情况下都不优于随机胡猜。
所以,NFL定理对于机器学习最重要的寓意,是让我们清晰地认识到,脱离具体问题,空泛地谈论“什么学习算法更好”是没有实际意义的。谈论算法的相对优劣,必须要针对具体的学习问题。大部分学习算法的自身的归纳偏好与问题相匹配时,对于算法性能往往会起到决定性作用。