机器学习著名定理之—No Free Lunch定理详解
Posted 鬼道2022
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习著名定理之—No Free Lunch定理详解相关的知识,希望对你有一定的参考价值。
引言
谈到机器学习一个非常著名的定理,那就不得不提No Free Lunch定理了。该定理核心思想是没有一种通用的学习算法可以在各种任务中都有很好的表现,需要对具体问题进行具体的分析。从原理出发去理解AI算法可以能够对AI相关的问题有更深刻的认识,像这种基于严格数学证明推导出的结论,尤其值得重视。翻阅了大量的相关材料力求让该定理的证明过程更加完整(需要注意的是该定理核心证明步骤中用到了一个修改版本的马尔可夫不等式),相关的材料列在文末。
No Free Lunch定理证明
定理(No Free Lunch): 假定 A \\mathcalA A是一个在域 X \\mathcalX X的二分类任务中任意一个机器学习算法,其损失函数为 0 - 1 0\\text-1 0-1损失。令 n n n是一个大小为 ∣ X ∣ / 2 |\\mathcalX|/2 ∣X∣/2的训练集,存在域 X \\mathcalX X中的分布 D \\mathcalD D,则有
(1)存在一个函数 f : X → 0 , 1 f:\\mathcalX\\rightarrow \\0,1\\ f:X→0,1,且有 L D ( f ) = 0 L_\\mathcalD(f)=0 LD(f)=0。
(2)对于子列 S ∼ D n \\mathcalS\\sim D^n S∼Dn,则概率不等式 P ( L D ( A ( S ) ) ≥ 1 / 8 : S ∼ D n ) ≥ 1 / 7 P(L_\\mathcalD(\\mathcalA(\\mathcalS))\\ge 1/8: \\mathcalS\\sim\\mathcalD^n)\\ge 1/7 P(LD(A(S))≥1/8:S∼Dn)≥1/7成立。
证明:
(1) 令
C
\\mathcalC
C表示域
X
\\mathcalX
X中大小为
2
n
2n
2n的一个子集。主要的证明思路是只利用数据集
C
\\mathcalC
C一半的数据样本点并不能给出剩下一半数据点的信息。 假定
H
\\mathcalH
H表示数据集
C
\\mathcalC
C到标签集合
0
,
1
\\0,1\\
0,1所有可能的函数集合,且
T
T
T表示的是函数集合的基数,其中
H
=
f
1
,
⋯
,
f
T
\\mathcalH=\\f_1,\\cdots,f_T\\
H=f1,⋯,fT,
T
=
2
2
n
T=2^2n
T=22n。对于
H
\\mathcalH
H中每一个函数假设,令
D
i
\\mathcalD_i
Di是
C
×
0
,
1
\\mathcalC\\times\\0,1\\
C×0,1中的分布
D
i
(
(
x
,
y
)
)
=
1
/
2
m
i
f
y
=
f
i
(
x
)
0
o
t
h
e
r
w
i
s
e
\\mathcalD_i(\\(x,y)\\)=\\left\\\\beginarrayll1/2m & \\mathrmif\\text y=f_i(x)\\\\0& \\mathrmotherwise\\endarray\\right.
Di((x,y))=1/2m0if y=fi(x)otherwise进而可知存在函数
f
i
f_i
fi,在数据分布
D
i
\\mathcalD_i
Di上则有
L
D
i
(
f
i
)
=
0
L_\\mathcalD_i(f_i)=0
LDi(fi)=0。
(2)主要证明的关键在于即对任意的学习算法
A
\\mathcalA
A有
max
i
∈
[
T
]
E
S
∼
D
i
n
[
L
D
i
(
A
(
S
)
)
]
≥
1
/
4
\\max\\limits_i \\in [T]\\mathbbE_\\mathcalS\\sim \\mathcalD_i^n[L_\\mathcalD_i(\\mathcalA(\\mathcalS))]\\ge 1 / 4
i∈[T]maxES∼Din[LDi(A(S))]≥1/4首先从
C
×
0
,
1
\\mathcalC\\times \\0,1\\
C×0,1中采样出
n
n
n个样本构造一个训练集,其中采样出的样本可以重复,进而可知有
k
=
(
2
n
)
n
k=(2n)^n
k=(2n)n中可能的样本序列。令这些样本序列分别表示为
S
1
,
S
2
,
⋯
,
S
k
\\mathcalS_1,\\mathcalS_2,\\cdots,\\mathcalS_k
S1,S2,⋯,Sk。
S
j
i
=
(
(
x
1
,
f
i
(
x
1
)
)
,
⋯
,
(
x
n
,
f
i
(
x
n
)
)
)
\\mathcalS_j^i=((x_1,f_i(x_1)),\\cdots,(x_n,f_i(x_n)))
Sji=((x1,fi(x1)),⋯,(xn,fi(xn)))表示的是函数
f
j
f_j
fj在样本序列
S
j
S_j
Sj中的数据集合,则有
E
S
∼
D
i
n
[
L
D
i
(
A
(
S
)
)
]
=
1
k
∑
j
=
1
k
L
D
i
(
A
(
S
j
i
)
)
\\mathbbE_\\mathcalS\\sim \\mathcalD_i^n[L_\\mathcalD_i(\\mathcalA(\\mathcalS))]=\\frac1k\\sum\\limits_j=1^k L_\\mathcalD_i(\\mathcalA(\\mathcalS^i_j))
ES∼Din[LDi(A(S))]=k1j=1∑kL以上是关于机器学习著名定理之—No Free Lunch定理详解的主要内容,如果未能解决你的问题,请参考以下文章
机器学习|数学基础Mathematics for Machine Learning系列之图论(10):匹配基本定理
机器学习|数学基础Mathematics for Machine Learning系列之图论(10):匹配基本定理
机器学习|数学基础Mathematics for Machine Learning系列之矩阵理论:正交补与投影定理
机器学习|数学基础Mathematics for Machine Learning系列之矩阵理论(12):相似形理论
机器学习|数学基础Mathematics for Machine Learning系列之矩阵理论(13):Hamliton-Cayley定理最小多项式