前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >机器学习的基本概念

机器学习的基本概念

作者头像
花落花飞去
发布2018-02-09 17:27:39
1.9K0
发布2018-02-09 17:27:39
举报
文章被收录于专栏:人工智能人工智能

机器学习有哪些基本概念?

我发现,查阅和掌握机器学习基本概念的最佳方法是,回顾机器学习教科书的介绍章节,并观看典型的在线课程视频。

Pedro Domingos是华盛顿大学的一名讲师和教授,专攻机器学习,同时他也是书籍《终极算法:机器学习和人工智能如何重塑世界》的作者。

Domingos有一个免费的机器学习在线课程,课程名为《机器学习》(Machine Learning) 。你可以随时在Coursera观看视频

这篇文章的知识点来自Domingos的机器学习课程的第一周内容,你将了解到我总结的机器学习基本概念。

机器学习的基本概念(图片为摄影师Travis Wise版权所有)
机器学习的基本概念(图片为摄影师Travis Wise版权所有)

机器学习

课程的前半部分是机器学习的基础知识。

什么是机器学习?

为什么我们需要关注机器学习?

机器学习的重大突破将相当于十个微软的价值。 ——微软前主席Bill Gates

机器学习让电脑自己进行编程。如果把编程看作是自动化的,那么机器学习就是让机器自动地控制这种自动化的过程。

我们没有充足的优秀开发人员,编写软件是当前的瓶颈。那么,就让数据代替人去完成这项工作。机器学习可以使编程变得规模化。

  • 传统编程:数据和程序在计算机上运行,并输出结果。
  • 机器学习:数据和输出在计算机上运行,并创建一个程序。这个程序可以用于传统编程。

机器学习就像种田或园艺。算法是种子,数据是营养,你是园丁,而程序就是植物。

传统编程与机器学习的区别
传统编程与机器学习的区别

机器学习的应用

机器学习的示例应用:

  • 网页搜索:按照你最有可能点击的顺序对网页进行排名。
  • 计算生物学:基于已有实验的理性药物设计。
  • 金融:决定给哪些人提供哪种信用卡服务,信用风险评估,和如何决定在哪里投资。
  • 电子商务:预测客户流失,以及判断交易是否是欺诈行为。
  • 太空探索:太空探测器和射电天文学。
  • 机器人技术:如何处理新环境中的不确定性,培养机器人的自主性,以及自动驾驶。
  • 信息提取:通过网络向数据库提出问题。
  • 社交网络:社交关系和行为偏好的相关数据,机器学习从数据中提取有价值信息。
  • 调试:用于计算机科学问题,如调试;含重复性劳动的过程;提示出错之处。

你感兴趣的领域是什么?你如何在该领域使用机器学习呢?

机器学习的关键部分

当前,已有数以万计的机器学习算法,另外,每年还会出现数以百计的新算法。

每个机器学习算法都有三个部分:

  • 表示(Representation):如何用计算机可以处理的语言表示知识。例如,决策树、规则集、基于实例的方法、图模型、神经网络、支持向量机、模型集合等等。
  • 评价(Evaluation):评估候选模型(假设)优劣的方法。例如,准确度、预测和召回、平方误差、似然、后验概率、成本、余量、\rm K-L距离和利润等。
  • 优化(Optimization):得到效果最好的候选模型,也是一个搜索过程。例如,组合优化,凸优化和约束优化。

所有机器学习算法都是这三个部分的组合。他们是理解所有算法的基本框架。

学习的类型

机器学习有四种类型:

  • 监督学习(Supervised learning) :(也称为归纳学习)训练数据包含输出标注。例如,标注一个样本是否为垃圾邮件,这种学习过程是监督学习。
  • 无监督学习(Unsupervised learning):训练数据不包含输出标注,比如聚类。不论监督学习还是无监督学习,很难说哪一个更好,哪一个不好。
  • 半监督学习(Semi-supervised learning):部分训练数据有输出标注。
  • 强化学习(Reinforcement learning):从一系列行动中获得反馈并加以改进,比如AI(人工智能)。它是最有野心的学习类型。

大多数机器学习算法所使用的是监督学习,它最为成熟,且被研究得最多。监督学习比无监督学习更加容易。

归纳学习(Inductive Learning)就是我们给出数据x和函数的输出f(x),学习另外的新数据x的函数输出。

  • 分类(Classification):函数是离散的
  • 回归(Regression):函数是连续的。
  • 概率估计(Probability Estimation):函数的输出为概率形式。

机器学习实践

对于数据分析师或数据科学家来说,机器学习中算法只是一小部分。在现实中,整个过程通常如下所示:

  1. 循环开始
    1. 了解领域,预备知识和目标。与领域内的专家交流。通常当前目标是不明确的,你需要进行许多尝试,才能开始进一步实施。
    2. 数据整合、选择、清洗和预处理。通常,这是耗时最多的部分。高质量的数据对算法非常重要。试想,一开始数据很杂乱,你拥有的数据越多,最后得到的结果越是糟糕。垃圾数据进来了,还是以垃圾数据的形式出去。
    3. 学习模型。这是一个十分有趣,且技术成熟的部分。可使用的工具很普遍。
    4. 解释结果。有时,只要模型能够提供结果,模型如何工作没那么重要。但是,有的领域要求理解模型,这时你将面临向人类专家解释的挑战。
    5. 巩固和部署发现的知识。有的技术应用起来非常困难,实验室中成功的大部分项目都没有在现实中使用。
  2. 循环结束

这不是一次过程,而是一个循环。你需要运行循环,直到得到在实践中可用的结果。另外,当数据改变时,你需要创建一个新的循环。

归纳学习

课程的第二部分是归纳学习(Inductive Learning),是监督学习背后的广泛理论。

什么是归纳学习?

从归纳学习的角度来看,我们给出了输入样本x和样本输出f(x),关键是如何估量函数f。具体来说就是,高效利用样本和映射结果,以推广到新样本的输出。

在实际中,确定函数f非常困难,所以我们正在探寻效果好的近似函数。

归纳学习的一些实用例子如下:

  • 信用风险评估
    • x是客户的属性
    • f(x)是能否获得信用批准
  • 疾病诊断
    • x是患者的特征
    • f(x)是他们所患的疾病
  • 脸部识别
    • x是人脸的位图
    • 是为脸部分配的一个名称
  • 自动转向
    • x是来自车前摄像头的位图图像
    • f(x)是方向盘转动的角度

何时使用归纳学习?

归纳学习并非万全之策,使用监督学习的时机十分重要。

在下列四种情况下,适合用归纳学习:

  • 没有人类专家的领域。人们如果不知道问题的答案,就不能编写程序来解决问题。这些是可以真正去探索的领域。
  • 人们可以完成任务,但无法具体描述执行过程。有一些事情,人类可以做到,但计算机不擅长或无法达成,比如骑自行车或驾驶汽车。
  • 所需功能频繁变化。人们能有条理地描述过程,也可以编写一个程序以达成目的,但问题的情形经常变化,成本效益很高,如股票市场。
  • 每个用户都需要自定义功能。为每个用户编写一个自定义程序,显然是不划算的。例如,Netflix或Amazon给用户推荐电影或书籍。

归纳学习的本质

我们可以编写一个完全适用于现有数据的程序,但其功能将最大化地发生过拟合。这时,我们不知道处理新数据时程序的表现如何,而由于我们不会再输入相同的数据,可能得到非常糟糕的结果。

仅有数据还不够。理论上,你可以预测任何想要的东西。但是,完全不考虑问题带来的限制,这将是十分天真的。

而实际上,我们考虑到了这里的一个潜在难题:我们意在获得一个精确的近似函数,然而分类器的数量可能很多,甚至是输入状态数量的两倍指数级。因此,找到一个表现出色的近似函数是非常困难的。

我们可以尝试一些假设,其中之一可能就是解决方案中的假设形式或是一种表示。我们无法事先知道哪一种假设与问题最契合,必须用实验探索证明。

归纳学习的两个观点:

  • 学习是消除不确定性的过程。数据消除了一些不确定性,而且选择某类假设帮我们消除了更多。
  • 学习是推测建立一个小而精的假设类的过程。归纳学习其实就是在推测。如果你清楚地了解一个领域的规则,就不需要归纳学习。然而,我们不知道最终的解决方案,必须不断试验和试错。但是,我们不是一无所知地推测。

你也可能会犯错:

  • 我们以前获得的知识可能是错误的。
  • 我们对假设类的推测可能是错误的。

实际上,我们先从一个小的假设类开始探索,再慢慢地扩大假设类,直到得到一个较好的结果。

归纳学习的框架

机器学习中使用的术语:

  • 训练样例(Training example):来自实例集的实例x,标注了目标函数的输出。
  • 目标函数(Target function):从xf(x)的映射函数f
  • 假设(Hypothesis):近似于f的候选函数。
  • 概念(Concept):一个布尔目标函数,对于所有目标概念值为1的实例称之为正例,对于为0的称之为反例。
  • 分类器(Classifier):机器学习程序产生的可用于分类的分类器。
  • 学习者(Learner):创建分类器的过程。
  • 假设空间(Hypothesis space):算法可建立的,所有满足样本输入和输出的函数f的近似集合。
  • 版本空间(Version space):与已知数据集一致的假设空间的子集。

机器学习中的关键问题:

  • 怎样的假设空间比较好?
  • 怎样的算法适合在这个空间进行学习?
  • 对于不可见数据,如何提高准确性?
  • 我们对模型有多大的信心?
  • 是否存在计算上难以处理的学习问题?
  • 我们如何将应用问题转换为机器学习问题?

在选择假设空间时,有三个需要留意之处:

  • 大小:可供选择的假设数量。
  • 随机性:随机的或确定的。
  • 参数:参数的数量和类型。

另外,可以根据以下三个属性选择算法:

  • 搜索过程
    • 直接计算(Direct computation):没有进行搜索,只计算需要的东西。
    • 局部(Local):通过搜索假设空间来改进假设。
    • 建设性(Constructive):一个个地构建假设。
  • 时机
    • 积极学习(Eager):先进行学习,得到一个整体的模型。大多数算法都是积极学习算法。
    • 消极学习(Lazy):在测试数据需要模型时才开始学习。
  • 在线与批处理
    • 在线(Online):根据观察到的一个模式进行学习。
    • 批处理(Batch):根据由多个模式形成的分组进行学习。大多数算法属于批处理形式。

总结

在这篇文章中,你学习了机器学习的基本概念。

回顾上文:

  • 什么是机器学习?
  • 机器学习的应用
  • 机器学习的关键部分
  • 学习的类型
  • 机器学习实践
  • 什么是归纳学习?
  • 何时使用归纳学习?
  • 归纳学习的本质
  • 归纳学习的框架

这些基本概念,在大多数机器学习课程中都会介绍,与机器学习有关的优秀教科书也会在开篇提到。

作为一名从业者,我写这篇文章是为了让人们在学术研究中,能够扎实地理解这些基础概念,从而更好地理解机器学习算法一般情况下的行为表现。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 机器学习
    • 什么是机器学习?
      • 机器学习的应用
        • 机器学习的关键部分
          • 学习的类型
            • 机器学习实践
            • 归纳学习
              • 什么是归纳学习?
                • 何时使用归纳学习?
                  • 归纳学习的本质
                    • 归纳学习的框架
                    • 总结
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档