一文读懂机器学习:基本概念、五大流派与九种常见算法

本文主要是介绍一文读懂机器学习:基本概念、五大流派与九种常见算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

15225560cd447a7dd5d2ca677274a227.gif

一、机器学习概览

0354f319d111576814e0d969f716932d.gif

b7bded0bd45c9aa23cd28a2706d2f59d.png

1. 什么是机器学习?

机器通过分析大量数据来进行学习。比如说,不需要通过编程来识别猫或人脸,它们可以通过使用图片来进行训练,从而归纳和识别特定的目标。

2. 机器学习和人工智能的关系

机器学习是一种重在寻找数据中的模式并使用这些模式来做出预测的研究和算法的门类。机器学习是人工智能领域的一部分,并且和知识发现与数据挖掘有所交集。

6e765c8acfb5e53aae7d5725b5d0a8fa.png

3. 机器学习的工作方式

①选择数据: 将你的数据分成三组:训练数据、验证数据和测试数据

②模型数据: 使用训练数据来构建使用相关特征的模型

③验证模型: 使用你的验证数据接入你的模型

④测试模型: 使用你的测试数据检查被验证的模型的表现

⑤使用模型: 使用完全训练好的模型在新数据上做预测

⑥调优模型: 使用更多数据、不同的特征或调整过的参数来提升算法的性能表现

9611fc20af14c4b1fecd5e3c31f27af7.png

4. 机器学习所处的位置

①传统编程: 软件工程师编写程序来解决问题。首先存在一些数据→为了解决一个问题,软件工程师编写一个流程来告诉机器应该怎样做→计算机遵照这一流程执行,然后得出结果

②统计学: 分析师比较变量之间的关系

③机器学习: 数据科学家使用训练数据集来教计算机应该怎么做,然后系统执行该任务。首先存在大数据→机器会学习使用训练数据集来进行分类,调节特定的算法来实现目标分类→该计算机可学习识别数据中的关系、趋势和模式

④智能应用: 智能应用使用人工智能所得到的结果,如图是一个精准农业的应用案例示意,该应用基于无人机所收集到的数据

b77dea9b2855c2d6e727850236375107.png

5. 机器学习的实际应用

机器学习有很多应用场景,这里给出了一些示例,你会怎么使用它?

  • 快速三维地图测绘和建模:要建造一架铁路桥,PwC 的数据科学家和领域专家将机器学习应用到了无人机收集到的数据上。这种组合实现了工作成功中的精准监控和快速反馈。

  • 增强分析以降低风险:为了检测内部交易,PwC 将机器学习和其它分析技术结合了起来,从而开发了更为全面的用户概况,并且获得了对复杂可疑行为的更深度了解。

  • 预测表现最佳的目标:PwC 使用机器学习和其它分析方法来评估 Melbourne Cup 赛场上不同赛马的潜力。

38fb7c4c31b9c44212368d9474e206ba.gif

二、机器学习的演化

aa363614c2a248e0f1ec0090c66d0130.gif

22ad49625660c72cf03d90fa4c50c9d0.png

几十年来,人工智能研究者的各个「部落」一直以来都在彼此争夺主导权,参阅机器之心文章《华盛顿大学教授 Pedro Domingos:机器学习领域五大流派(附演讲 ppt)》。现在是这些部落联合起来的时候了吗?他们也可能不得不这样做,因为合作和算法融合是实现真正通用人工智能(AGI)的唯一方式。这里给出了机器学习方法的演化之路以及未来的可能模样。

1. 五大流派

①符号主义: 使用符号、规则和逻辑来表征知识和进行逻辑推理,最喜欢的算法是:规则和决策树

②贝叶斯派: 获取发生的可能性来进行概率推理,最喜欢的算法是:朴素贝叶斯或马尔可夫

③联结主义: 使用概率矩阵和加权神经元来动态地识别和归纳模式,最喜欢的算法是:神经网络

④进化主义: 生成变化,然后为特定目标获取其中最优的,最喜欢的算法是:遗传算法

⑤Analogizer: 根据约束条件来优化函数(尽可能走到更高,但同时不要离开道路),最喜欢的算法是:支持向量机

5421c8bff6f5e3262dd412bb29d68afa.png

2. 演化的阶段

1980 年代
  • 主导流派:符号主义

  • 架构:服务器或大型机

  • 主导理论:知识工程

  • 基本决策逻辑:决策支持系统,实用性有限

1990 年代到 2000 年
  • 主导流派:贝叶斯

  • 架构:小型服务器集群

  • 主导理论:概率论

  • 分类:可扩展的比较或对比,对许多任务都足够好了

2010 年代早期到中期
  • 主导流派:联结主义

  • 架构:大型服务器农场

  • 主导理论:神经科学和概率

  • 识别:更加精准的图像和声音识别、翻译、情绪分析等

00e45dc2a2940cdc899e3bdd9481c02c.png

3. 这些流派有望合作,并将各自的方法融合到一起

2010 年代末期
  • 主导流派:联结主义+符号主义

  • 架构:许多云

  • 主导理论:记忆神经网络、大规模集成、基于知识的推理

  • 简单的问答:范围狭窄的、领域特定的知识共享

2020 年代+
  • 主导流派:联结主义+符号主义+贝叶斯+……

  • 架构:云计算和雾计算

  • 主导理论:感知的时候有网络,推理和工作的时候有规则

  • 简单感知、推理和行动:有限制的自动化或人机交互

2040 年代+
  • 主导流派:算法融合

  • 架构:无处不在的服务器

  • 主导理论:最佳组合的元学习

  • 感知和响应:基于通过多种学习方式获得的知识或经验采取行动或做出回答

2d3d1054f6db1b4190f04e588247aff2.gif

三、机器学习的算法

cef38a58dd146aaf35d2721330bec0c1.gif

6602d38aff68ead42d8f92fc1d1309f9.png

你应该使用哪种机器学习算法?这在很大程度上依赖于可用数据的性质和数量以及每一个特定用例中你的训练目标。不要使用最复杂的算法,除非其结果值得付出昂贵的开销和资源。这里给出了一些最常见的算法,按使用简单程度排序。更多内容可参阅机器之心的文章《机器学习算法集锦:从贝叶斯到深度学习及各自优缺点》和《经验之谈:如何为你的机器学习问题选择合适的算法?》

1. 决策树(Decision Tree)

在进行逐步应答过程中,典型的决策树分析会使用分层变量或决策节点,例如,可将一个给定用户分类成信用可靠或不可靠。

  • 优点:擅长对人、地点、事物的一系列不同特征、品质、特性进行评估

  • 场景举例:基于规则的信用评估、赛马结果预测

71e9735e93751dd9d5ff4803f5650979.png

2. 支持向量机(Support Vector Machine)

基于超平面(hyperplane),支持向量机可以对数据群进行分类。

  • 优点:支持向量机擅长在变量 X 与其它变量之间进行二元分类操作,无论其关系是否是线性的

  • 场景举例:新闻分类、手写识别。

3. 回归(Regression)

回归可以勾画出因变量与一个或多个因变量之间的状态关系。在这个例子中,将垃圾邮件和非垃圾邮件进行了区分。

  • 优点:回归可用于识别变量之间的连续关系,即便这个关系不是非常明显

  • 场景举例:路面交通流量分析、邮件过滤

0227899316f5821e7a1b42946a063407.png

4. 朴素贝叶斯分类(Naive Bayes Classification)

朴素贝叶斯分类器用于计算可能条件的分支概率。每个独立的特征都是「朴素」或条件独立的,因此它们不会影响别的对象。例如,在一个装有共 5 个黄色和红色小球的罐子里,连续拿到两个黄色小球的概率是多少?从图中最上方分支可见,前后抓取两个黄色小球的概率为 1/10。朴素贝叶斯分类器可以计算多个特征的联合条件概率。

  • 优点:对于在小数据集上有显著特征的相关对象,朴素贝叶斯方法可对其进行快速分类

  • 场景举例:情感分析、消费者分类

5. 隐马尔可夫模型(Hidden Markov model)

显马尔可夫过程是完全确定性的——一个给定的状态经常会伴随另一个状态。交通信号灯就是一个例子。相反,隐马尔可夫模型通过分析可见数据来计算隐藏状态的发生。随后,借助隐藏状态分析,隐马尔可夫模型可以估计可能的未来观察模式。在本例中,高或低气压的概率(这是隐藏状态)可用于预测晴天、雨天、多云天的概率。

  • 优点:容许数据的变化性,适用于识别(recognition)和预测操作

  • 场景举例:面部表情分析、气象预测

8412b37dbfd63cd889c5a85cba12fe76.png

6. 随机森林(Random forest)

随机森林算法通过使用多个带有随机选取的数据子集的树(tree)改善了决策树的精确性。本例在基因表达层面上考察了大量与乳腺癌复发相关的基因,并计算出复发风险。

  • 优点:随机森林方法被证明对大规模数据集和存在大量且有时不相关特征的项(item)来说很有用

  • 场景举例:用户流失分析、风险评估

7. 循环神经网络(Recurrent neural network)

在任意神经网络中,每个神经元都通过 1 个或多个隐藏层来将很多输入转换成单个输出。循环神经网络(RNN)会将值进一步逐层传递,让逐层学习成为可能。换句话说,RNN 存在某种形式的记忆,允许先前的输出去影响后面的输入。

  • 优点:循环神经网络在存在大量有序信息时具有预测能力

  • 场景举例:图像分类与字幕添加、政治情感分析

f204ce88a00e0b505fc9b9abd23aec61.png

8. 长短期记忆(Long short-term memory,LSTM)

与门控循环单元神经网络(gated recurrent unit nerual network):早期的 RNN 形式是会存在损耗的。尽管这些早期循环神经网络只允许留存少量的早期信息,新近的长短期记忆(LSTM)与门控循环单元(GRU)神经网络都有长期与短期的记忆。换句话说,这些新近的 RNN 拥有更好的控制记忆的能力,允许保留早先的值或是当有必要处理很多系列步骤时重置这些值,这避免了「梯度衰减」或逐层传递的值的最终 degradation。LSTM 与 GRU 网络使得我们可以使用被称为「门(gate)」的记忆模块或结构来控制记忆,这种门可以在合适的时候传递或重置值。

  • 优点:长短期记忆和门控循环单元神经网络具备与其它循环神经网络一样的优点,但因为它们有更好的记忆能力,所以更常被使用

  • 场景举例:自然语言处理、翻译

9. 卷积神经网络(convolutional neural network)

卷积是指来自后续层的权重的融合,可用于标记输出层。

  • 优点:当存在非常大型的数据集、大量特征和复杂的分类任务时,卷积神经网络是非常有用的

  • 场景举例:图像识别、文本转语音、药物发现

来源:深度学习冲鸭
著作权归作者所有,仅作学术分享,侵删

觉得还不错就给我一个小小的鼓励吧!

这篇关于一文读懂机器学习:基本概念、五大流派与九种常见算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/183538

相关文章

一文详解Java异常处理你都了解哪些知识

《一文详解Java异常处理你都了解哪些知识》:本文主要介绍Java异常处理的相关资料,包括异常的分类、捕获和处理异常的语法、常见的异常类型以及自定义异常的实现,文中通过代码介绍的非常详细,需要的朋... 目录前言一、什么是异常二、异常的分类2.1 受检异常2.2 非受检异常三、异常处理的语法3.1 try-

SQL中redo log 刷⼊磁盘的常见方法

《SQL中redolog刷⼊磁盘的常见方法》本文主要介绍了SQL中redolog刷⼊磁盘的常见方法,将redolog刷入磁盘的方法确保了数据的持久性和一致性,下面就来具体介绍一下,感兴趣的可以了解... 目录Redo Log 刷入磁盘的方法Redo Log 刷入磁盘的过程代码示例(伪代码)在数据库系统中,r

一文带你搞懂Python中__init__.py到底是什么

《一文带你搞懂Python中__init__.py到底是什么》朋友们,今天我们来聊聊Python里一个低调却至关重要的文件——__init__.py,有些人可能听说过它是“包的标志”,也有人觉得它“没... 目录先搞懂 python 模块(module)Python 包(package)是啥?那么 __in

SQL BETWEEN 的常见用法小结

《SQLBETWEEN的常见用法小结》BETWEEN操作符是SQL中非常有用的工具,它允许你快速选取某个范围内的值,本文给大家介绍SQLBETWEEN的常见用法,感兴趣的朋友一起看看吧... 在SQL中,BETWEEN是一个操作符,用于选取介于两个值之间的数据。它包含这两个边界值。BETWEEN操作符常用

python中各种常见文件的读写操作与类型转换详细指南

《python中各种常见文件的读写操作与类型转换详细指南》这篇文章主要为大家详细介绍了python中各种常见文件(txt,xls,csv,sql,二进制文件)的读写操作与类型转换,感兴趣的小伙伴可以跟... 目录1.文件txt读写标准用法1.1写入文件1.2读取文件2. 二进制文件读取3. 大文件读取3.1

一文详解如何在Python中从字符串中提取部分内容

《一文详解如何在Python中从字符串中提取部分内容》:本文主要介绍如何在Python中从字符串中提取部分内容的相关资料,包括使用正则表达式、Pyparsing库、AST(抽象语法树)、字符串操作... 目录前言解决方案方法一:使用正则表达式方法二:使用 Pyparsing方法三:使用 AST方法四:使用字

C++中初始化二维数组的几种常见方法

《C++中初始化二维数组的几种常见方法》本文详细介绍了在C++中初始化二维数组的不同方式,包括静态初始化、循环、全部为零、部分初始化、std::array和std::vector,以及std::vec... 目录1. 静态初始化2. 使用循环初始化3. 全部初始化为零4. 部分初始化5. 使用 std::a

电脑死机无反应怎么强制重启? 一文读懂方法及注意事项

《电脑死机无反应怎么强制重启?一文读懂方法及注意事项》在日常使用电脑的过程中,我们难免会遇到电脑无法正常启动的情况,本文将详细介绍几种常见的电脑强制开机方法,并探讨在强制开机后应注意的事项,以及如何... 在日常生活和工作中,我们经常会遇到电脑突然无反应的情况,这时候强制重启就成了解决问题的“救命稻草”。那

前端下载文件时如何后端返回的文件流一些常见方法

《前端下载文件时如何后端返回的文件流一些常见方法》:本文主要介绍前端下载文件时如何后端返回的文件流一些常见方法,包括使用Blob和URL.createObjectURL创建下载链接,以及处理带有C... 目录1. 使用 Blob 和 URL.createObjectURL 创建下载链接例子:使用 Blob

openCV中KNN算法的实现

《openCV中KNN算法的实现》KNN算法是一种简单且常用的分类算法,本文主要介绍了openCV中KNN算法的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录KNN算法流程使用OpenCV实现KNNOpenCV 是一个开源的跨平台计算机视觉库,它提供了各