为什么机器学习真的可以学到东西
开始跟《机器学习基石》这门课,相对于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
在数据分析领域,Excel作为一种普及率极高且功能强大的工具,无疑为无数专业人士提供了便捷的解决方案。尽管Excel自带了丰富的功 ...
2025-01-17在这个瞬息万变的时代,许多人都在寻找能让他们脱颖而出的职业。而数据分析师,作为大数据和人工智能时代的热门职业,自然吸引了 ...
2025-01-14Python作为一门功能强大的编程语言,已经成为数据分析和可视化领域的重要工具。无论你是数据分析的新手,还是经验丰富的专业人士 ...
2025-01-10完全靠数据决策,真的靠谱吗? 最近几年,“数据驱动”成了商界最火的关键词之一,但靠数据就能走天下?其实不然!那些真正成功 ...
2025-01-09SparkSQL 结构化数据处理流程及原理是什么?Spark SQL 可以使用现有的Hive元存储、SerDes 和 UDF。它可以使用 JDBC/ODB ...
2025-01-09在如今这个信息爆炸的时代,数据已然成为企业的生命线。无论是科技公司还是传统行业,数据分析正在深刻地影响着商业决策以及未来 ...
2025-01-08“数据为王”相信大家都听说过。当前,数据信息不再仅仅是传递的媒介,它成为了驱动经济发展的新燃料。对于企业而言,数据指标体 ...
2025-01-07在职场中,当你遇到问题的时候,如果感到无从下手,或者抓不到重点,可能是因为你掌握的思维模型不够多。 一个好用的思维模型, ...
2025-01-06在现代企业中,数据分析师扮演着至关重要的角色。每天都有大量数据涌入,从社交媒体到交易平台,数据以空前的速度和规模生成。面 ...
2025-01-06在职场中,许多言辞并非表面意思那么简单,有时需要听懂背后的“潜台词”。尤其在数据分析的领域里,掌握常用术语就像掌握一门新 ...
2025-01-04在当今信息化社会,数据分析已成为各行各业的核心驱动力。它不仅仅是对数字进行整理与计算,而是在数据的海洋中探寻规律,从而指 ...
2025-01-03又到一年年终时,各位打工人也迎来了展示成果的关键时刻 —— 年终述职。一份出色的年终述职报告,不仅能全面呈现你的工作价值, ...
2025-01-03在竞争激烈的商业世界中,竞品分析对于企业的发展至关重要。今天,我们就来详细聊聊数据分析师写竞品分析的那些事儿。 一、明确 ...
2025-01-03在数据分析的江湖里,有两个阵营总是争论不休。一派信奉“大即是美”,认为数据越多越好;另一派坚守“小而精”,力挺质量胜于规 ...
2025-01-02数据分析是一个复杂且多维度的过程,从数据收集到分析结果应用,每一步都是对信息的提炼与升华。可视化分析结果,以图表的形式展 ...
2025-01-02在当今的数字化时代,数据分析师扮演着一个至关重要的角色。他们如同现代企业的“解密专家”,通过解析数据为企业提供决策支持。 ...
2025-01-02数据分析报告至关重要 一份高质量的数据分析报告不仅能够揭示数据背后的真相,还能为企业决策者提供有价值的洞察和建议。 年薪 ...
2024-12-31数据分析,听起来好像是技术大咖的专属技能,但其实是一项人人都能学会的职场硬核能力!今天,我们来聊聊数据分析的核心流程,拆 ...
2024-12-31提到数据分析,你脑海里可能会浮现出一群“数字控”抱着电脑,在海量数据里疯狂敲代码的画面。但事实是,数据分析并没有你想象的 ...
2024-12-31关于数据分析师是否会成为失业高危职业,近年来的讨论层出不穷。在这个快速变化的时代,技术进步让人既兴奋又不安。今天,我们从 ...
2024-12-30