为什么机器学习能够预测未知数据集?

本文涉及的产品
无影云电脑企业版,4核8GB 120小时 1个月
无影云电脑个人版,1个月黄金款+200核时
资源编排,不限时长
简介: 本文将解释违背了我们使用机器学习的初衷的NFL定理,它意味着单纯只能预测已有数据集的机器学习,就学了个寂寞?它是怎么在不被破解的前提下,使得问题摆脱它的影响的。

👏 Hi! 我是 Yumuing,一个技术的敲钟人

👨‍💻 每天分享技术文章,永远做技术的朝拜者

📚 欢迎关注我的博客:Yumuing's blog

本文将解释违背了我们使用机器学习的初衷的NFL定理,它意味着单纯只能预测已有数据集的机器学习,就学了个寂寞?它是怎么在不被破解的前提下,使得问题摆脱它的影响的。
注:学习自林轩田机器学习基石国语国语

1.1 NFL 定理引入

image-20220927151419879

如果提供六个数据,将它们划分成两类,标识为 $y_n = -1\,,y_n=+1$,此时,给出右边的数据,确定他的类别,此时,给出右边的数据,确定他的类别gx。由于没有统一的标准,比方说,两者的部分划分依据为整体是否为对称图形的话,此时。由于没有统一的标准,比方说,两者的部分划分依据为整体是否为对称图形的话,此时,$gx=+1$,但如果说,划分依据为每个图形最左上角方块颜色是否为黑色的话,那此时,,但如果说,划分依据为每个图形最左上角方块颜色是否为黑色的话,那此时,$gx = -1$ ,两个截然不同的答案存在对错之分吗?没有,它们都是正确的,在无监督式学习下可能会发生的。

也就是说在已有的数据之下,机器学习的结果是能够完成正确划分的,但是,一旦接受了新的数据影响下,已有的机器学习结论可能就无法正确地去进行判断。这种特性被称为没有免费午餐定理(No Free Lunch ,即 NFL 定理)。

NFL定理表明没有一个学习算法可以在任何领域总是产生最准确的学习器。不管采用何种学习算法,至少存在一个目标函数,能够使得随机猜测算法是更好的算法。平常所说的一个学习算法比另一个算法更“优越”,效果更好,只是针对特定的问题,特定的先验信息,数据的分布,训练样本的数目,代价或奖励函数等。也就是说,所有的机器学习算法都是建立在一个个假设之下的演算法的训练。

1.2 解决 NFL 问题

但这定理不就违背了我们使用机器学习的初衷了吗?单纯只能预测已有数据集的机器学习,就学了个寂寞?我们可以从下面一个例子来理解一下,它是怎么在不被破解的前提下,使得问题摆脱它的影响的。

1.2.1 数学统计例子引入

假设要计算一个装有橙色小球和绿色小球且混合均匀的瓶子里面有多少个橙色小球,由于小球数量较多,采用手工计数并不划算。此时,我们可以采用近似拟然估计的方式,也就是说,我们每次任意从已摇匀瓶子中取一个球并记录颜色,重复一百次(为方便表示,图示为重复十次),假如在前面的一百次重复记录中,有七十次是橙色球,请问罐中橙色球所占的比例最有可能是多少?,很多人都会脱口而出:70% ,这是正确的,当然,这是建立在数据足量、独立同分布且随机选取的情况下的近似概率,只能说与真实概率相似。

理论支撑详解可看:一文搞懂极大似然估计 - 知乎 zhihu.com

image-20220927190612434

假设随机选取后橙色球的近似概率为 μ ,但真实概率为 ν 则绿色球近似概率为 1−μ ,真实概率为 1−ν 。并且,如果采用 Hoeffding's inequality 来进行解释的话:

$$P[|v-u|>\epsilon] \leq 2 \exp \left(-2 \epsilon^{2} N\right)$$

当 N 很大的时候,ν 与 μ 相差不会很大,它们之间的差值被限定在 ϵ 之内。我们把结论 μ=ν 称为 probably approximately correct:大致相似PAC:大致相似。

1.2.2 问题延申至机器学习

把上面的思想转换到机器学习之上,不久可以解释机器学习还是存在可行性的吗?我们假设从瓶子中随机选取的小球整体视为机器学习中用来训练的数据集,而瓶子所有小球视为训练数据集和新的预测数据集总和,其中,橙色小球代表机器学习预测失败的情况,而绿色小球代表预测成功的情况。

image-20220927194943058

依据以上例子的思想,随机选取的小球中预测错误的概率(橙色小球概率)与所有小球中预测错误的概率都是 PAC 的,概率类似。此时,我们可以假设前者(训练错误概率)为 $E_{in}(h)$ ,后者(所有样本错误概率)为 $E_{out}(h)$ 。(错误概率表示 h(x) 与 f(x) 不相等的概率:h(x) 为假说公式,f(x)为目标函数)

同样,它的Hoeffding's inequality可以表示为:

$$P[|v-u|>\epsilon] \leq 2 \exp \left(-2 \epsilon^{2} N\right)P\left[\left|E_{\text {in }}(h)-E_{\text {out }}(h)\right|>\epsilon\right] \leq 2 \exp \left(-2 \epsilon^{2} N\right)$$

验证了只要当 N (样本数量)很大的时候,$E_{in}(h)=E_{out}(h)$ 也是 PAC 的。现在只是证明了,其实训练样本和验证样本下,同一个 $h(x)$ 的判断正确与否的概率是一致的,但在不同的数据集下,错误概率的大小却是不一定小的,也就是说 $g\,不一定 \approx f$。也就说,第一个例子(黑白图形)训练出来的划分依据很多,是由于样本数据不完美,存在噪声,没有尽可能囊括基本的特征,也就是存在多个 $E_{in}(h)$ 比较大的情况。

所以,我们需要通过演算法,选择最好的 h ,使得 $E_{in}(h)$ 足够小,从而使得 $E_{out}(h)$ 足够小,才能说明面对同种假设(同分布)下的新数据能够正确的预测。这还没解决 NFL 问题呢,只是提出了解决问题的一些简单前提。

不可避免的是,演算法在不合适的数据集下可能无法真正做到独立随机选取 h ,导致产生一个 $E_{in}(h)$ 与 $E_{out}(h)$ 差别较大的 h 。比如,150 人抛正负概率一致的硬币各五次,每一个人都是一个选取的数据集,150人为总体数据集,此时,可能存在某个人抛出 5 次正面朝上的概率,而这个就是不合适的数据集所产生的 $E_{in}(h) = 0$ 与 $E_{out}(h) = \frac{1}{2}$ 差别较大的 h,该数据集就被称为 Bad Sample 。

image-20220927212120222

其中,M是hypothesis的个数,N是样本D的数量, 是参数。该union bound表明,当 M 有限,且N足够大的时候,Bad Sample 出现的概率就更低了,即能保证D对于所有的 h 都有$E_{in}(h)=E_{out}(h)$,满足PAC,演算法A的选择不受限制。

不同的数据集产生的 h 可以在其他的数据集进行验证错误率,只有某个数据集通过绝大部分的 h 上才是是好的数据。

image-20220927205018380

这样的数据集所包含的 h 是有限个的,这才是基本囊括了机器学习所需要真正学习的内容,通过这样的数据集进行训练,此时,$E_{in}(h)=E_{out}(h)$ 从而得到一个结果为 ,$E_{in}(h) = 0$ 的 h,进而得到一个在其他数据集也能够很好地判断(泛化能力强)的结果。至此,就证明了机器学习是可行的。

image-20220927212410241

但是,如上面的学习流程图右下角所示,如果 M 是无数个,例如之前介绍的 PLA 直线有无数条,是否这些推论就不成立了呢?是否机器就不能进行学习呢?后续分解。

求点赞转发

目录
相关文章
|
2月前
|
机器学习/深度学习 算法 数据挖掘
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
117 4
|
2月前
|
机器学习/深度学习 算法 PyTorch
用Python实现简单机器学习模型:以鸢尾花数据集为例
用Python实现简单机器学习模型:以鸢尾花数据集为例
145 1
|
3月前
|
XML JSON 数据可视化
数据集学习笔记(二): 转换不同类型的数据集用于模型训练(XML、VOC、YOLO、COCO、JSON、PNG)
本文详细介绍了不同数据集格式之间的转换方法,包括YOLO、VOC、COCO、JSON、TXT和PNG等格式,以及如何可视化验证数据集。
426 1
数据集学习笔记(二): 转换不同类型的数据集用于模型训练(XML、VOC、YOLO、COCO、JSON、PNG)
|
5月前
|
UED 存储 数据管理
深度解析 Uno Platform 离线状态处理技巧:从网络检测到本地存储同步,全方位提升跨平台应用在无网环境下的用户体验与数据管理策略
【8月更文挑战第31天】处理离线状态下的用户体验是现代应用开发的关键。本文通过在线笔记应用案例,介绍如何使用 Uno Platform 优雅地应对离线状态。首先,利用 `NetworkInformation` 类检测网络状态;其次,使用 SQLite 实现离线存储;然后,在网络恢复时同步数据;最后,通过 UI 反馈提升用户体验。
117 0
|
5月前
|
机器学习/深度学习 TensorFlow 数据处理
分布式训练在TensorFlow中的全面应用指南:掌握多机多卡配置与实践技巧,让大规模数据集训练变得轻而易举,大幅提升模型训练效率与性能
【8月更文挑战第31天】本文详细介绍了如何在Tensorflow中实现多机多卡的分布式训练,涵盖环境配置、模型定义、数据处理及训练执行等关键环节。通过具体示例代码,展示了使用`MultiWorkerMirroredStrategy`进行分布式训练的过程,帮助读者更好地应对大规模数据集与复杂模型带来的挑战,提升训练效率。
121 0
|
5月前
|
机器学习/深度学习 算法 数据挖掘
scikit-learn.datasets 机器学习数据集
scikit-learn.datasets 机器学习数据集
51 0
|
5月前
|
机器学习/深度学习 数据可视化 搜索推荐
【python机器学习】python电商数据K-Means聚类分析可视化(源码+数据集+报告)【独一无二】
【python机器学习】python电商数据K-Means聚类分析可视化(源码+数据集+报告)【独一无二】
228 0
|
8月前
|
机器学习/深度学习 数据采集 人工智能
论文介绍:机器学习中数据集规模增长的极限分析
【5月更文挑战第17天】论文《机器学习中数据集规模增长的极限分析》探讨了数据集大小对AI模型性能的影响,预测语言数据可能在2026年前耗尽,图像数据在2030-2060年可能面临相同问题。研究显示数据积累速度无法跟上数据集增长,可能在2030-2040年间导致训练瓶颈。然而,算法创新和新数据源的发展可能缓解这一问题。[链接](https://arxiv.org/pdf/2211.04325.pdf)
125 2
|
7月前
|
机器学习/深度学习 算法 PyTorch
【从零开始学习深度学习】45. Pytorch迁移学习微调方法实战:使用微调技术进行2分类图片热狗识别模型训练【含源码与数据集】
【从零开始学习深度学习】45. Pytorch迁移学习微调方法实战:使用微调技术进行2分类图片热狗识别模型训练【含源码与数据集】