APP下载

掌握这十大机器学习方法 你就是圈子里最靓的崽

消息来源:baojiabao.com 作者: 发布时间:2024-06-02

报价宝综合消息掌握这十大机器学习方法 你就是圈子里最靓的崽

全文共5830字,预计学习时长10分钟

不论是在科研中还是在工业领域,机器学习都是个热门话题,新的机器学习方法也层出不穷。机器学习发展迅速又很复杂。对初学者而言,紧跟其发展无疑十分困难,即便是对专家们来说也非易事。

为揭开机器学习的神秘面纱,帮助新手学习该领域的核心概念,本文会介绍十种不同的机器学习方法,包括简单描述和视觉化等,并一一举例说明。

机器学习算法(模型)是个表示某一问题(常为商业问题)所包含资料资讯的数学表示式。设计算法是为了分析资料从而获取有用资讯。比如,线上零售商想要预测下一季度的销售额时,就可能会用到机器学习算法,根据之前的销售额和其他相关资料来进行预测。同样,风车制造商可以监管重要的装置,他们给算法提供视讯资料使其在训练之后能够识别装置上的裂缝。

本文介绍的十种机器学习方法可以让你对机器学习有一个整体的了解,帮助你打下相关的知识和技能基础:

1. 回归

2. 分类

3. 聚类

4. 降维

5. 整合方法

6. 神经网络与深度学习

7. 迁移学习

8. 强化学习

9. 自然语言处理

10. 词嵌入

最后,在介绍这些方法之前,还是先来区分一下监督学习和无监督学习这两种机器学习类别吧。

监督学习用于在已有资料的情况下进行预测或解释,即通过先前输入和输出的资料来预测基于新资料的输出。比如,监督机器学习技术可用来帮助某服务企业预测未来一个月订购该服务的新使用者量。

相比之下,无监督机器学习是在不使用目标变数进行预测的情况下,对资料点进行关联和分组。换言之,它根据特征评估资料,并根据这些特征,将相似的资料聚集在一起。例如,无监督学习技术可用来帮助零售商对具有相似特征的产品进行分类,而且无需事先指定具体特征是什么。

1. 回归

回归是一种监督机器学习方法,在先前资料的基础上预测或解释特定数值。例如要想知道某房产的价值,可根据与之相似房产的定价来预测。

线性回归是最简单的回归方法,用直线方程(y = m * x + b)来模拟资料集。通过计算直线的位置和斜率得到具有许多资料对(x,y)的线性回归模型,在该直线上,所有资料点到它的距离之和最小。换言之,计算的是最接近资料中观测值的那条线的斜率(m)和y截距(b)。

接着再来看一些具体的线性回归例子。将建筑物的年龄、楼层数、面积(平方英尺)和墙上插入式装置的数量这些资料汇总在一起,用线性回归方法来预测该建筑物的耗能情况(以千瓦时为单位)。由于有多种输入值(年龄,面积等),可以选择多变数线性回归方法,原理和简单的一元线性回归一样,但在这种情况下,由于有多个变数,最终创建出来的“线”是多维的。

下图显示了线性回归模型与建筑物实际能耗的吻合程度。如果已知某建筑物的各项特征(年龄、面积等),但耗能情况未知,就可以用拟合线来对其进行估算。

注意,线性回归还可以用来估计各个因素对于最终耗能情况的影响程度。例如,有了公式,就可以确定建筑物的年龄、面积或高度是否为最重要的影响因素。

回归技术有简单的(线性回归),也有复杂的(正则化线性回归、多项式回归、决策树和随机森林回归、神经网络等),你大可不必感到迷惑,可以先从简单的线性回归着手,掌握其中的技术,然后继续学习较复杂的型别。

2. 分类

分类是另一种监督机器学习方法,这一方法对某个类别值进行预测或解释。比如可以用分类的方法来预测线上顾客是否会购买某一产品。输出可分为是或否,即购买者或非购买者。但分类并不限于两个选择。例如,可通过分类来看某一影象中是否有汽车或卡车。在这种情况下,输出就有3个不同值,分别为1)影象包含汽车、2)影象包含卡车或3)影象既不包含汽车也不包含卡车。

逻辑回归是分类算法中最简单的一类,这听起来很像一个回归方法,其实不然。逻辑回归是基于一个或多个输入来估计某一事件发生概率的一种算法。

例如,逻辑回归可基于学生的两次考试分数来估计该生被某一大学录取的概率。由于估计值是概率,输出只能是介于0和1之间的数字,其中1表示完全确定。对该生而言,如果估计概率大于0.5,预测结果就是:他(她)能被录取,如果估计概率小于0.5,预测结果则为:他(她)不会被录取。

下图显示了先前学生的分数以及他们最终的录取结果。用逻辑回归可绘制出一条代表决策边界的线。

逻辑回归是一个线性模型,因此是新手学习分类方法入门的不错选择。随着不断的进步,就可以深入研究像决策树、随机森林、支援向量机和神经网络这些非线性分类了。

3. 聚类

聚类方法的目标是对具有相似特征的观察值进行分组或聚类,是一种无监督机器学习方法。聚类方法不借助输出资讯进行训练,而是让算法定义输出。在这一方法中,只能使用视觉化来检验解决方案的质量。

最流行的聚类方法是K均值聚类,其中“K”表示使用者选择建立的簇的数量。(注意,选取K值时有多种技术可供选择,比如肘部法则。)

大体上,K均值聚类法对资料点的处理步骤包括:

1. 随机选择资料中的K个中心。

2. 将每个资料点分配给最接近的随机建立的中心。

3. 重新计算每个簇的中心。

4. 如果中心没有变化(或变化很小),就结束此过程。否则,返回至第2步。(如果中心持续更改,为防止最终形成无限循环,要提前设定最大迭代次数。)

下图将K均值聚类法应用于建筑物的资料集。图中的每一列都表明了每栋建筑的效率。这四项测量的量涉及空调、插入式装置(微波炉,冰箱等)、家用燃气和可燃气体。选择K值为2进行聚类,这样就很容易地将其中一个聚类解释为高效建筑群,另一个则为低效建筑群。左图中可以看到建筑物的位置,右图可以看到两个输入值:插入式装置和可燃气体。

聚类方法中会涉及到一些非常有用的算法,比如具有噪声的基于密度的聚类方法(DBSCAN)、均值漂移聚类、聚合层次聚类、基于高斯混合模型的期望最大化聚类等。

4. 降维

顾名思义,降维可用来删除资料集中最不重要的资料。实践中常会遇到包含数百甚至数千列(也称为特征)的资料集,因此减少总量至关重要。例如,影象中数千个画素中并不是所有的都要分析;或是在制造过程中要测试微芯片时,如果对每个芯片都进行测试也许需要数千次测试,但其实其中很多芯片提供的资讯是多余的。在这些情况下,就需要运用降维算法以便对资料集进行管理。

主成分分析(PCA)是最常用的降维方法,通过找出最大化资料线性变化的新向量来减小特征空间的维数。在资料的线性相关性很强时,主成分分析法可以显著减小资料的维度,且不会丢失太多资讯。(其实,还可以衡量资讯丢失的实际程度并进行相应调整。)

t-分布邻域嵌入(t-SNE)是另一种常用的方法,可用来减少非线性维数。t-分布邻域嵌入通常用于资料视觉化,但也可以用于减少特征空间和聚类等机器学习任务。

下图显示了手写数字的MNIST数据库分析。MNIST包含数千个从0到9的数字影象,研究人员以此来测试聚类和分类算法。资料集的每一行是原始影象的向量化版本(大小为28×28 = 784)和每个影象的标签(0,1,2,3,......,9)。注意,因此将维度从784(画素)减至2(视觉化维度)。投影到二维使得能够对高维原始资料集进行视觉化。

5. 整合方法

假设你对市面上的自行车都不满意,打算自己制作一辆,也许会从寻找各个最好的零件开始,然后最终会组装出一辆最好的自行车。

整合方法也是利用这一原理,将几个预测模型(监督式机器学习方法)组合起来从而得到比单个模型能提供的更高质量的预测结果。随机森林算法就是一种集合方法,结合了许多用不同资料集样本训练的决策树。因此,随机森林的预测质量会高于单个决策树的预测质量。

整合方法可理解为一种减小单个机器学习模型的方差和偏差的方法。任何给定的模型在某些条件下可能是准确的,但在其他条件下有可能不准确,因此这种方法十分重要。如果换用另一个模型,相对精度可能会更低。而组合这两个模型,就可以平衡预测的质量。

绝大多数Kaggle竞赛的获胜者都会使用整合方法。最为流行的整合算法有随机森林、XGBoost和LightGBM。

6. 神经网络与深度学习

与线性模型的线性回归和逻辑回归相比,神经网络的目标是通过向模型新增引数层来捕获资料中的非线性模式。下图中,简单神经网络有四个输入,一个带有五个引数的隐藏层和一个输出层。

其实,神经网络的结构十分灵活,可以构建出我们所熟知的的线性回归和逻辑回归。深度学习一词来自具有多个隐藏层的神经网络(见下图),是对各种体系结构的一个概括。

跟上深度学习发展的步伐尤为困难,部分原因在于研究和工业方面投入了大量精力来研究深度学习,使得不断有新方法涌现出来。

为达到最佳效果,深度学习技术需要大量的资料,同时也需要强大的计算能力作为支撑,因为该方法是在大型体系架构中对许多引数进行自我调整。鉴于此,就不难理解为什么深度学习从业者要用配备强大图形处理单元(GPU)功能的计算机了。

深度学习技术在视觉(影象分类)、文字、音讯和视讯领域的应用最为成功。最常见的深度学习软件包有Tensorflow和PyTorch。

7. 迁移学习

假设你是个零售业的资料科学家,已经花了几个月的时间训练高质量模型,用来将影象分为衬衫、T恤和Polo衫这三类。新任务是建一个类似的模型,把服装影象分为牛仔裤、工装裤、休闲裤和正装裤这几类。那么能不能把第一个模型中已建立的知识转移到第二个模型中呢?当然可以,迁移学习可以做到。

迁移学习是指重复使用先前训练的神经网络的一部分,并使其适应类似的新任务。具体来说就是,使用先前任务中训练过的神经网络,可以传输一小部分训练过的图层,并将它们与用于新任务资料训练的几个图层组合在一起。通过新增图层,新的神经网络就能快速学习并适应新的任务。

迁移学习的主要优点是训练神经网络所需的资料较少,这点尤为重要,因为深度学习算法的训练既耗时,(计算资源上)花费又高。而且,通常也很难找到足够的标记资料来供培训使用。

还是回到上文的例子,假设衬衫模型中,你用了一个有20个隐藏层的神经网络,几次尝试后,发现可以迁移其中的18个衬衫模型层,并能把它们与用来训练裤子影象的某个新的引数层相结合。此时,裤子模型将有19个隐藏层。这两个任务的输入和输出不同,但一些概括与两者都有关的资讯如布料、衣服上扣件和形状等方面的引数层可重复使用。

迁移学习正变得越来越流行,现在已经有很多固定的预训练的模型,可以用来完成一些常见的像影象和文字分类的深度学习任务。

8. 强化学习

试想,迷宫中有只老鼠,在试图寻找藏在某处的乳酪。老鼠进迷宫的次数越多,它就越有可能找到乳酪。一开始,老鼠可能会随机走动,但一段时间后,它就能意识到怎样走可以找到乳酪。

老鼠找乳酪的过程反映了使用强化学习来训练系统或游戏的方法。一般来说,强化学习是一种帮助代理从经验中学习的机器学习方法。通过在设定环境中记录操作并使用试错法,强化学习可以最大化累积奖励。在上述示例中,代理是老鼠,环境是迷宫。老鼠的可能操作是:前移、后移、左移或右移,乳酪则是奖励。

如果一个问题几乎没有任何历史资料,就可以选择强化学习方法,因为它不需要事先提供资讯(这一点不同于传统的机器学习方法)。在强化学习框架中,你可以随时了解资料。因此强化学习的应用在游戏方面的成功也就不足为奇了,特别是在国际象棋和围棋这类“完美资讯”型游戏上的应用。在游戏中,可以迅速根据代理和环境的反馈做出调整,从而使模型能够快速学习。强化学习的缺点则是如果问题很复杂,训练时间也许会很长。

IBM的Deep Blue曾在1997年击败了人类最佳国际象棋选手,同样,基于深度学习的算法AlphaGo也于2016年击败了人类最佳围棋选手。目前英国的DeepMind科技公司是深度学习研究的翘楚。

2019年4月,OpenAI Five团队击败了电子竞技Dota 2世界冠军队伍,成为了首个取得此项成就的人工智能团队。Dota 2是一个非常复杂的视讯游戏,OpenAI Five团队之所以选择它,是因为当时没有一种强化学习算法能够在游戏中获胜。 这个击败Dota 2人类冠军队伍的AI团队还开发出了一个可重新定位一个块(可以抓东西)的机器手。

强化学习可以说是一非常强大的人工智能,今后一定会取得更多更大的进步,但同时也应记住这些方法也有局限性。

9. 自然语言处理

世界上很大一部分资料和知识都以人类语言的形式存在着。你能想象在几秒内阅读、理解成千上万的书、文章和部落格吗?显然,计算机还不能完全理解人类语言,但经训练可以完成某些任务。比如可以训练手机自动回复简讯或纠正拼写错的单词,甚至可以教一台机器与人进行简单交谈。

自然语言处理(NLP)本身不是一种机器学习方法,而是一种用于为机器学习准备文字的技术,其应用十分广泛。想像一下:有大量各种格式的文字文件(词语、线上部落格…等),充满了拼写错误、缺少字元和字词多余的问题。目前,由斯坦福大学的研究人员建立的NLTK(自然语言工具包)是使用最为广泛的一种文字处理包。

将文字对映到数字表示,最简单的方法是计算每个文字文件中各个单词的频率。在一个整数矩阵中,每行代表一个文字文件,每列代表一个单词。这种单词频率矩阵通常称为术语频率矩阵(TFM)。在这个基础上,可以用矩阵上的每个条目除以每个词在整个文件集中重要程度的权重,从而得到文字文件的另一种流行矩阵表示。这种方法称为术语频率反向文件频率(TFIDF),通常更适用于机器学习任务。

10. 词嵌入

TFM和TFIDF是文字文件的数字表示,只根据频率和加权频率来表示文字文件。相比之下,词嵌入可以捕获文件中某个词的上下文。根据语境,嵌入可以量化单词之间的相似性,反过来这又方便了对词的算术运算。

Word2Vec是一种基于神经网络的方法,将语料库中的单词对映到了数字向量。然后,这些向量可用来查询同义词、使用单词执行算术运算,或用来表示文字文件(通过获取文件中所有词向量的均值)。比如,假设用一个很大的文字文件来估计单词嵌入,并且“king”、“queen”、“man”和“woman”这四个词也是语料库的一部分,向量(‘word’)是表示单词“word”的数字向量。为了估计向量(‘woman’),可以用向量执行算术运算:

向量(‘king’)+向量(‘woman’)-向量(‘man’)~向量(‘queen’)

有了单词表示,可以计算两个单词的向量表示之间的余弦相似性,以此发现单词之间的相似性。余弦相似性测量的是两个向量的夹角。

机器学习方法可用来计算单词嵌入,但这往往是在顶部应用机器学习算法的前提步骤。例如,假设我们能访问数千名推特使用者的推文,并知道这些使用者中哪些人买了房子。为预测新使用者买房的概率,可以将Word2Vec与逻辑回归结合起来。

你可以训练单词嵌入或使用预训练(迁移学习)单词向量集。若需下载157种不同语言的预训练单词向量,可检视FastText。

留言 点赞 关注

我们一起分享AI学习与发展的干货

欢迎关注全平台AI垂类自媒体 “读芯术”

本文为一点号作者原创,未经授权不得转载

2019-12-04 17:02:00

相关文章