历史上的今天
返回首页

历史上的今天

今天是:2025年01月19日(星期日)

正在发生

2018年01月19日 | 机器学习的含义、术语、以及重要性的解析

2018-01-19 来源:互联网

“”在最近虽可能不至于到人尽皆知的程度、却也是非常火热的词汇。机器学习是英文单词“Machine Learning”(简称ML)的直译,从字面上便说明了这门技术是让机器进行“学习”的技术。然而我们知道机器终究是死的,所谓的“学习”归根结底亦只是人类“赋予”机器的一系列运算。这个“赋予”的过程可以有很多种实现,而 正是其中相对容易上手、同时性能又相当不错的一门语言。作为综述,我们只打算谈谈机器学习相关的一些比较宽泛的知识,介绍与说明为何要使用 Python 来作为机器学习的的工作则交给下一篇文章来做。而在最后,我们会提供一个简短易懂的、具有实际意义的例子来给大家提供一个直观的感受。

目录:

人生苦短,我用 Python

第一个机器学习样例

“绪论”小结

什么是机器学习?

正如前面所说,由于近期的各种成果、使得“机器学习”成为了非常热门的词汇。机器学习在各种邻域的优异表现(围棋界的Master是其中最具代表性的存在),使得各行各业的人们都或多或少对机器学习产生了兴趣与敬畏。然而与此同时,对机器学习有所误解的群体也日益壮大;他们或将机器学习想得过于神秘、或将它想得过于万能。然而事实上,清晨的一句“今天天气真好”、朋友之间的寒暄“你刚刚是去吃饭了吧”、考试过后的感叹“复习了那么久终有收获”……这些日常生活中随处可见的话语,其背后却已蕴含了“学习”的思想——它们都是利用以往的经验、对未知的新情况做出的有效的决策。而把这个决策的过程交给来做、可以说就是“机器学习”的一个最浅白的定义。

我们或许可以先说说机器学习与以往的计算机工作样式有什么不同。传统的计算机如果想要得到某个结果、需要人类赋予它一串实打实的指令,然后计算机就根据这串指令一步步地执行下去。这个过程中的因果关系非常明确,只要人类的理解不出偏差、运行结果是可以准确预测的。但是在机器学习中,这一传统样式被打破了:计算机确实仍然需要人类赋予它一串指令,但这串指令往往不能直接得到结果;相反,它是一串赋予了机器“学习能力”的指令。在此基础上,计算机需要进一步地接受“数据”并根据之前人类赋予它的“学习能力”从中“学习”出最终的结果,这个结果往往是无法仅仅通过直接编程得出的。是故这里就导出了稍微深一点的机器学习的定义:它是一种让计算机利用数据而非指令来进行各种工作的方法。在这背后,最关键的就是“统计”的思想,它所推崇的“相关而非因果”的概念是机器学习的理论根基。在此基础上,机器学习可以说是计算机使用输入给它的数据、利用人类赋予它的算法得到某种模型的过程,其最终的目的则是使用该模型、预测未来未知数据的信息。

既然提到了统计,那么一定的数学理论就不可或缺。相关的、比较简短的定义会在第四章给出(PAC框架),这里我们就先只叙述一下机器学习在统计理论下的、比较深刻的本质:它追求的是合理的假设空间(Hypothesis Space)的选取和模型的泛化。(Generalization)能力。该句中出现了一些专用术语,详细的定义会在介绍术语时提及,这里我们提供一个直观:

所谓假设空间,就是我们的模型在数学上的“适用场合”

所谓的泛化能力,就是我们的模型在未知数据上的表现

注意:上述本质严格来说应该是 PAC Learning 的本质;在其余的理论框架下、机器学习是可以具有不同的内核的。

从上面的讨论可以看出,机器学习和人类思考的过程有或多或少的类似。事实上,我们在第六、第七章讲的(Neural Network,简称 NN)和卷积神经网络(Convoluonal Neural Network,简称 CNN)背后确实有着相应的神经科学的理论背景。然而与此同时我们需要知道的是,机器学习并非是一个“会学习的机器人”和“具有学习的人造人”之类的,这一点从上面诸多讨论也可以明晰(惭愧的是,我在第一次听到“机器学习”四个字时,脑海中浮现的正是一个“聪明的机器人”的图像,甚至还幻想过它和人类一起生活的场景)。相反的,它是被人类利用的、用于发掘数据背后信息的工具。

当然,现在也不乏“危险的人工智能”的说法,霍金大概是其中的“标杆”,这位伟大的英国理论物理学家甚至警告说“人工智能的发展可能意味着人类的灭亡”。孰好孰坏果然还是见仁见智,但可以肯定的是:本书所介绍的内容绝不至于导致世界的毁灭,大家大可轻松愉快地进行接下来的阅读 ( σ’ω’)σ。

机器学习常用术语

机器学习领域有着许多非常基本的术语,这些术语在外人听来可能相当高深莫测、它们事实上也可能拥有非常复杂的数学背景,但我们需要知道:它们往往也拥有着相对浅显平凡的直观理解(上一节的假设空间和泛化能力就是两个例子)。本节会对这些常用的基本术语进行说明与解释,它们背后的数学理论会有所阐述、但不会涉及到过于本质的东西。

正如前文反复强调的,数据在机器学习中发挥着不可或缺的作用;而用于描述数据的术语有好几个,它们是需要被牢牢记住的:

“数据集”(Data Set):就是数据的集合的意思。其中,每一条单独的数据被称为“样本”(Sample)。若没有进行特殊说明,本书都会假设数据集中样本之间在各种意义下相互独立。事实上,除了某些特殊的模型(如隐马尔可夫模型和条件随机场),该假设在大多数场景下都是相当合理的。

对于每个样本,它通常具有一些“属性”(Attribu)或说“特征”(Feature),特征所具体取的值就被称为“特征值”(Feature Value)。

特征和样本所张成的空间被称为“特征空间”(Feature Space)和“样本空间”(Sample Space),可以把它们简单地理解为特征和样本“可能存在的空间”。

相对应的,我们有“标签空间”(Label Space),它描述了模型的输出“可能存在的空间”;当模型是分类器时、我们通常会称之为“类别空间”。

其中、数据集又可以分为以下三类:

训练集(Trning Set);顾名思义、它是总的数据集中用来训练我们模型的部分。虽说将所有数据集都拿来当做训练集也无不可,不过为了提高及合理评估模型的泛化能力、我们通常只会取数据集中的一部分来当训练集。

集(Test Set);顾名思义、它是用来测试、评估模型泛化能力的部分。测试集不会用在模型的训练部分;换句话说,测试集相对于模型而言是“未知”的、所以拿它来评估模型的泛化能力是相当合理的。

交叉验证集(Cross-Validation Set,简称 CV Set);这是比较特殊的一部分数据,它是用来调整模型具体参数的。

注意:需要指出的是,获取数据集这个过程是不平凡的;尤其是当今“”如日中天的情景下,诸如“得数据者得天下”的说法也不算诳语。在此我推荐一个非常著名的、含有大量真实数据集的网站——UCI,接下来的篇章中也常常会用到其中一些合适的数据集来评估我们自己实现的模型。

我们可以通过具体的例子来理解上述概念。比如、我们假设小明是一个在北京读了一年书的学生,某天他想通过宿舍窗外的风景(能见度、温度、湿度、路人戴口罩的情况等)来判断当天的雾霾情况并据此决定是否戴口罩。此时,他过去一年的经验就是他拥有的数据集,过去一年中每一天的情况就是一个样本。“能见度”、“温度”、“湿度”、“路人戴口罩的情况”就是四个特征,而(能见度)“低”、(温度)“低”、(湿度)“高”、(路人戴口罩的)“多”就是相对应的特征值。现在小明想了想、决定在脑中建立一个模型来帮自己做决策,该模型将利用过去一年的数据集来对如今的情况作出“是否戴口罩”的决策。此时小明可以用过去一年中 8 个月的数据量来做训练集、2 个月的量来做测试集、2 个月的量来做交叉验证集,那么小明就需要不断地思考(训练模型):

用训练集训练出的模型是怎样的?

该模型在交叉验证集上的表现怎么样?

如果足够好了,那么思考结束(得到最终模型)

如果不够好,那么根据模型在交叉验证集上的表现、重新思考(调整模型参数)

最后,小明可能会在测试集上评估一下自己刚刚思考后得到的模型的性能、然后根据这个性能和模型作出的“是否戴口罩”的决策来综合考虑自己到底戴不戴口罩。 接下来说明一下上一节中提到过的重要概念:假设空间与泛化能力。泛化能力的含义在上文也有说明,为强调、这里再叙述一遍:

泛化能力针对的其实是学习方法,它用于衡量该学习方法学习到的模型在整个样本空间上的表现。

这一点当然是十分重要的,因为我们拿来训练我们模型的数据终究只是样本空间的一个很小的采样,如果只是过分专注于它们的话、就会出现所谓的“过拟合”(Over Fitting)的情况。当然,如果过分罔顾训练数据,又会出现“欠拟合”(Under Fitting)。我们可以用一张图来直观感受过拟合和欠拟合(如下图所示,左为欠拟合、右为过拟合):

欠拟合与过拟合

所以我们需要“张弛有度”、找到最好的那个平衡点。统计学习中的结构风险最小化(Structural Risk nimization、简称 SRM)就是研究这个的,它和传统的经验风险最小化(Emrical Risk Minimization、简称 ERM)相比,注重于对风险上界的最小化、而不是单纯使经验风险最小化。它有一个原则:在使得风险上界最小的函数子集中、挑选出使得经验风险最小的函数。而这个函数子集,正是我们之前提到过的假设空间

注意:所谓经验风险,可以理解为训练数据集上的风险。相对应的,ERM 则可以理解为只注重训练数据集的学习方法,它的理论基础是经验风险在某种足够合理的数学意义上一致收敛于期望风险、亦即所谓的“真正的”风险。

关于 SRM 和 ERM 的详细讨论会涉及到诸如 VC 维和正则化的概念,这里不进行详细展开、但我们需要有这么一个直观:为了使我们学习方法训练出的模型泛化能力足够好,我们需要对我们的模型做出一定的“限制”、而这个“限制”就表现在假设空间的选取上。一个非常普遍的做法是对模型的复杂度做出一定的惩罚、从而使模型趋于精简。这与所谓的“奥卡姆剃刀原理”(奥卡姆:我的剃刀还能再战 500 年)不谋而合:“如无必要,勿增实体”“切勿浪费较多的东西去做,用较少的东西、同样可以做好事情”

相比起通过选取合适的假设空间来规避过拟合,进行交叉验证(Cross Validation)则可以让我们知道过拟合的程度、从而帮助我们选择合适的模型。常见的交叉验证有三种:

S-fold Cross Validation:中文可翻译成S折交叉验证,它是应用最多的一种方法。其方法大致如下:

将数据分成 S 份:D={D1,D2,...,DS}、一共作 S 次试验

在第 i 次试验中,使用作为(D−Di)训练集、Di作为测试集对模型进行训练、评测

最终选择平均测试误差最小的模型

留一交叉验证(Leave-one-out Cross Validation):这是S折交叉验证的特殊情况,此时S=N

简易交叉验证:这种实现起来最简单、也是本博客(在进行交叉验证时)所采用的方法。它简单地将数据进行随机分组、最后达到训练集约占原数据的 70% 的程度(这个比率可以视情况改变),选择模型时使用测试误差作为标准。

机器学习的重要性

道理说了不少,但到底为什么要学机器学习、机器学习的重要性又在哪里呢?事实上,回顾我们可以发现,人类的发展通常伴随着简单体力劳动向复杂脑力劳动的过渡。过去的工作基本都有着明确的定义,告诉你这一步怎么做、下一步再怎么做。而如今这一类的工作已是越来越少,取而代之的是更为宽泛模糊的、概念性的东西,比如说“将本季度的产品推向最合适的市场,在最大化期望利润的同时、尽量做到风险最小化”这种需求。想要做好这样的任务,我们需要获取相应的数据;虽说网络的存在让我们能够得到数之不尽的数据,然而从这些数据中获得信息与知识却不是一项平凡的工作。我们当然可以人工地、仔细地逐项甄选,但这样显然就又回到了最初的原点。机器学习这门技术,可以说正因此应运而生

单单抽象地说一大堆空话可能会让人头晕脑胀,我们就举一举机器学习具体的应用范围吧,从中大概能够比较直观地看出机器学习的强大与重要。发展到如今,机器学习的“爪牙”可谓已经伸展到了各个角落、包括但不限于:

、也就是最近机器学习里很火热的的一种应用

、也就是微软 Cortana 背后的核心技术

数据挖掘、也就是耳熟能详的大数据相关的领域

统计学习、也就是本书讲解的主要范围之一,有许许多多著名的算法(比如支持向量机 SVM)都源于统计学习(但是统计学习还是和机器学习有着区别;简单地说,统计学习偏数学而机器学习偏实践)

机器学习还能够进行模式识别、自然语言处理等等,之前提过的围棋界的 Master 和最新人工智能在德州扑克上的表现亦无不呈现着机器学习强大的潜力。一言以蔽之,机器学习是当今的热点,虽说不能保证它的热度能 100% 地一直延续下去,至少本人认为、它能在相当长的一段时间内保持强大的生命力。

推荐阅读

史海拾趣

台湾富致(FUZETEC)公司的发展小趣事

Futaba Electric最初起源于收音机收讯真空管的制造,但在1970年,公司做出了重大的战略调整,决定结束真空管业务,专注于萤光表示管(VFD)的生产。这一决策标志着公司从传统电子元件向高级显示技术的转型。随着VFD技术的不断发展,Futaba凭借其在清晰度、视角和亮度方面的卓越表现,逐渐在全球VFD市场中占据领先地位,目前市场份额超过60%。这一转型不仅使Futaba成为VFD技术的领导者,还为其在汽车仪表盘和抬头显示器等领域的广泛应用奠定了基础。

AC Interface Inc公司的发展小趣事

ABC Electronics Inc. 起初是一家小型电子元件供应商,专注于为本地市场提供基本的电子零部件。然而,随着技术的快速发展,公司创始人意识到,只有不断创新才能在竞争激烈的市场中立足。于是,ABC Electronics 开始投入大量资源研发具有竞争力的新产品。经过数年的努力,公司成功推出了一款具有高效能、低能耗特点的电源管理芯片,迅速获得了市场的认可。这一创新产品不仅为公司带来了可观的利润,也奠定了其在电子行业的技术领先地位。

EETools公司的发展小趣事

EETools始终坚持以客户为中心的服务理念。公司深入了解不同行业客户的需求和痛点,为他们提供定制化的嵌入式系统解决方案。无论是医疗设备、汽车电子还是工业自动化等领域,EETools都能为客户提供高效、可靠的嵌入式开发工具和服务。这种以客户需求为导向的服务模式不仅赢得了客户的信任和好评,还为公司赢得了更多的商业机会。

Central Semiconductor公司的发展小趣事

在电子行业中,产品的更新换代速度极快,许多产品可能会因为技术更新或市场需求变化而停产。然而,Central Semiconductor却看到了其中的商机。公司根据客户需求,继续生产其他厂商已经停产的终老产品,以确保产品的持续供应和生命周期的延长。

这种对停产产品的支持不仅避免了客户因重新设计而带来的昂贵成本和时间消耗,也展现了Central对客户需求的深入理解和满足能力。这种服务模式不仅为Central赢得了客户的忠诚和信赖,也为公司在行业中树立了良好的口碑。

Fermionics Lasertech Inc公司的发展小趣事

随着公司规模的不断扩大,Fermionics Lasertech Inc公司开始寻求国际合作与全球布局。他们与国外的知名企业和研究机构建立了紧密的合作关系,共同开展技术研发和市场拓展。同时,公司还在海外设立了多个分支机构和办事处,以便更好地服务当地客户。这些举措不仅提升了公司的国际影响力,还为公司的长期发展提供了有力保障。

Cretex Companies Inc公司的发展小趣事

在电子行业的早期,Cretex Companies Inc.凭借对半导体技术的深入研究和创新,迅速崭露头角。公司研发出一款具有高效能、低功耗特点的芯片,这一技术突破使得电子设备的性能大幅提升,同时降低了能耗。凭借这一优势,Cretex的产品在市场上获得了广泛认可,公司规模逐渐扩大。

问答坊 | AI 解惑

彩灯循环控制器(急)!!!!

我现在在做毕业设计,题目是.可是我现在缺很多资料,许多东西到网上找也不全 希望谁有这方面题目的东西可以给我发一下,谢谢! 我需要彩灯循环控制器的电路图,我设计的有缺陷,希望能给个能够独立运行出来的进行参考!!!…

查看全部问答>

倒车雷达语音芯片资料

倒车雷达语音芯片资料…

查看全部问答>

IP防护等级含义

第一个数字: 0 无防护。 1 防护大于50mm的固体物质。 2 防护大于12mm的固体物质 3 防护大于2.5mm的固体物质 4 防护大于1mm的固体物质 5 防护粉尘(有限侵入) 6 防护粉尘(完全) 第二个数字 0 无防护 1 防护水垂直喷洒 2 防 ...…

查看全部问答>

芯片布局工程师

最近在网上投了简历,昨天接到一个电话,问我对芯片布局(非PCB)这职业感兴趣不,我当时答应了去面试。    但是我不太清楚芯片布局具体是做些什么,也不好意思问他,在网上也没查到,那位知道的可否赐教。…

查看全部问答>

高收入还不满的电子工程师薪酬揭秘

单身、年轻、精力充沛、积极向上的移动工程师坚持不懈地追求更好的收入,硅谷几十年来就扮演着“生手训练营”的角色,但那时的场景现在已经不复存在。非常积极能干的人现在都去了印度。     今年你拿了啊多少?     “EE T ...…

查看全部问答>

单片机按字符发送0XFF给上位机,

单片机按字符发送0XFF给上位机,上位机利用API按字符接收啊,如何转换得到十六进制数,为什么光得到0啊…

查看全部问答>

wdk与DDK有什么区别

wdk与DDK有什么区别,是不是WDK是用来开发VISTA下面的驱动的,开发XP下面的是不是只能用DDK…

查看全部问答>

求《嵌入式系统 硬件与软件架构》这本书的电子书下载?

一直没有找到,哪位仁兄知道,分享一下呢?…

查看全部问答>

求助!!怎样在pcb中添加一个文件的同时可以出现相关联多个库文件

在pcb中建立元器件库,同一个part但是可以导入多个和改封装一样的库文件,如在pads layout 中添加一个SO14封装,右键属性(Properties),弹出一个对话筐,在decal中下拉,可以出现自己另外做的SO14M1,SO14M2,SO14M3等宽体,或窄体的SO14封装…

查看全部问答>

ucos iar软件

我最近正在使用IAR 编写atmega128的ucos系统  不过在isr.r90文件中,有一句汇编语句 小弟不太懂  希望高人指教。 RSEG    CODE:CODE:NOROOT(0) 这条语句中的0代表什么意思?    在写中断汇编的时候, ...…

查看全部问答>