机器学习公式推导【Day1】NFL定理


(本文为个人学习总结笔记)

1. NFL定理(No Free Lunch Theorem)

无论算法多么聪明或者多么笨拙,算法他们的期望性能是相同的,具体如下:

为简单起见,假设样本空间 X\mathcal{X}和假设空间H\mathcal{H}都是离散的.令 P(hX,La)P\left(h | X, \mathfrak{L}_{a}\right) 代表算法La\mathfrak{L}_{a}基于训练数据XX产生假设hh的概率,再令ff代表我们希望学习的真实目标函数. La\mathfrak{L}_{a}的"训练集外误差",即La\mathfrak{L}_{a}在训练集之外的所有样本上的误差为

Eote(LaX,f)=hxXXP(x)I(h(x)f(x))P(hX,La) E_{o t e}\left(\mathfrak{L}_{a} | X, f\right)=\sum_{h} \sum_{x \in \mathcal{X}-X} P(\boldsymbol{x}) \mathbb{I}(h(\boldsymbol{x}) \neq f(\boldsymbol{x})) P\left(h | X, \mathfrak{L}_{a}\right)

其中I()\mathbb{I}(\cdot)是指示函数,若·为真则取值1,否则取值0.
考虑二分类问题,且真实目标函数可以是任何函数X{0,1}\mathcal{X}\mapsto\{0,1\},函数空间 为{0,1}x\{0,1\}^{|x|}. 对所有可能的ff按均匀分布对误差求和,有:

fEote(LaX,f)=fhxXXP(x)I(h(x)f(x))P(hX,La)=xXXP(x)hP(hX,La)fI(h(x)f(x))=xXXP(x)hP(hX,La)122X=122XxXXP(x)hP(hX,La) \begin{aligned} \sum_{f} E_{o t e}\left(\mathfrak{L}_{a} | X, f\right) &=\sum_{f} \sum_{h} \sum_{x \in \mathcal{X}-X} P(\boldsymbol{x}) \mathbb{I}(h(\boldsymbol{x}) \neq f(\boldsymbol{x})) P\left(h | X, \mathfrak{L}_{a}\right) \\ &=\sum_{\boldsymbol{x} \in \mathcal{X}-X} P(\boldsymbol{x}) \sum_{h} P\left(h | X, \mathfrak{L}_{a}\right) \sum_{f} \mathbb{I}(h(\boldsymbol{x}) \neq f(\boldsymbol{x})) \\ &=\sum_{\boldsymbol{x} \in \mathcal{X}-X} P(\boldsymbol{x}) \sum_{h} P\left(h | X, \mathfrak{L}_{a}\right) \frac{1}{2} 2^{|\mathcal{X}|} \\ &=\frac{1}{2} 2^{|\mathcal{X}|} \sum_{x \in \mathcal{X}-X} P(\boldsymbol{x}) \sum_{h} P\left(h | X, \mathfrak{L}_{a}\right) \end{aligned}
fEote(LaX,f)=2X1xXXP(x)1 \sum_{f} E_{o t e}\left(\mathfrak{L}_{a} | X, f\right) =2^{|\mathcal{X}|-1} \sum_{\boldsymbol{x} \in \mathcal{X}-X} P(\boldsymbol{x}) \cdot 1\\

综上,可得无论算法如何,聪明或笨拙,期望性能与算法无关,任意两个算法,都满足:

fEote(LaX,f)=fEote(LbX,f)\sum_{f} E_{o t e}\left(\mathfrak{L}_{a} | X, f\right)=\sum_{f} E_{o t e}\left(\mathcal{L}_{b} | X, f\right)

即两个算法期望性能相同,这就是NFL定理。

2. NFL定理解析

第一步变换
imjnkoaibjck=imaijnbjkock\sum_{i}^{m} \sum_{j}^{n} \sum_{k}^{o} a_{i} b_{j} c_{k}=\sum_{i}^{m} a_{i} \cdot \sum_{j}^{n} b_{j} \cdot \sum_{k}^{o} c_{k}

第二步变换
此时ff的定义为任何能将样本映射到0,1{0,1}的函数+均匀分布,也即不止一个ff且每个ff出现的概率相等,例如样本空间只有两个样本时:X={x1,x2},X=2\mathcal{X}=\left\{\boldsymbol{x}_{1}, \boldsymbol{x}_{2}\right\},|\mathcal{X}|=2,那么所有的真实目标函数ff为:
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 \begin{array}{l} f_{1}: f_{1}\left(\boldsymbol{x}_{1}\right)=0, f_{1}\left(\boldsymbol{x}_{2}\right)=0 \\ f_{2}: f_{2}\left(\boldsymbol{x}_{1}\right)=0, f_{2}\left(\boldsymbol{x}_{2}\right)=1 \\ f_{3}: f_{3}\left(\boldsymbol{x}_{1}\right)=1, f_{3}\left(\boldsymbol{x}_{2}\right)=0 \\ f_{4}: f_{4}\left(\boldsymbol{x}_{1}\right)=1, f_{4}\left(\boldsymbol{x}_{2}\right)=1 \end{array}

一共2X=22=42^{|\mathcal{X}|}=2^{2}=4个真实目标函数。所以此时通过算法La\mathfrak{L}_{a}学习出来的模型h(x)h(x)对每个样本无论预测值为0还是1必然有一半的ff与之预测值相等,例如,现在学出来的模型x1x_1的预测值为1,也即h(x1)h(x_1),那么有且只有f3f_3f4f_4h(x)h(x)的预测值相等,也就是有且只有一半的ff与它预测值相等,所以fI(h(x)f(x))=122X\sum_{f} \mathbb{I}(h(\boldsymbol{x}) \neq f(\boldsymbol{x}))=\frac{1}{2} 2^{|X|};第三步一直到最后显然成立。值得一提的是,在这里我们定义真实的目标函数为“任何能将样本映射到{0,1}的函数+均匀分布”,但是实际情形并非如此,通常我们只认为能高度拟合已有样本数据的函数才是真实目标函数,例如,现在已有的样本数据为{(x1,0),(x2,1)}\left\{\left(\boldsymbol{x}_{1}, 0\right),\left(\boldsymbol{x}_{2}, 1\right)\right\},那么此时f2f_2才是我们认为的真实目标函数,由于没有收集到或者压根不存在{(x1,0),(x2,0)},{(x1,1),(x2,0)},{(x1,1),(x2,1)}\left\{\left(\boldsymbol{x}_{1}, 0\right),\left(\boldsymbol{x}_{2}, 0\right)\right\},\left\{\left(\boldsymbol{x}_{1}, 1\right),\left(\boldsymbol{x}_{2}, 0\right)\right\},\left\{\left(\boldsymbol{x}_{1}, 1\right),\left(\boldsymbol{x}_{2}, 1\right)\right\}这类样本,所以f1,f3,f4f_1,f_3,f_4都不算是真实目标函数。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章