刷题和总结第01天

  • 机器学习
    • 是什么?
      • 有监督学习
      • 无监督学习
      • 半监督学习
    • 如何做?
      • 数据
      • 拟合问题
    • citation

机器学习

是什么?

有监督学习

在一个有监督的学习任务中,数据样本将包含一个目标属性 yy,也就是所谓的真值(ground truth)。我们的任务是通过学习得到一个函数 F,它接受非目标属性 X,并输出一个接近目标属性的值,即 F(X) \approx yF(X)≈y。目标属性 yy 就像指导学习任务的教师,因为它提供了一个关于学习结果的基准。所以,这项任务被称为有监督学习。

在 Iris 数据集中,类别属性(鸢尾花的类别)可以作为目标属性。具有目标属性的数据通常称为 “标记” 数据(labeled data)。基于上述定义,,可以看出用标记数据预测鸢尾花的种类的任务是一个有监督的学习任务。

无监督学习

无监督学习
与有监督的学习任务相反,我们在无监督的学习任务中没有设置真值。人们期望从数据中学习潜在的模式或规则,而不以预先定义的真值作为基准。

人们可能会问,如果没有来自真值的监督,我们还能学到什么吗?答案是肯定的。以下是一些无监督学习任务的示例:

聚类(Clustering):给定一个数据集,可以根据数据集中样本之间的相似性,将样本聚集成组。例如,样本可以是一个客户档案,具有诸如客户购买的商品数量、客户在购物网站上花费的时间等属性。根据这些属性的相似性,可以将客户档案分组。对于聚集的群体,可以针对每个群体设计特定的商业活动,这可能有助于吸引和留住客户。
关联(Association):给定一个数据集,关联任务是发现样本属性之间隐藏的关联模式。例如,样本可以是客户的购物车,其中样本的每个属性都是商品。通过查看购物车,人们可能会发现,买啤酒的顾客通常也会买尿布,也就是说,购物车里的啤酒和尿布之间有很强的联系。有了这种学习而来的洞察力,超市可以将那些紧密相关的商品重新排列到相邻近的角落,以促进这一种或那一种商品的销售。

半监督学习

在数据集很大,但标记样本很少的情况下,可以找到同时具备有监督和无监督学习的应用。我们可以将这样的任务称为半监督学习(semi-supervised learning)。

在许多情况下,收集大量标记的数据是非常耗时和昂贵的,这通常需要人工进行操作。斯坦福大学的一个研究团队花了两年半的时间来策划著名的 “ImageNet”,它包含了数以百万计的图像带有成千上万个手动标记的类别。因此,更普遍的情况是,我们有大量的数据,但只有很少一部分被准确地 “标记”,例如视频可能没有类别甚至标题。

通过将有监督和无监督的学习结合在一个只有少量标记的数据集中,人们可以更好地利用数据集,并获得比单独应用它们更好的结果。

例如,人们想要预测图像的分类,但只对图像的 10 %10% 进行了标记。通过有监督的学习,我们用有标记的数据训练一个模型,然后用该模型来预测未标记的数据,但是我们很难相信这个模型是足够普遍的,毕竟我们只用少量的数据就完成了学习。一种更好的策略是首先将图像聚类成组(无监督学习),然后对每个组分别应用有监督的学习算法。第一阶段的无监督学习可以帮助我们缩小学习的范围,第二阶段的有监督学习可以获得更好的精度。1

如何做?

数据

从数据出发,我们首先需要确定我们要解决的机器学习问题的类型,即有监督的学习问题还是无监督的机器学习问题。我们规定,如果数据中的一个属性是所需的属性,即目标属性,那么该数据被标记。例如,在判断照片上是否有猫的任务中,数据的目标属性可以是布尔值 [Yes|No]。如果这个目标属性存在,那么我们就说数据被标记了,这是一个简单的学习问题。
对于有监督的机器学习算法,我们根据模型的预期输出进一步确定生成模型的类型:分类或回归,即分类模型的离散值和回归模型的连续值。
一旦我们确定了想要从数据中构建的模型类型,我们就开始执行特征工程(feature engineering),这是一组将数据转换为所需格式的活动。下面给出了几个例子:
对于几乎所有的情况,我们将数据分成两组:训练和测试。在训练模型的过程中使用训练数据集,然后使用测试数据集来测试或验证我们构建的模型是否足够通用,是否可以应用于不可见的数据。
原始数据集通常是不完整的,带有缺失值。因此,可能需要用各种策略来填充这些缺失值,例如用平均值进行填充。
数据集通常包含分类属性,如国家、性别等,通常情况下,由于算法的限制,需要将这些分类字符串值编码为数值。例如,线性回归算法只能处理输入的实值向量。
特征工程的过程无法一蹴而就。通常,在工作流的稍后阶段,您需要反复地回到特征工程上来。

一旦数据准备好,我们就选择一个机器学习算法,并开始向算法输入准备好的训练数据(training data)。这就是我们所说的训练过程(training process)。

一旦我们在训练过程结束后获得了机器学习模型,就需要用保留的测试数据(testing data)对模型进行测试。这就是我们所说的测试过程(testing process)。

初次训练的模型往往无法令人感到满意。此后,我们将再一次回到训练过程,并调整由我们选择的模型公开的一些参数。这就是我们所说的超参数调优(hyper-parameter tuning)。之所以突出 “超(hyper)”,是因为我们调优的参数是我们与模型交互的最外层接口,而这最终会对模型的底层参数造成影响。例如,对于决策树模型,其超参数之一是树的最大高度。一旦在训练之前进行手动设置,它将限制决策树在结束时可以生长的分支和叶的数量,而这些正是决策树模型所包含的基本参数。

可以看到,机器学习工作流所涉及的几个阶段形成了一个以数据为中心的循环过程

现实世界中,在有利的情况下,我们得到的数据可能反映了现实的一部分,而在不利的情况下就可能是一些干扰判断的噪音,在最糟糕的情况下,甚至会与现实相矛盾。不管机器学习算法如何,人们都无法从包含太多噪音或与现实不符的数据中学到任何东西。

拟合问题

对于有监督学习算法,例如分类和回归,通常有两种情况下生成的模型不能很好地拟合数据:欠拟合(underfitting)和过拟合(overfitting)。

有监督学习算法的一个重要度量是泛化,它衡量从训练数据导出的模型对不可见数据的期望属性的预测能力。当我们说一个模型是欠拟合或过拟合时,它意味着该模型没有很好地推广到不可见数据。

一个与训练数据相拟合的模型并不一定意味着它能很好地概括不可见数据。有以下几点原因:1). 训练数据只是我们从现实世界中收集的样本,只代表了现实的一部分。这可能是因为训练数据根本不具有代表性,因此即使模型完全符合训练数据,也不能很好的拟合不可见数据。2). 我们收集的数据不可避免地含有噪音和误差。即便该模型与数据完全吻合,也会错误地捕捉到不期望的噪音和误差,最终导致对不可见数据的预测存在偏差和误差。

在深入欠拟合和过拟合的定义之前,我们将会展示一些能够反映欠拟合和过拟合模型在分类任务中真实情形的示例。

与欠拟合相反,过拟合往往是一个能够适应每一位数据的超复杂模型,但却可能会陷入噪音和误差的陷阱。从上面的图(3)可以看出,虽然模型在训练数据中的分类错误少了,但在不可见数据上更可能出错。

类似地于欠拟合的情况,为了避免过拟合,可以尝试另一种从训练数据集生成更简单的模型的算法。或者更常见的情况是,使用生成过拟合模型的原始算法,但在算法中增加添加了**正则化(regularization)**项,即对过于复杂的模型进行附加处理,从而引导算法在拟合数据的同时生成一个不太复杂的模型。

对于某些 ML 模型,很难(如果不是不可能的话)进行推理。

到目前为止,人们已经了解到 ML 模型存在错误,而且很难逐例纠正错误。也许事情并没有那么糟糕,因为至少我们可以解释它为什么会出错,比如决策树模型。然而,在某些情况下,特别是对于带有神经网络的 ML 模型,我们不能真正对这些模型进行推理,也就是说,很难对模型作出解释,从而识别模型中的关键参数。例如,有一个叫做 ResNet 的最先进的神经网络模型,它在 ImageNetChallenge 中实现了高达 96.43 %96.43% 的精度。ResNet-50 模型由 50 层神经元组成,包括 2560 万个参数。每个参数都有助于模型的最终输出。无论输出是否正确,都是模型背后的数百万个参数共同作用的结果。很难将任何逻辑单独归于每个参数。因此,在偏重模型可解释性的场景中,应该仔细考量应用基于神经网络的 ML 模型的决定。

因此,概括地说,ML不是灵丹妙药,因为它常常无法达到 100 %100% 精确,而且我们不能逐例更正 ML 模型,在某些情况下,我们甚至无法对 ML 模型进行推理。

citation


  1. Fisher,R.A. “The use of multiple measurements in taxonomic problems” Annual Eugenics, 7, Part II, 179-188 (1936) ↩︎

机器学习的概念性的总结相关推荐

  1. 机器学习如何解决看病难?Jeff Dean详述机器学习在医疗领域应用

    在这篇文章中,Jeff Dean 等人工智能大牛描绘了一幅机器学习在医疗领域的应用蓝图. 先来看两个场景: 场景 1: 一名 49 岁的病人注意到肩膀上起了皮疹,因为不觉得疼痛,所以也没有寻求治疗.几 ...

  2. 深度学习入门极简教程(二)

    深度学习入门极简教程(二) 摘要: 现在的人工智能,大致就是用"硅基大脑"模拟或重现"碳基大脑的过程".那么,在未来会不会出现"碳硅合一"的 ...

  3. 春节充电 | 送你10本机器学习和数据科学必读书(附PDF下载)

    作者:Matthew Mayo 翻译:肖镇东 校对:梁傅淇 本文共1800字,建议阅读6分钟. 让一系列免费的机器学习与数据科学书籍开启你的假期学习之旅吧! 在读完本文列出的书单之后,如果你想要更多免 ...

  4. 以人为本的机器学习:谷歌人工智能产品设计概述 By 机器之心2017年7月17日 12:13 取代了手动编程,机器学习(ML)是一种帮助计算机发现数据中的模式和关系的科学。对于创建个人的和动态的经历

    以人为本的机器学习:谷歌人工智能产品设计概述 By 机器之心2017年7月17日 12:13 取代了手动编程,机器学习(ML)是一种帮助计算机发现数据中的模式和关系的科学.对于创建个人的和动态的经历来 ...

  5. 【NLP】到目前为止,机器学习与自然语言处理相遇的那些事

    导读 在过去的十年中,自然语言处理(NLP)有了长足的发展.本文将尝试指出和总结直到现在的NLP领域中最关键和最重要的突破,同时还将重点放在仍然存在和新出现的挑战上. NLP应用程序的记录甚至可以在2 ...

  6. 3)机器学习基石笔记 Lecture3:Types of Learning

    目录 1)Learning with Different Output Space Y 2)Learning with Different Data Label 3)Learning with Dif ...

  7. 让AI学习AI:自动化机器学习的概述、发展和研究意义

    导读:我们在之前的文章<>中概述了人工智能,并引出了AutoML--自动化机器学习.本文将介绍AutoML的概述.发展和研究意义等概念性知识. 作者:王健宗 瞿晓阳 来源:大数据(ID:h ...

  8. 独家|一文带你理解机器学习中的“归纳偏好”真正含义!

    ↑ 点击上方[计算机视觉联盟]关注我们 举例子: 三种属性:{白色.黄色.黑色}+{眼睛颜色蓝色.眼睛颜色不一样}+{有铃铛.没铃铛}   判断是不是"猫" 通过机器学习,现在给了 ...

  9. AI(2)---机器学习产品交互设计原则

    机器学习产品交互设计原则 -- 以人为中心 机器学习是帮助计算机揭示数据模式与关系的科学.机器学习是一个强大的工具,可用于打造个性化的动态体验.机器学习已经有力地推动了从 Netflix 建议到自动驾 ...

最新文章

  1. KS012基于SSM实现个人记账管理系统
  2. VirtualBox安装kali linux过程及安装后无法全屏问题解决方法(2)
  3. 批量查询,mget语法,mget批量查询(来自学习资料,第26节)
  4. python二维数组去重复_php二维数组去重,array_unique出除重复数据
  5. matlab 图像坐标系
  6. 数据结构与算法-索引1909
  7. 多人脸检测matlab程序,基于肤色的人脸检测matlab代码
  8. ofo 列入被执行人;摩拜 LV 跨界合作;iPhone X 遭黑客攻击 | 极客头条
  9. texstudio自动拼写检测_飞桨PaddleDetection物体检测统一框架详解
  10. 怎么解决相位抵消_如何理解音频相位
  11. 代码管理学:对于重写,四种人的不同态度
  12. 层次分析法(附实例)
  13. Android Studio ADB 环境变量配置
  14. 移动硬盘看不到盘符,磁盘管理器显示未初始化解决办法
  15. dev cpp调试无法显示蓝条情况解决方案
  16. 【案例】电影数据分析
  17. R语言-批量读取数据文件以及提取字符串中的数字
  18. 软件测试 (1)软件测试基础/理论知识储备
  19. JavaScript高级语法-面向对象编程模式的特性及实现
  20. 【C语言走进现实】猜凶手

热门文章

  1. .net oracle 连接超时_ADO.NET (一) 前言
  2. 七牛上传图片html,MWEB+七牛 上传图片
  3. 圆环和环形是一样的吗_Excel不知道还可以这样做圆环图
  4. a lt b lt c c语言描述,《数据结构与算法分析――c语言描述》读后笔记 4
  5. git没有冲突 但是提示有_git 代码冲突处理
  6. 正常web页面登录时效是多少_Web 系统的安全性测试之权限管理测试
  7. python实现ai聊天机器人_AI人工智能Python实现简单人机对话:你好,人类!
  8. 后渗透后门_TheFatRat:Msfvenom傻瓜化,小白也可以学渗透
  9. 最小的JAVA WEB SERVER源程序 可正常運行
  10. Spring Boot基础学习笔记09:Thymeleaf模板引擎