ML Lecture 7
No Free Lunch Theorem
- 如果我们对数据的分布没有任何先验知识(也就是说,只能先认为任意两个样本的标签的分布是独立的),就不可能设计出一个在所有情况下都能表现良好的算法。换句话说,不存在通用学习器,也就是没有一种算法可以适用于所有问题或数据分布;
- 即使人类大脑也只能在某些特定的情景下有效工作。具体来说,这些情景下,\(f(x_i)\) 和 \(f(x_j)\) 的结果不是独立的,一般会满足一些连续性假设。这是基于机器学习领域的对于实际问题的假设。
- 然而,定理的前提条件有一些在实际应用中不常见设定。因此,在大多数实际情况下,仍然可以设计表现优秀的算法。
现在我们有一个二分类问题,我们要学习如何给样本全集 \(X\) 打标签。
定理 1. 设 \(A\) 是给定的一个用于 \(X\) 的二分类任务,采用 \(0-1\) 损失函数的学习算法。如果训练集 \(S\) 的规模 \(\displaystyle m\leq\frac{|X|}{2}\),则一定存在一个定义在 \(X \times \{0,1\}\) 上的分布 \(D\),使得:
- 存在一个函数 \(f: X \to \{0,1\}\),使得 \(L_D(f) = 0\);(正确答案存在)
- 对于从分布 \(D^m\) 采样的 \(S\),至少有 \(\displaystyle\frac{1}{7}\) 的概率满足:\(L_D(A(S))\geq\displaystyle \frac{1}{8}\),即训练算法失败。(但是学废了)
定理表明,如果这个二分类任务的训练集规模小到一定程度,就一定会存在某个倒霉的学习目标 \(D_{bad}\) ,使得这个分类器的学习成果糟糕到超出了某个我们设定的容忍范围。所以不存在对于任意训练集的 universal learner.
证明. 首先指出这个二分类任务是相互独立的,也就是说,两个不同的样本的标签相互独立(注意这其实是有悖于机器学习任务的连续性假设的。)因此,在这类任务上,任意制定一种标签方式都是合理的,原来的样本集 \(X\) 暂时没有 universal 的答案。定理就是要证明对于这类问题,将会存在某些 \(X\) 的标签分布,使得算法学习失败。
为了简化问题,考虑先在 \(X\) 中取一个子集 \(C\),使得 \(\lvert C\rvert=2m\) ,固定这个子集 \(C\)。由于存在 \(T = 2^{2m}\) 个从 \(C\) 到 \(\{0,1\}\) 的可能函数。将这些函数表示为 \(f_1, \dots, f_T\)。每一个函数都是一种 \(C\) 的标签方式,它们也都是合理的。
对于每个函数 \(f_i\),定义:假设对 \(C\) 的标签方式 \(f_i\) 给定,那么选取训练集合的概率分布为 \(D_i:C \times \{0,1\}\to [0,1]\) : \[ D_i \left( \{(x,y)\} \right) = \begin{cases} \frac{1}{2m}, & \text{if } y = f_i(x) \\ 0, & \text{otherwise} \end{cases} \]
也就是说,对于分布 \(D_i\) ,如果标签 \(y\) 和 \(f_i\) 给定的标签一致,则选择 \((x, y)\) 的概率为 \(\displaystyle\frac{1}{2m}\),如果 \(y \neq f_i(x)\),则选择概率为 \(0\)。显然,\(L_{D_i}(f_i) = 0\)。
由于让这个算法学习之前,我们先要人为制定 \(X\) 的答案(进而 \(C\) 也被制定),因而选取训练集 \(S\) 时也就会遵循某个概率分布 \(D_i\)。我们证明,返回分类函数 \(A(S): C \to \{0,1\}\) 将会有: \[ \max_{i \in [T]} \mathbb{E}_{S \sim D_i^m} \left[ L_{D_i}\left[A(S)\right] \right] \geq \frac{1}{4}. \]
之后为了将这个 \(C\) 上的结论用回 \(X\) 上,我们只需要取使得上面的式子的 \(\arg\max=i_0\),并将 \(D_{i_{0}}\) 和对应的 \(f_{i_0}\)零延拓到 \(X\) 上,取 \(D=D_{i_0}\),\(f=f_{i_0}\)。则对于算法 \(A\),若其使用一个来自 \(X \times \{0,1\}\) 、大小为 \(m\) 的训练集 \(S\sim D^m\),则 \(L_{D}(f) = 0\),并且 \[ \mathbb{E}_{S \sim D^m} \left[ L_{D}(A'(S)) \right] \geq \frac{1}{4}. \]
接下来可导出定理的结论 \[ P\left[L_D(A'(S)) \geq \frac{1}{8}\right] \geq \frac{1}{7}. \] 这是因为 \[ \begin{aligned} \frac{1}{4}&\leq\mathbb{E}_{S \sim D^m} \left[ L_D\left[A'(S)\right] \right]\\ &=\int_{\Omega}\rho\left(L_D\left[A'(S)\right] \right)\cdot L_D\left[A'(S)\right]\,\mathrm{d}l\\ &=\int_{\left\{L_D(A'(S)) \geq \frac{1}{8}\right\}\cup \left\{L_D(A'(S)) < \frac{1}{8}\right\}}\rho\left(L_D\left[A'(S)\right] \right)\cdot L_D\left[A'(S)\right]\,\mathrm{d}l\\ &\leq P\left[L_D(A'(S)) \geq \frac{1}{8}\right]\cdot1+\left(1-P\left[L_D(A'(S)) \geq \frac{1}{8}\right]\right)\cdot\frac{1}{8}\\ &=\frac{1}{8}+\frac{7}{8}\cdot P\left[L_D(A'(S)) \geq \frac{1}{8}\right]. \end{aligned} \] 我们转而上面的 \(\max\) 上界的正确性。
下面我们证明 \[ \max_{i \in [T]} \mathbb{E}_{S \sim D_i^m} \left[ L_{D_i}(A(S)) \right] \geq \frac{1}{4}. \] 每次独立选取 \(C\) 中的 \(2m\) 个样本,共选 \(m\) 次,可组成 \(k = (2m)^m\) 种可能序列(训练集的样本部分),记为 \(S_1, \dots, S_k\)。如果 \(S_j = (x_1, \dots, x_m)\),则用 \(S_j^i\) 表示由函数 \(f_i\) 标记 \(S_j\) 各样本得到的序列,即 \[ S_j^i = \left( (x_1, f_i(x_1)), \dots, (x_m, f_i(x_m)) \right) \]
如果获取训练集的分布是 \(D_i\),则 \(A\) 可能接收到的训练集为 \(S_1^i, \dots, S_k^i\),并且所有这些训练集都有相同的采样概率(因为原来的 \(S_1, \dots, S_k\) 就是等分布)。因此 \[ \mathbb{E}_{S \sim D_i^m} \left[ L_{D_i}(A(S)) \right] = \frac{1}{k} \sum_{j=1}^k L_{D_i}(A(S_j^i)) \]
因为“最大值和平均值的关系,我们有: \[ \begin{aligned} \max_{i \in [T]} \left[ \frac{1}{k} \sum_{j=1}^k L_{D_i}(A(S_j^i)) \right] &\geq \frac{1}{T} \sum_{i=1}^T \left[ \frac{1}{k} \sum_{j=1}^k L_{D_i}(A(S_j^i)) \right]\\ &= \frac{1}{k} \sum_{j=1}^k \left[ \frac{1}{T} \sum_{i=1}^T L_{D_i}(A(S_j^i)) \right]\\ \end{aligned} \] 于是我们只需要证明对所有的 \(j\),都有 \[ \frac{1}{T} \sum_{i=1}^T L_{D_i}(A(S_j^i))\geq\frac{1}{4} \] 即可。
现在我们固定某个可能训练集的下标 \(j \in [k]\)。
设 \(S_j = (x_1, \dots, x_m)\),并设 \(v_1, \dots, v_p\) 是 \(C\) 中未出现在 \(S_j\) 中的样本。考虑 \(S_j\) 元素的重复的可能,可得 \(p \geq m\)。
因此,对于每个函数 \(h: C \to \{0,1\}\) 和每个 \(i\): \[ L_{D_i}(h) = \frac{1}{2m} \sum_{x \in C} \mathbf{1}_\left[h(x) \neq f_i(x)\right] \geq \frac{1}{2m} \sum_{r=1}^p \mathbf{1}_\left[h(v_r) \neq f_i(v_r)\right] \geq \frac{1}{2p} \sum_{r=1}^p \mathbf{1}_\left[h(v_r) \neq f_i(v_r)\right]. \]
进而, \[ \begin{aligned} \frac{1}{T} \sum_{i=1}^T L_{D_i}(A(S_j^i)) &\geq \frac{1}{T} \sum_{i=1}^T \left[\frac{1}{2p} \sum_{r=1}^p \mathbf{1}_{\left[A(S_j^i)(v_r) \neq f_i(v_r)\right]}\right]\\ &= \frac{1}{2p} \sum_{r=1}^p \left[\frac{1}{T} \sum_{i=1}^T \mathbf{1}_{\left[A(S_j^i)(v_r) \neq f_i(v_r)\right]} \right]\\ \end{aligned} \] 于是我们只需要证明对所有的 \(r\), \[ \frac{1}{T} \sum_{i=1}^T \mathbf{1}_{\left[A(S_j^i)(v_r) \neq f_i(v_r)\right]}\geq\frac{1}{2}. \]
进一步在 \(j\) 被固定之后,再固定某个 \(r \in [p]\)。
可以将之前定义的所有函数 \(f_1, \dots, f_T\) 划分为 \(\displaystyle\frac{T}{2}\) 对不相交的函数对,其中每个对 \((f_i, f_{i'})\) 满足,对于每个 \(c \in C\),如果且仅当 \(c = v_r\) 时,有 \(f_i(c) \neq f_{i'}(c)\)。(给定位置 \(k\),考虑两个二进制序列仅在第 \(k\) 位不同,则可通过这个构造双射)
因为 \(v_r\not\in S_j\),所以 \(S_j^i = S_j^{i'}\),考虑 \(A(S_j^i)\) 对 \(v_r\) 的预测,由于 \(f_i(v_r) \neq f_{i'}(v_r)\), \[ \mathbf{1}_{\left[A(S_j^i)(v_r) \neq f_i(v_r)\right]} + \mathbf{1}_{\left[A(S_j^{i'})(v_r) \neq f_{i'}(v_r)\right]} = 1 \]
利用配对法则,我们得到 \[ \frac{1}{T} \sum_{i=1}^T \mathbf{1}_{\left[A(S_j^i)(v_r) \neq f_i(v_r)\right]} = \frac{1}{2} \]
这就完成了证明。