(本文为个人学习总结笔记)
1. NFL定理(No Free Lunch Theorem)
无论算法多么聪明或者多么笨拙,算法他们的期望性能是相同的,具体如下:
为简单起见,假设样本空间 X和假设空间H都是离散的.令 P(h∣X,La) 代表算法La基于训练数据X产生假设h的概率,再令f代表我们希望学习的真实目标函数. La的"训练集外误差",即La在训练集之外的所有样本上的误差为
Eote(La∣X,f)=h∑x∈X−X∑P(x)I(h(x)=f(x))P(h∣X,La)
其中I(⋅)是指示函数,若·为真则取值1,否则取值0.
考虑二分类问题,且真实目标函数可以是任何函数X↦{0,1},函数空间 为{0,1}∣x∣. 对所有可能的f按均匀分布对误差求和,有:
f∑Eote(La∣X,f)=f∑h∑x∈X−X∑P(x)I(h(x)=f(x))P(h∣X,La)=x∈X−X∑P(x)h∑P(h∣X,La)f∑I(h(x)=f(x))=x∈X−X∑P(x)h∑P(h∣X,La)212∣X∣=212∣X∣x∈X−X∑P(x)h∑P(h∣X,La)
f∑Eote(La∣X,f)=2∣X∣−1x∈X−X∑P(x)⋅1
综上,可得无论算法如何,聪明或笨拙,期望性能与算法无关,任意两个算法,都满足:
f∑Eote(La∣X,f)=f∑Eote(Lb∣X,f)
即两个算法期望性能相同,这就是NFL定理。
2. NFL定理解析
第一步变换
i∑mj∑nk∑oaibjck=i∑mai⋅j∑nbj⋅k∑ock
第二步变换
此时f的定义为任何能将样本映射到0,1的函数+均匀分布,也即不止一个f且每个f出现的概率相等,例如样本空间只有两个样本时:X={x1,x2},∣X∣=2,那么所有的真实目标函数f为:
f1:f1(x1)=0,f1(x2)=0f2:f2(x1)=0,f2(x2)=1f3:f3(x1)=1,f3(x2)=0f4:f4(x1)=1,f4(x2)=1
一共2∣X∣=22=4个真实目标函数。所以此时通过算法La学习出来的模型h(x)对每个样本无论预测值为0还是1必然有一半的f与之预测值相等,例如,现在学出来的模型x1的预测值为1,也即h(x1),那么有且只有f3和f4与h(x)的预测值相等,也就是有且只有一半的ff与它预测值相等,所以∑fI(h(x)=f(x))=212∣X∣;第三步一直到最后显然成立。值得一提的是,在这里我们定义真实的目标函数为“任何能将样本映射到{0,1}的函数+均匀分布”,但是实际情形并非如此,通常我们只认为能高度拟合已有样本数据的函数才是真实目标函数,例如,现在已有的样本数据为{(x1,0),(x2,1)},那么此时f2才是我们认为的真实目标函数,由于没有收集到或者压根不存在{(x1,0),(x2,0)},{(x1,1),(x2,0)},{(x1,1),(x2,1)}这类样本,所以f1,f3,f4都不算是真实目标函数。