引言
谈到机器学习一个非常著名的定理,那就不得不提 No Free Lunch 定理了。该定理核心思想是没有一种通用的学习算法可以在各种任务中都有很好的表现,需要对具体问题进行具体的分析。从原理出发去理解 AI 算法可以能够对 AI 相关的问题有更深刻的认识,像这种基于严格数学证明推导出的结论,尤其值得重视。翻阅了大量的相关材料力求让该定理的证明过程更加完整(需要注意的是该定理核心证明步骤中用到了一个修改版本的马尔可夫不等式),相关的材料列在文末。
No Free Lunch 定理证明
定理 1(No Free Lunch):假定 是一个在域 的二分类任务中任意一个机器学习算法,其损失函数为 损失。令 是一个大小为 的训练集,存在域 中的分布 ,则有:
存在一个函数 ,且有 。
对于子列 ,则概率不等式 成立。
证明:
(1)令 表示域 中大小为 的一个子集。主要的证明思路是只利用数据集 一半的数据样本点并不能给出剩下一半数据点的信息。假定 表示数据集 到标签集合 所有可能的函数集合,且 表示的是函数集合的基数,其中 ,。对于 中每一个函数假设,令 是 中的分布:
进而可知存在函数 ,在数据分布 上则有 。(2)主要证明的关键在于即对任意的学习算法 有:
首先从 中采样出 个样本构造一个训练集,其中采样出的样本可以重复,进而可知有 中可能的样本序列。令这些样本序列分别表示为 。_