
为什么机器学习真的可以学到东西
开始跟《机器学习基石》这门课,相对于Stanford那门课,这门明显难度大很多,我跟到第10个Lecture,才刚刚讲到Logistic Regression。前面费了很大力气在讲机器什么时候可以学习,以及证明为什么能学习。
此文主要是基于《机器学习基石》的学习笔记。Topic是为什么机器可以学习?
机器学习最开始也是最终的目的是获得一个target function,喂进去数据能直接得到正确结论的函数。为了得到这个函数,我们需要一大堆的训练数据。然后通过一个好的机器学习算法,从一大堆可能的function(也就是H)中挑选一个比较好的function(也就是g),这个g和target function长得越像越好。
大家有没有想过,为什么这样就能学到东西。我们的算法只是在训练数据上跑,从训练数据跑出来的g,我们怎么能确定它也能在测试数据上跑的很好呢?这个就是问题的关键。其实接下来内容主要就是论证这个问题。
先来考虑一个简单的问题。比如说我们现在有一个黑罐子,里面有很多弹珠,只有两种颜色,黄的和绿的。好现在问你,你怎么能知道黄色弹珠大概有多少颗?
大家肯定都会说抽样。没错,我们抽出10个弹珠,很容易能知道黄色弹珠在sample中的比例。但是这个比例真的能代表罐子中的比例吗?也许能,也许不能。而且能的记录会随着我们sample数目的增大而增大。但是也有可能你抓出一把全绿。但这种情况发生的记录很小。这里我们有一个定理保证这种偏差发生的记录很小。
Hoeffding's inequality可以保证偏差很大发生的几率很小,并且随着N的增大很减小。公式如下,v代表sample中黄色弹珠的比例,μ表示罐子中黄色弹珠的比例。ϵ也就是偏差。
现在我们称v为Ein,μ为Eout,现在我们已经证明了Ein和Eout不会差的太远,更重要的事情是保重Ein越小越好,这就需要一个好的算法。
还记得上面的学习流程吗,我们的算法是从很多个h中去挑选一个Ein最小的h让它成为g。但是这里会有坏事情发生。
所谓的坏事情就是bad sample,就是说我们抽出了十个全是绿的弹珠。现在有一个好的h称之为h1,和坏的h叫h2,h1对于这个bad sample的表现当然是糟糕的,而恰好h2表现很好,那h2就被选成g了。
当出现坏事的时候,我们学习就会困难,可以直接说不能学习。所以这个坏事出现的概率是多少呢?把所有h中发生坏事的几率加起来。
从上图的式子中可以看到,坏事发生的几率和M有关。M也就是h的个数。
从现在的条件来看,如果M很大甚至无线的话那么Learning是不可行的。
真实的情况是M一般不会很大,请再仔细看看上一张图的推导,M是通过把所有的h坏事发生的概率加起来的,但是其实这些h不是互相独立的。所以这些h是有重复的,如下图。
比如说,我们想学习的target function是一条把x1分类成正负的线。现在h就有无数个,因为任意一条线都能分类,但是实际有意义的只有两种,分成正的和负的。
如果是两个点的话,实际有效的h就有4种,但是3个点就有可能不到8种了,因为会出现三点共线的情况。4个点的话按理说有16种,但是同样有一种情况不会发生,请看下图。
所以现在我们的公式就变成了这样,大大减小M的个数
现在我们给上面effective(N)一个称呼,叫做成长函数。也就是说,对于某一个输入D,H最多能够产生的多少种方程。注意是种类的数量。
这个所谓的种类我们也给一个定义叫做dichotomy,用来表示H对与D的二元分类情况。
好,现在问题的关键,就是H到底能把D分成多少个dichotomy。也就是它的成长函数到底是多少?
但是我们很难确定它的成长函数。但是好在我们拥有一个叫做break point的东西,这就是成长函数的上限。我们再看回上面分类的例子。
这里的输入为三个点就是一个break point。也就是说当输入N个点,H不能够把这个N个点的排列组合全部表示出来时(2^N),N就是一个break point。
当H能把N的全部组合表示出来时,说明这N个点被H给shatter掉了
我们用B(N,k)来表示当输入N个点时,H可以最多产生多少个dichotomy。
通过数学归纳法我们可以证明到
现在到了最后一步,除了把上边那个成长函数的上限代入进去之外,还需要进行一系列的变形,这些变形需要很强的数学能力和概率上面的知识,我自己都不太懂,况且我觉得大部分人都不需要了解。这里我就略过,有兴趣的强人自己google咯。
最终的式子如下
好了,现在我们终于能说机器学习确实可以学到东西了。但是需要满足三个条件。
这三者的关系如下图。
dvc = k - 1,大致上可以把它看出theta的维度加1
上图很清晰的说明,并不是说你的模型搞得很复杂,算法弄得很好,就能学好,反而是取到一个折中的点,这样的学习才最有效。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
机器学习解决实际问题的核心关键:从业务到落地的全流程解析 在人工智能技术落地的浪潮中,机器学习作为核心工具,已广泛应用于 ...
2025-09-09SPSS 编码状态区域中 Unicode 的功能与价值解析 在 SPSS(Statistical Product and Service Solutions,统计产品与服务解决方案 ...
2025-09-09CDA 数据分析师:驾驭商业数据分析流程的核心力量 在商业决策从 “经验驱动” 向 “数据驱动” 转型的过程中,商业数据分析总体 ...
2025-09-09R 语言:数据科学与科研领域的核心工具及优势解析 一、引言 在数据驱动决策的时代,无论是科研人员验证实验假设(如前文中的 T ...
2025-09-08T 检验在假设检验中的应用与实践 一、引言 在科研数据分析、医学实验验证、经济指标对比等领域,常常需要判断 “样本间的差异是 ...
2025-09-08在商业竞争日益激烈的当下,“用数据说话” 已从企业的 “加分项” 变为 “生存必需”。然而,零散的数据分析无法持续为业务赋能 ...
2025-09-08随机森林算法的核心特点:原理、优势与应用解析 在机器学习领域,随机森林(Random Forest)作为集成学习(Ensemble Learning) ...
2025-09-05Excel 区域名定义:从基础到进阶的高效应用指南 在 Excel 数据处理中,频繁引用单元格区域(如A2:A100、B3:D20)不仅容易出错, ...
2025-09-05CDA 数据分析师:以六大分析方法构建数据驱动业务的核心能力 在数据驱动决策成为企业共识的当下,CDA(Certified Data Analyst) ...
2025-09-05SQL 日期截取:从基础方法到业务实战的全维度解析 在数据处理与业务分析中,日期数据是连接 “业务行为” 与 “时间维度” 的核 ...
2025-09-04在卷积神经网络(CNN)的发展历程中,解决 “梯度消失”“特征复用不足”“模型参数冗余” 一直是核心命题。2017 年提出的密集连 ...
2025-09-04CDA 数据分析师:驾驭数据范式,释放数据价值 在数字化转型浪潮席卷全球的当下,数据已成为企业核心生产要素。而 CDA(Certified ...
2025-09-04K-Means 聚类:无监督学习中数据分群的核心算法 在数据分析领域,当我们面对海量无标签数据(如用户行为记录、商品属性数据、图 ...
2025-09-03特征值、特征向量与主成分:数据降维背后的线性代数逻辑 在机器学习、数据分析与信号处理领域,“降维” 是破解高维数据复杂性的 ...
2025-09-03CDA 数据分析师与数据分析:解锁数据价值的关键 在数字经济高速发展的今天,数据已成为企业核心资产与社会发展的重要驱动力。无 ...
2025-09-03解析 loss.backward ():深度学习中梯度汇总与同步的自动触发核心 在深度学习模型训练流程中,loss.backward()是连接 “前向计算 ...
2025-09-02要解答 “画 K-S 图时横轴是等距还是等频” 的问题,需先明确 K-S 图的核心用途(检验样本分布与理论分布的一致性),再结合横轴 ...
2025-09-02CDA 数据分析师:助力企业破解数据需求与数据分析需求难题 在数字化浪潮席卷全球的当下,数据已成为企业核心战略资产。无论是市 ...
2025-09-02Power BI 度量值实战:基于每月收入与税金占比计算累计税金分摊金额 在企业财务分析中,税金分摊是成本核算与利润统计的核心环节 ...
2025-09-01巧用 ALTER TABLE rent ADD INDEX:租房系统数据库性能优化实践 在租房管理系统中,rent表是核心业务表之一,通常存储租赁订单信 ...
2025-09-01