机器学习简介
- 人工智能是一个广义术语,指的是使机器能够模仿人类行为的技术。
- 机器学习是人工智能技术的一个子集,它使机器能够从经验中学习。
- 数据驱动
- 统计算法
- 神经网络是机器学习的一个子领域
- 深度学习是神经网络的一个子领域
机器学习是一个快速发展的领域。这引发了一个问题:机器学习能比人类学得更好吗?要找到答案,第一步是从人类的角度理解什么是学习。然后,才能更清楚地了解机器学习是什么。最后,我们需要知道机器学习是否已经超越或有可能在生活的各个方面超越人类学习。
什么是人类学习?
在认知科学中,学习通常是指通过观察获得知识的过程。为什么我们需要学习?在我们的日常生活中,我们需要进行多项活动。这可能是一项简单的任务,如走在街上或做作业。也可能是一些复杂的任务,如决定火箭发射的角度,以便它能有一个特定的轨迹。为了以正确的方式完成一项任务,我们需要对与该任务相关的一两件事有先验知识。此外,随着我们不断学习更多,换句话说,获取更多知识,完成任务的效率就会不断提高。例如,知识越多,做作业的能力就越强。同样,过去火箭发射的知识有助于采取正确的预防措施,使火箭发射更加成功。因此,通过更多的学习,可以更有效地完成任务。
人类学习的类型
直觉地思考,人类的学习有以下三种方式:
- 某个领域专家直接教我们,或
- 我们根据过去从专家那里学到的东西间接地建立自己的概念,或
- 我们自己做,可能经过多次尝试,有些失败了。
我们可以称第一种学习属于直接在专家指导下的学习。
第二种学习属于在专家知识指导下的学习。第三种是自学。
接下来,让我们用现实生活中的例子深入研究每一种类型,并尝试理解它们的含义。
在专家指导下学习
婴儿可能会从父母那里直接学习某些特征和性格。他称自己的手为“手”,因为这是他从父母那里得到的知识。天空是“蓝色”的,因为这是父母教给他的。我们说婴儿从父母那里“学习”东西。
生命的下一个阶段是宝宝开始上学。在学校里,他从基本熟悉字母和数字开始。然后,宝宝学习如何用字母组成单词,用数字组成数字。慢慢地,更复杂的学习以句子、段落、复杂的数学、科学等形式发生。宝宝可以从已经掌握这些领域知识的老师那里学习所有这些知识。
然后开始高等教育,学习更复杂、更实用的技能。工程专业的学生掌握土木工程、计算机科学、电气、机械等学科的技能。医学专业的学生学习解剖学、生理学、药理学等。各领域有一些专家,一般是教师,他们拥有深入的学科知识,帮助学生学习这些技能。
然后,这个人开始在某个领域从事专业工作。尽管他可能已经在相关领域进行了足够的理论学习,但他仍然需要更多地学习将所学知识应用于实践。专业导师帮助该领域的新手在职学习。
在人类生活的各个阶段,都有引导式学习的元素。这种学习是由某人传授的,纯粹是因为他/她已经凭借自己在该领域的经验积累了知识。因此,引导式学习是从拥有足够知识的人那里获得知识的过程,而这些知识都是由于过去的经验而获得的。
在专家知识的指导下进行学习
学习的一个重要部分是教师或导师在某个时间点以其他形式/背景传授的知识。例如,
- 即使父母没有专门教过他,婴儿也能将所有相同颜色的物体归为一类。他之所以能做到这一点,是因为父母在某个时候告诉过他哪种颜色是蓝色、哪种是红色、哪种是绿色等。
- 一个成年的孩子可以从一组单词中选择一个奇怪的单词,因为它是一个动词,而其他单词都是名词。他之所以能做到这一点,是因为他有能力将这些单词标记为动词或名词,这是他的英语老师很久以前教过的。
- 在专业角色中,一个人能够根据老板很久以前提供的偏好知识来确定应该向哪些客户开展营销活动。
在所有这些情况下,都不存在直接的学习。而是一些过去在不同背景下共享的知识,这些知识被用来做决策。
自学
在许多情况下,人类只能靠自己学习。一个典型的例子是婴儿学习穿越障碍。他撞上障碍物并摔倒多次,直到他学会只要有障碍,他就需要越过它。
他在小时候学骑自行车或成年后学开车时也面临同样的挑战。并非所有的事情都是别人教的。很多事情只需要从过去的错误中学习。我们倾向于根据自己的经验,列出应该做的事情和不应该做的事情的清单。
什么是机器学习?
在回答“什么是机器学习?”这个问题之前,还有更基本的问题:
- 机器真的会学习吗?
- 如果会,它们是如何学习的?
形式化机器学习的定义非常重要。这本身将解决第一个问题,即机器是否真的会学习。定义机器学习有多种方式。但可能最相关、最简洁和最普遍接受的方式是卡内基梅隆大学计算机科学学院机器学习系教授Tom M. Mitchell提出的方式。Tom M:
如果一个计算机程序在某类任务T和性能指标P中的表现随着经验E的提高而提高,那么我们就说这个计算机程序从经验E中学习了。
这本质上意味着,如果机器能够通过执行某项任务来积累经验,并在将来执行类似任务时提高其性能,那么就可以认为机器在学习。
当我们谈论过去的经验时,它指的是与任务相关的过去数据。这些数据是从某个来源输入到机器的。
在学习下跳棋的背景下,E代表玩游戏的经验,T代表下跳棋的任务,P是通过玩家获胜游戏的百分比来表示的绩效指标。
相同的映射可以应用于任何其他机器学习问题,例如图像分类问题。
在图像分类的背景下,E表示具有标签或指定类别的图像的过去数据(例如,图像是属于“猫”类、“狗”类还是“大象”类等),T 是将类别分配给新的未标记图像的任务,P是通过正确分类的图像百分比来表示的性能指标。
机器如何学习?
机器学习的基本过程可以分为三个部分。
- 输入数据:过去的数据或信息被用作未来决策的基础
- 抽象:输入数据通过底层算法以更广泛的方式表示
- 泛化:抽象的表示被泛化以形成决策框架
让我们从人类学习过程的角度来看待事物,并尝试更清楚地理解机器学习过程。考虑从课堂和书籍中学习以及准备考试的典型过程的情况。许多学生倾向于尝试记住尽可能多的东西。当学习范围不是那么广泛时,这可能很有效。然而,随着范围越来越广,考试中的问题越来越复杂,记忆的策略就不再有效了。
我们看到,人类学习的案例是,仅仅通过出色的记忆力和完美的回忆,学生只能在一定阶段内取得好成绩。除此之外,还需要采用更好的学习策略:
- 能够处理大量的主题内容以及记忆相关问题
- 能够回答没有学到直接答案的问题
一个好的选择是在浩瀚的知识库中找出关键点或想法。例如,广阔的知识库可能包括所有活着的动物及其特征,例如它们是生活在陆地还是水中,它们是否产卵,它们是否有鳞片或毛皮或没有毛皮等。对于任何学生来说,记住所有活着的动物的特征都是一项艰巨的任务。最好是画出一个关于所有活着的动物所属的基本群体的概念,以及定义每个基本群体的特征:
- 无脊椎动物:没有脊椎和骨骼,如蠕虫、昆虫等。
- 脊椎动物
- 鱼类:始终生活在水中并产卵
- 两栖动物:半水生,即可能生活在水中或陆地中;皮肤光滑;产卵
- 爬行动物:半水生,如两栖动物;皮肤有鳞;产卵;冷血动物
- 鸟类:可以飞;产卵;温血动物
- 哺乳动物:有毛发或皮毛;用乳汁喂养幼崽;温血动物
转向机器学习范式,可以从数据输入中获得大量知识。然而,不是全部使用,而是从输入数据中绘制概念图。这只不过是机器执行的知识抽象。最后,从输入数据中抽象出的映射可以用于得出关键结论。
例如,
- 如果给定一个动物的群体,就可以自动理解其特征。
- 相反,如果给定一种未知动物的特征,就可以对其所属的动物群体得出明确的结论。这是机器学习背景下的泛化。
抽象(Abstraction)
在机器学习过程中,知识以输入数据的形式输入。然而,数据不能以原始形状和形式使用。正如我们在上面的例子中看到的,抽象有助于根据输入数据得出概念图。这个图,或者机器学习范式中的模型,是原始数据的总结性知识表示。该模型可以是以下任何一种形式:
- 计算块,如if/else规则
- 数学方程式
- 特定数据结构,如树或图
- 类似观察的逻辑分组
针对特定学习问题选择模型是一项人类任务,它基于多个方面,其中一些方面如下所列:
- 要解决的问题类型:问题是否与预测或预报、趋势分析、理解不同部分或对象组等有关。
- 输入数据的性质:输入数据的详尽程度、数据是否在许多字段中没有值、数据类型等。
- 问题领域:问题是否处于数据输入率高且需要立即推理的关键领域,例如银行领域的欺诈检测问题。
一旦选择了模型,下一个任务就是根据输入数据拟合模型。让我们通过一个例子来理解这一点。
如果模型由数学方程表示,例如\(y=c_1+c_2x\),则根据输入数据,我们必须找出\(c_1\)和\(c_2\)的值。否则,方程(或模型)就毫无用处。因此,在这种情况下,拟合模型意味着找到方程或模型的未知系数或常数的值。
根据输入数据拟合模型的过程称为训练或学习。此外,最终确定模型所依据的输入数据称为训练数据。
泛化(Generalization)
机器学习过程的第一部分是抽象,即以模型的形式从输入数据中抽象出知识。然而,这个抽象过程,或者说训练模型,只是机器学习的一部分。另一个关键部分是将抽象的知识调整为可用于未来决策的形式。这是作为泛化的一部分实现的。
该模型是基于一组有限的数据进行训练的,这些数据可能具有一组有限的特征。但是,当我们想应用该模型对一组未知数据(通常称为测试数据)进行决策时,我们可能会遇到两个问题:
- 训练后的模型与训练数据过于吻合,因此可能无法反映实际趋势。
- 测试数据具有训练数据显然未知的某些特征。
因此,我们存在无法做出正确决策的风险——这显然是因为某些假设在现实中可能并不正确。但就像机器一样,在无法进行精确的理性决策的情况下,人类在基于直觉做出决策时也会犯同样的错误。
机器学习的类型
机器学习可分为三大类:
- 监督学习 - 也称为预测学习。机器根据类似物体的先前类别相关信息预测未知物体的类别。
- 无监督学习 - 也称为描述学习。机器通过将类似物体归为一组来发现未知物体中的模式。
- 强化学习 - 机器学习自行行动以实现既定目标。
监督学习
监督学习的主要动机是从过去的信息中学习。那么,机器需要什么样的过去信息来进行监督学习呢?它是有关机器必须执行的任务的信息。在机器学习的定义中,这些过去的信息就是经验。让我们试着用一个例子来理解它。
假设一台机器正在获取不同物体的图像作为输入,任务是根据物体的形状或颜色来区分图像。如果是按形状,则需要将圆形物体的图像与三角形物体的图像分开,等等。如果需要根据颜色进行区分,则需要将蓝色物体的图像与绿色物体的图像分开。
但是机器如何知道什么是圆形或三角形?同样,机器如何根据物体的颜色是蓝色还是绿色来区分物体的图像?机器很像一个小孩,在开始执行任务之前,父母或成人需要指导他有关形状和颜色的基本信息。机器需要向其提供基本信息。这种基本输入或机器学习范式中的经验以训练数据的形式提供。训练数据是有关特定任务的过去信息。在图像分离问题中,训练数据将包含有关多幅图像的不同方面或特征的过去数据,以及有关图像是圆形还是三角形、蓝色还是绿色的标记。该标记称为标签,在监督学习的情况下,我们说训练数据是带标签的。

监督学习的一些例子是:
- 预测游戏结果
- 预测肿瘤是恶性还是良性
- 预测房地产、股票等的价格
- 对文本进行分类,例如将一组电子邮件分类为垃圾邮件或非垃圾邮件
现在,让我们考虑上述两个例子,比如“预测肿瘤是恶性还是良性”和“预测房地产价格”。
这两个问题的本质是否相同?答案是否定的。
虽然它们都是预测问题,但在一种情况下,我们试图预测未知数据属于哪个类别或类,而在另一种情况下,我们试图预测真实值而不是类。
当我们尝试预测分类变量时,该问题称为分类问题。而当我们尝试预测实值变量时,该问题属于回归类别。
让我们尝试更详细地了解监督学习的这两个领域,即分类和回归。
分类
让我们讨论一下如何根据形状分离物体的图像。
如果图像是圆形物体,则将其归入一个类别,而如果图像是三角形物体,则将其归入另一个类别。机器应该将未知类别的图像(在机器学习中也称为测试数据)归入哪个类别,取决于它从过去的数据(我们称之为训练数据)中获得的信息。
由于训练数据为每个图像定义了一个标签或类别,因此机器必须将新图像或测试数据映射到与其相似的一组图像,并为测试数据分配相同的标签或类别。
因此,我们观察到整个问题围绕着根据训练数据赋予的标签或类别或类别信息为测试数据分配标签或类别或类别。由于目标是分配类别标签,因此这种类型的问题称为分类问题。下图描述了分类的典型过程。
总之,分类是一种监督学习,其中根据训练数据提供的信息预测测试数据的目标变量(分类变量)。目标分类变量称为类。
一些典型的分类问题包括:
- 图像分类
- 疾病预测
- 比赛胜负预测
- 地震、洪水等自然灾害预测
- 手写识别
回归
在回归中,目标是预测数值(实值)变量,如房地产或股票价格、温度、考试成绩、销售收入等。底层预测变量和目标变量本质上是连续的。
对于线性回归,使用最小二乘法的统计概念,在预测变量和目标变量之间建立直线关系。
在简单线性回归的情况下,只有一个预测变量,而在多元线性回归的情况下,模型中可以包含多个预测变量。
让我们以销售经理的年度预算工作为例。他们必须根据前几年的销售数据和投入的投资情况,对下一年的销售进行预测。显然,与过去相关的数据以及要预测的数据本质上都是连续的。在基本方法中,可以应用一个简单的线性回归模型,以投资作为预测变量,以销售收入作为目标变量。
下图显示了一个典型的简单回归模型,其中回归线是根据目标变量(即萼片长度)的值相对于预测变量(即花瓣长度)的不同值拟合的。
回归的典型应用包括: - 零售业需求预测 - 管理人员销售预测 - 房地产价格预测 - 经济学增长预测 - 教育学招生人数预测
无监督学习
与监督学习不同,无监督学习没有标记的训练数据可供学习,也无法进行预测。无监督学习的目标是将数据集作为输入,并尝试在数据元素或记录中找到自然分组或模式。因此,无监督学习通常被称为描述性学习,无监督学习的过程被称为模式发现或知识发现。
无监督学习的一个关键应用是客户细分。聚类是无监督学习的主要类型。它旨在将相似的对象分组或组织在一起。因此,属于同一簇的对象彼此非常相似,而属于不同簇的对象则非常不同。因此,聚类的目标是发现未标记数据的内在分组并形成簇,如下图所示。

不同的相似性度量可用于聚类。最常用的相似性度量之一是距离。如果两个数据点之间的距离较小,则它们被视为同一簇的一部分。同样,如果数据点之间的距离较大,则这些项目通常不属于同一簇。这也称为基于距离的聚类。
除了对数据进行聚类并从中获取汇总视图之外,无监督学习的另一种变体是关联分析。作为关联分析的一部分,可以识别数据元素之间的关联。让我们尝试在如下所示的市场篮子分析背景下理解关联分析。从杂货店过去的交易数据中可以观察到,大多数购买了商品A的顾客也购买了商品B和商品C,或者至少购买了其中一种。这意味着“购买商品A”事件与“购买商品B”或“购买商品C”事件之间存在很强的关联。
识别这些类型的关联是关联分析的目标。关联分析的应用包括购物篮分析和推荐等。


强化学习
我们看到过婴儿在没有任何先验知识的情况下学会走路。我们常常想知道他们到底是怎么做到的。他们走路的方式相对简单。
首先,他们会注意到周围有人在走动,例如父母或周围的任何人。他们明白,每迈出一步,必须用一条腿。在走路时,有时他们会摔倒,撞到障碍物,而其他时候,他们能够顺利行走,避开颠簸的障碍物。当他们能够克服障碍行走时,他们的父母会欣喜若狂,并大声鼓掌或可能是巧克力来赞赏婴儿。当他们在绕过障碍物时摔倒时,显然他们的父母不会鼓掌或送巧克力。慢慢地,婴儿会从错误中吸取教训,能够轻松地走路。
同样,机器也经常学习自主完成任务。让我们试着以孩子学走路为例来理解。试图实现的动作是走路,孩子是代理,孩子试图走路的有障碍的地方是环境。它试图提高执行任务的表现。当子任务成功完成时,会给予奖励。当子任务执行不正确时,显然不会给予奖励。这种情况会一直持续到他能够完成整个任务为止。这个学习过程称为强化学习。下图显示了强化学习的高级过程。

强化学习的一个当代例子是自动驾驶汽车。它需要处理的关键信息是不同路段的速度和限速、交通状况、道路状况、天气状况等。需要处理的任务包括启动/停止、加速/减速、左转/右转等。
关于强化学习的更多细节不在本课程的讨论范围之内,如果有兴趣,请自行在网上搜索阅读相关资料。
机器学习的应用
只要有大量的过去数据,就可以使用机器学习从数据中获取见解。尽管机器学习在每个业务领域都以多种形式采用,但我们在下面介绍了三个主要领域,只是为了让您了解可以使用机器学习执行哪些类型的操作。
银行和金融
在银行业,欺诈交易(尤其是与信用卡相关的交易)极为普遍。由于交易量和速度极高,全球几乎所有领先银行都实施了高性能机器学习解决方案。这些模型实时运行,即在发生欺诈交易时立即发现并阻止。这有助于避免解决纠纷时的许多操作麻烦。
一家银行的客户经常会收到其他竞争银行提供的丰厚优惠。这些银行向客户提供更高的银行利息、更低的贷款处理费、零余额储蓄账户、无透支罚款等优惠,目的是让客户转向竞争银行。此外,有时客户会因为银行服务质量差而失去动力,转而选择竞争银行。机器学习有助于防止或至少减少客户流失。描述性学习和预测性学习都可用于减少客户流失。
使用描述性学习,可以发现客户流失率最高的特定问题区域,即特定银行、特定区域或特定类型的产品(如汽车贷款)。显然,这些都是问题区域,需要进一步调查以找到并解决根本原因。使用预测性学习,可以识别可能很快离开银行的脆弱客户群。可以采取适当的措施确保客户留下来。
保险
保险行业极其依赖数据。因此,机器学习在保险行业中得到广泛应用。保险行业使用机器学习的两个主要领域是新客户入职期间的风险预测和索赔管理。
在客户入职期间,需要根据过去的信息预测新客户的风险状况。根据预测的风险量,为潜在客户生成报价。当客户索赔需要解决时,会考虑与历史索赔相关的过去信息以及理赔员记录,以预测索赔是否存在欺诈的可能性。除了与特定客户相关的过去信息外,还会考虑与类似客户(即属于同一地理位置、年龄组、种族等的客户)相关的信息来制定模型。
医疗保健
可穿戴设备数据是应用机器学习的丰富来源,可实时预测人的健康状况。如果学习模型预测到某些健康问题,则会立即提醒该人采取预防措施。如果出现某些极端问题,则可以向该人附近的医生或医疗保健提供者发出警报。
假设一位老人在他家附近的公园晨练。突然,在行走过程中,他的血压突然升高到一定限度以上,可穿戴设备会跟踪这一情况。可穿戴设备的数据被发送到远程服务器,机器学习算法会不断分析流数据。它还记录了老人和同龄人的历史。该模型预测,如果不立即采取行动,将会导致死亡。可以向老人发出警报,要求他立即停止行走并休息。此外,还可以提醒医生和医疗保健提供者随时待命。
机器学习和计算机视觉在医学成像疾病诊断中也发挥着至关重要的作用。
机器学习领域最先进的语言/工具
与不同机器学习任务相关的算法是众所周知的,可以使用任何语言/平台实现。它可以使用Java平台或C/C++语言实现。然而,有些语言和工具是专门为实现机器学习而开发的。下面列出了其中使用最广泛的几种。
Python
Python是最流行的开源编程语言之一,被机器学习社区广泛采用。
Python拥有非常强大的库,用于高级数学功能、算法和数学工具以及数值绘图。基于这些库,有一个名为scikit-learn的机器学习库,其中嵌入了各种分类、回归和聚类算法。
R
R是一种用于统计计算和数据分析的语言。它是一种开源语言,在学术界和业界非常流行,尤其是在统计学家和数据挖掘人员中。
R是一种非常简单的编程语言,拥有大量可用于机器学习不同阶段的库。
MATLAB
MATLAB(矩阵实验室)是一款获得许可的商业软件,为广泛的数值计算提供强大的支持。MATLAB在工业界和学术界拥有庞大的用户群。MATLAB由MathWorks开发。作为专有软件,MATLAB的开发更加专业,测试严格,文档齐全。
MATLAB还广泛支持统计函数,并内置了大量机器学习算法。它还能够通过集群和云上的并行处理来扩展大型数据集。
机器学习中的问题
机器学习是一个相对较新且仍在发展的领域。此外,各国对机器学习工具和技术的研究水平和使用方式也存在很大差异。不同国家的法律法规、文化背景、人们的情感成熟度也大不相同。所有这些因素使得机器学习的使用以及机器学习使用中出现的问题都大不相同。
机器学习引发的最大担忧和问题与隐私及其侵犯有关。学习的主要重点是分析过去和当前的数据,并从数据中得出见解。这种见解可能与人有关,而揭示的事实可能足够私密,可以保密。此外,不同的人在分享信息方面有不同的偏好。虽然有些人可能愿意公开分享一定程度的信息,但有些人可能不想与所有朋友分享,而只限于家人。有些人在Facebook等社交平台上与所有人分享,而另一些人则不会,或者即使分享,也只限于朋友。当使用这些信息实施机器学习算法时,人们可能会无意中感到不安。例如,如果有一种学习算法可以进行基于偏好的客户细分,并且分析的输出用于发送有针对性的营销活动,那么它将伤害人们的情感,实际上弊大于利。
即使没有侵犯隐私,基于机器学习采取的行动也可能产生不利影响。让我们以竞选活动前进行的知识发现练习为例。如果某个特定地区显示出种族多数或某个人口因素的偏差,而竞选宣传中传达的信息考虑到了这一点,那么它实际上可能会让选民感到不安并导致不利结果。
因此,在应用机器学习之前,一个非常关键的考虑是,在使用机器学习的任何结果之前,应该进行适当的人为判断。只有这样,做出的决定才会有益,也不会产生任何不利影响。
全 文 翻 译
依托大的,还好我这堂早八翘了睡觉,跟我毕业论文有的一拼。