机器学习:概述

机器学习的定义

A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P if its performance at tasks in T, as measured by P, improves with experience E.

如果一个计算机程序在某类任务T上的性能P通过经验E得到了提升,那么就说关于T和P,该程序学习了经验E。

—— Tom Mitchell《Machine Learning》

如果说计算机科学是研究“算法”的学科,那么可以说机器学习是研究“学习算法”(从数据中产生模型的算法)的学科。

从广义上来说,机器学习是一种能够赋予机器学习的能力以此让它完成直接编程无法完成的功能的方法。但从实践的意义上来说,机器学习是一种通过利用数据,训练出模型,然后使用模型预测的一种方法。

机器学习的范围

模式识别(Pattern Recognition)

模式识别 = 机器学习

模式识别源自工业界,而机器学习来自于计算机学科。不过,它们中的活动可以被视为同一个领域的两个方面。
——《Pattern Recognition And Machine Learning》

机器学习的目标是发现数据中的模式和关系并予以应用。

数据挖掘(Data mining)

数据挖掘 = 机器学习 + 数据库

Data mining is the analysis step of the “knowledge discovery in databases.

统计学习(statistical learning)

统计学习 = 贝叶斯学派机器学习

统计学习是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科。统计学习也称为统计机器学习(statistical machine learning)。
——《统计学习方法》

计算机视觉(Computer vision)

计算机视觉 = 机器学习 + 图像处理

Computer vision is an interdisciplinary field that deals with how computers can be made for gaining high-level understanding from digital images or videos.

语音识别(Speech recognition)

语音识别 = 机器学习 + 语音处理

Speech recognition is the inter-disciplinary sub-field of computational linguistics that develops methodologies and technologies that enables the recognition and translation of spoken language into text by computers.

自然语言处理(Natural language processing)

自然语言处理 = 机器学习 + 文本处理

Natural language processing (NLP) is a field of computer science, artificial intelligence and computational linguistics concerned with the interactions between computers and human (natural) languages, and, in particular, concerned with programming computers to fruitfully process large natural language corpora.

人工智能(Artificial intelligence)

Artificial intelligence(AI,also machine intelligence, MI) is intelligence exhibited by machines, rather than humans or other animals(natural intelligence,NI).

狭义的人工智能是指让机器获取认知/学习的能力,机器可以不断地通过数据来改善自身的性能。广义的人工智能包括狭义人工智能、人工情感与人工意志三个方面。
—— 西部世界

生命本身就是不断处理数据的过程,生物本身就是算法。
—— 尤瓦尔•赫拉利《未来简史》

人也不过是一台有灵魂的机器而已。
—— 丹尼尔·丹尼特《意识的解释》

深度学习(deep learning)

深度学习 = 连接学派机器学习

深度学习是机器学习拉出的分支,它试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。深度学习是对神经网络的“品牌重塑”。

机器学习的工作方式

①选择数据:将你的数据分成三组:训练数据、验证数据和测试数据
②模型数据:使用训练数据来构建使用相关特征的模型
③验证模型:使用你的验证数据来验证你的模型
④测试模型:使用你的测试数据检查被验证的模型的表现
⑤使用模型:使用完全训练好的模型在新数据上做预测
⑥调优模型:使用更多数据、不同的特征或调整过的参数来提升算法的性能表现

机器学习对比传统编程

①传统编程:软件工程师编写程序来解决问题。首先存在一些数据→为了解决一个问题,软件工程师编写一个流程来告诉机器应该怎样做→计算机遵照这一流程执行,然后得出结果
②统计学:分析师比较变量之间的关系
③机器学习:数据科学家使用训练数据集来教计算机应该怎么做,然后系统执行该任务。首先存在大数据→机器会学习使用训练数据集来进行分类,调节特定的算法来实现目标分类→该计算机可学习识别数据中的关系、趋势和模式
④智能应用:智能应用使用人工智能所得到的结果,如图是一个精准农业的应用案例示意,该应用基于无人机所收集到的数据

机器学习的优势

  • 精确:机器学习是数据驱动的决策系统,随着数据增多,精确性也随之提高
  • 迅速:机器学习可以在新数据进入的几毫秒内产生结果,允许系统做出实时反应
  • 自动化:机器学习可以自动学习新的模式,用户可以把机器学习直接嵌入到自动工作流中
  • 规模化:机器学习可以很容易地处理数据增长问题,有些机器学习可以使用云计算处理大规模数据
  • 可自定义:许多数据驱动的问题可用机器学习解决,机器学习模型通过自己的数据构建,并可用任何评价标准来进行优化

机器学习的困难

  • 获取可用形式的数据:数据科学家80%的时间花费在数据准备上,当前商业捕获的数据比任何以往时候都要多,而且这些数据往往是业务处理的废弃物,从这些“废弃物”中提取有用数据是一件非常繁琐的工作
  • 对问题进行公式化表示,以便于应用机器学习并产生可操作和度量的结果
  • 选择算法及如何应用:将原始数据转化为可预测的特征,选择合适的机器学习算法
  • 过拟合:如果一个模型非常适合训练数据,很可能对新数据不能很好地作出预测

机器学习的发展

机器学习中的五大流派

几十年来,人工智能研究者的各个「部落」一直以来都在彼此争夺主导权,现在这些部落开始联合起来,因为合作和算法融合是实现真正通用人工智能(AGI)的唯一方式。

学派 核心理念 主算法 灵感来源
符号学派 使用符号、规则和逻辑来表征知识和进行逻辑推理 规则/决策树 逻辑学
贝叶斯学派 获取发生的可能性来进行概率推理 贝叶斯/马尔科夫 统计学
连接学派 使用概率矩阵和加权神经元来动态地识别和归纳模式 反向传播/神经网络 神经科学
进化学派 生成变化,然后为特定目标获取其中最优的 基因编程 遗传学
类推学派 根据约束条件来优化函数(尽可能走到更高,但同时不要离开道路) 支持向量机 数学最优化

机器学习的历史演化阶段

时间 1980s 1990-2000 2000-2010s
主导学派 符号学派 贝叶斯学派 联结学派
架构 服务器或大型机 小型服务器集群 云服务器
主导理论 知识工程 概率论 神经科学和概率
优势 决策支持系统 可扩展的对比 在图像和语音识别、情感分析领域更加准确

机器学习的未来发展趋势

时间 Late 2020s 2020s+ 2040s+
主流学派 连接学派+符号学派 联结主义+符号主义+贝叶斯+…… 算法融合
架构 云计算 云计算和雾计算 无处不在的服务器
主导理论 记忆神经网络、大规模集成、基于知识的推理 通过神经网络来感知、通过规则来决策 最佳组合的元学习
场景 简单问答系统 简单的感知-推理-行动 基于通过多种学习方式获得的知识或经验采取行动或做出回答

机器学习算法

你应该使用哪种机器学习算法,这很大程度上依赖于可用数据的特征和数量以及你的训练目标。不要使用最复杂的算法,除非其结果值得付出昂贵的开销和资源。这里给出了一些最常见的算法,按使用简单程度排序。

决策树(Decision Tree)

支持向量机(Support Vector Machine)

  • 原理:基于超平面(hyperplane),支持向量机可以对数据群进行分类。
  • 优点:支持向量机擅长在变量 X 与其它变量之间进行二元分类操作,无论其关系是否是线性的
  • 场景举例:新闻分类、手写识别。
  • 扩展阅读:《干货 | 详解支持向量机(附学习资源)》

回归(Regression)

  • 原理:回归可以勾画出因变量与一个或多个因变量之间的状态关系。在这个例子中,将垃圾邮件和非垃圾邮件进行了区分。
  • 优点:回归可用于识别变量之间的连续关系,即便这个关系不是非常明显
  • 场景举例:路面交通流量分析、邮件过滤

朴素贝叶斯(Naive Bayes Classification)

  • 原理:朴素贝叶斯分类器用于计算可能条件的分支概率。每个独立的特征都是「朴素」或条件独立的,因此它们不会影响别的对象。
  • 优点:对于在小数据集上有显著特征的相关对象,朴素贝叶斯方法可对其进行快速分类
  • 场景举例:情感分析、消费者分类

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

  • 原理:显马尔可夫过程是完全确定性的——一个给定的状态经常会伴随另一个状态。交通信号灯就是一个例子。相反,隐马尔可夫模型通过分析可见数据来计算隐藏状态的发生。随后,借助隐藏状态分析,隐马尔可夫模型可以估计可能的未来观察模式。在本例中,高或低气压的概率(这是隐藏状态)可用于预测晴天、雨天、多云天的概率。
  • 优点:容许数据的变化性,适用于识别(recognition)和预测操作
  • 场景举例:面部表情分析、气象预测

随机森林(Random forest)

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

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

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

  • 扩展阅读:《教程 | 从头开始:用 Python 实现随机森林算法》

循环神经网络(Recurrent neural network)

  • 原理:在任意神经网络中,每个神经元都通过 1 个或多个隐藏层来将很多输入转换成单个输出。循环神经网络(RNN)会将值进一步逐层传递,让逐层学习成为可能。换句话说,RNN 存在某种形式的记忆,允许先前的输出去影响后面的输入。
  • 优点:循环神经网络在存在大量有序信息时具有预测能力
  • 场景举例:图像分类与字幕添加、政治情感分析

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

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

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

  • 扩展阅读:

  • 《深度 | LSTM 和递归网络基础教程》
  • 《干货 | 图解 LSTM 神经网络架构及其 11 种变体(附论文)》

卷积神经网络(convolutional neural network)

坚持原创技术分享,您的支持将鼓励我继续创作!