导读:机器学习是一个快速发展的研究领域,主要关注设计和分析能让计算机学习的算法。作为一门新兴学科,尽管有待发掘的知识比已经掌握的知识要多得多,但当前的机器学习方法已经被用于教计算机执行各种各样有用的任务。这包括:

  • 图像中目标的自动检测(驾驶员辅助和自动驾驶汽车的关键组成部分)

  • 语音识别(提升语音命令技术)

  • 医学领域中的知识发现(用于增进我们对复杂疾病的理解)

  • 预测分析(用于销售和经济预测)

为了能让读者从整体上了解机器学习的原理,我们首先讨论一个微型机器学习问题:教计算机如何区分猫和狗的照片。通过该例子,我们采用非形式化的方式描述解决机器学习问题的一般过程。

作者:杰瑞米·瓦特,雷萨·博哈尼,阿格洛斯·K.卡萨格罗斯

如需转载请联系大数据(ID:hzdashuju)

01 教计算机区分猫和狗

在教孩子区分“猫”和“狗”时,几乎所有父母都不会告诉孩子某种形式的科学定义(例如,狗属于哺乳动物这个大类中犬科的一员,而猫属于相同大类中猫科的一员),反倒是会给孩子看一些猫和狗的图片,同时告诉他们哪些是猫哪些是狗,直到他们完全掌握这两个概念为止。

我们怎么知道孩子何时学会区分猫和狗了呢?直觉上,应该是当他们遇到新的猫和狗(或图片)并能够逐一正确辨识的时候。像人类一样,计算机也可以采用类似的方式学习如何执行这类任务。在机器学习领域,这种以教计算机区分不同类别事物为目标的任务被称为分类。

1. 收集数据

像人类一样,计算机也必须经过从实例中学习的训练来识别两种动物的不同之处,这些实例称为数据的训练集。图1-1展示了这样的训练集,其中包含不同的猫和狗的图片。直观而言,更大和更多样化的训练集可使计算机(或人)更好地完成学习任务,这是因为更广泛的例子可以赋予学习者更多的经验。

▲图1-1 包含六只猫(左图)和六条狗(右图)的训练集,这个数据集用来训练区分猫和狗图片的机器学习模型

2. 设计特征

考虑一下你自己是如何区分猫和狗的图片的。为了将二者分开,你会关注什么?你可能会用颜色、大小、耳朵或鼻子的形状,以及(或者)这些特征的组合来区分它们。

换句话说,你不会只是简单地将图片当成许多小像素块的集合,而是会从这些图中找出细节或者特征来确定你看到的是什么。对于计算机而言也是如此。为了成功地训练计算机完成此项任务(或者任何更一般的机器学习任务),我们需要给它提供设计合理的特征,或者更理想情况下,让它自己找到这样的特征。

因为设计高质量的特征非常依赖于应用,所以这通常不是一个简单的任务。比如,像 “腿的数量”这样的特征对于区分猫和狗是没有用的(因为它们都有4条腿!),但是这一特征对于辨别猫和蛇非常有用。

此外,从训练集中提取特征也非常具有挑战性。例如,如果一些训练图像非常模糊,或者是从看不到动物的头的角度拍摄出来的,那么我们设计的特征或许就无法正确地提取出来。

为了简化我们讨论的问题,假设可以很容易地从训练集的图片中提取以下两个特征:

  • 鼻子的大小,相对于头的大小(从小到大);

  • 耳朵的形状(从圆到尖)。

从图1-1所示的训练图片中可以看出,所有的猫都有小鼻子和尖耳朵,2而所有的狗都有大鼻子和圆耳朵。值得注意的是,每一幅图片中当前选择的特征都可以只由两个数字表示:一个数字表示相对的鼻子大小,另外一个数字表示耳朵尖或圆的程度。

因此,训练集中的图片都可以在二维特征空间中表示出来,其中“鼻子大小”特征和“耳朵形状”特征分别由图1-2中的水平坐标和垂直坐标表示。因为我们设计的特征能很好地区分训练集中的猫和狗,所以猫图片的特征表示都集中在空间的一部分,而狗图片的特征表示则聚集在另一部分。

▲图1-2 训练集的特征空间表示,其中水平和垂直坐标分别表示“鼻子大小”特征和“耳朵形状”特征,训练集中的猫和狗分别处于特征空间的不同位置,这说明特征选得很合适

3. 训练模型

现在我们有了训练数据集合适的特征表示,那么教计算机区分猫和狗的最后一步就可归为一个简单的几何问题:让计算机在我们精心设计的特征空间中找到能够区分猫和狗的一条直线或者一个线性模型[1]。

直线(在二维空间中)有斜率和截距两个参数,这意味着要为这两个参数找到正确的值。直线的参数必须根据训练数据(的特征表示)来确定。确定参数的过程依赖于一组名为数值优化的工具,此过程被称作模型的训练。

图1-3展示了一个已训练好的线性模型,它将特征空间分成猫和狗两个区域。一旦确定了这条线,计算机会将出现在它之上的特征表示(左上区域)判断为猫,将出现在它之下的特征表示(右下区域)判断为狗。

▲图1-3 一个已训练好的线性模型完美地将训练集中的两类动物区分开来:如果将来任何新图片的特征表示落入这条线之上(左上区域),该图片就会被归类为猫;如果落入这条线之下(右下区域),该图片就会被归类为狗

4. 测试模型

为了测试我们的学习器性能,我们给计算机提供一些以前没有见过的猫和狗的图片(一般称为数据的测试集),然后看看它对每幅图片中动物的识别能力。基于当前问题,我们在图1-4中展示了由三幅新的猫和狗的图片组成的测试集。

▲图1-4 猫和狗图片的测试集,注意,其中的一条狗,也就是右上方的波士顿,有小鼻子和尖耳朵,根据我们选择的特征表示,计算机会认为这是一只猫

为了测试,需要从新图片中提取我们设计的特征(鼻子大小和耳朵形状),并简单检查一下它们落入特征空间中直线的哪一侧。在这个例子中,如图1-5所示,测试集中所有猫的图片以及两张狗的图片都被正确识别出来了。

▲图1-5 用我们已训练好的线性模型来识别测试图片(的特征表示),注意,由于波士顿像训练集中的猫一样拥有尖耳朵和小鼻子,因此它被误分类成一只猫

这只狗(波士顿)的误分类完全是因为我们选择的特征,而这些特征是根据图1-1中的训练集设计的。这只狗的特征是小鼻子和尖耳朵,恰好和训练集中的猫相匹配,所以被误分类。

因此,虽然刚开始鼻子大小和耳朵形状的组合确实能区分猫和狗,但是由于训练集太小且不够多样化,我们发现基于训练集选择出来的特征是不能完全有效的。

为了提升学习器性能,我们必须从头开始。

  • 首先,应该收集更多的数据,组成一个庞大且多样的训练集。

  • 其次,需要考虑设计更具有辨识性的特征(比如,眼睛的颜色、尾巴的形状等)来进一步帮助我们区分猫和狗。

  • 最后,还要用设计的特征训练一个新的模型,并用同样的方式来测试,看它与原来的模型相比是否有所改进。

02 经典机器学习问题的流程

现在我们简要回顾一下前面描述的过程,通过该过程,我们建立了一个训练模型,用于完成区分猫和狗的微型任务。同样的过程基本上可用于完成所有的机器学习任务,因此很值得我们花一些时间来回顾解决典型机器学习问题所采取的步骤。

为了突出这些步骤的重要性,我们在下面将其列举出来。

我们把这些步骤称为解决机器学习问题的一般流程,图1-6简洁地概括了该流程。

▲图1-6 猫和狗分类问题的学习流程,相同的一般化流程基本上可用于所有的机器学习问题

  • 定义问题:我们想教计算机做什么任务?

  • 收集数据:为训练集和测试集收集数据。数据越大、越多样越好。

  • 设计特征:什么样的特征最能描述数据?

  • 训练模型:用数值优化技术在训练集上调整恰当模型的参数。

  • 测试模型:评估训练模型在测试数据上的性能。如果评估结果不佳,则重新考虑所使用的特征,并尽可能收集更多的数据。

注释:

[1]虽然通常情况下我们可以找到一条曲线或者非线性模型来区分数据,但是在实际应用中,如果特征设计合理,那么线性模型是最常见的选择。

关于作者:杰瑞米·瓦特(Jeremy Watt),获得美国西北大学计算机科学与电气工程专业博士学位,研究兴趣是机器学习、计算机视觉和数值优化。

雷萨·博哈尼(Reza Borhani),获得美国西北大学计算机科学与电气工程专业博士学位,研究兴趣是面向机器学习和计算机视觉问题的算法设计与分析。

阿格洛斯·K.卡萨格罗斯(Aggelos K. Katsaggelos),美国西北大学计算机科学与电气工程系教授,Joseph Cummings名誉教授,图像与视频处理实验室的负责人。

本文摘编自《机器学习精讲:基础、算法及应用》,经出版方授权发布。

延伸阅读《机器学习精讲:基础、算法及应用》

点击上图了解及购买

转载请联系微信:togo-maruko

推荐语:本书为了解机器学习提供了一种独特的途径。书中包含了新颖、直观而又严谨的基本概念描述,它们是研究课题、制造产品、修补漏洞以及实践不可或缺的部分。

据统计,99%的大咖都完成了这个神操作

更多精彩

在公众号后台对话框输入以下关键词

查看更多优质内容!

PPT | 报告 | 读书 | 书单

大数据 | 揭秘 | 人工智能 | AI

Python | 机器学习 | 深度学习 | 神经网络

可视化 | 区块链 | 干货 | 数学

猜你想看

  • 猿宵节正确打开方式:你要的大数据、机器学习、神经网络…已配齐

  • 故宫首开夜场门票秒空官网崩溃:7本书让网站挺住

  • 《流浪地球》导演郭帆竟然“特别绝望”?

  • 7本书告诉你,为什么拯救“流浪地球”的是人类,不是AI?

Q: 你还想教计算机做什么?

欢迎留言与大家分享

觉得不错,请把这篇文章分享给你的朋友

转载 / 投稿请联系:baiyu@hzbook.com

更多精彩,请在后台点击“历史文章”查看

点击阅读原文,了解更多

怎样教一台计算机区分猫和狗?一文零基础入坑机器学习相关推荐

  1. 计算机基础猫狗,怎样教一台计算机区分猫和狗?一文零基础入坑机器学习

    01 教计算机区分猫和狗 在教孩子区分"猫"和"狗"时,几乎所有父母都不会告诉孩子某种形式的科学定义(例如,狗属于哺乳动物这个大类中犬科的一员,而猫属于相同大类 ...

  2. 机器学习是如何区分猫和狗的?

    最近人工智能方面最重要的发展之一就是机器学习了.它主要着眼于智能,而不是传统计算机程序意义上指定机器做什么东西,也就是说机器自己可以学习,这样它就可以直接从经验(或者数据)中学会如何处理复杂的任务. ...

  3. 计算机网络系统中每台计算机的地位是什么,东北师范计算机应用基础15秋在线作业1满分答案...

    东北师范计算机应用基础15秋在线作业1满分答案 一.单选题 1. 计算机网络按其所涉及范围的大小和计算机之间互联距离的不同,其类型可分 为____. A. 局域网.广域网和万维网 B. 局域网.广域网 ...

  4. 世界上第一台计算机釆用的主要是什么电子管,基础知识-网络教育

    基础知识-网络教育 (89页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 21.9 积分 基础知识单选题1. 下列关于世界上第一台电子计算机ENIAC的叙 ...

  5. 计算机组装论文关于显示器,显示器参数扫盲—小白入坑篇

    显示器参数扫盲-小白入坑篇 2019-05-01 14:11:35 24点赞 103收藏 20评论 事情经历 上周六(2019年4月27日)在bilibili刷到一个组装台式机的视频,总的算下来花费小 ...

  6. python爬虫酷狗_python爬虫教程:爬取酷狗音乐,零基础小白也能爬取哦

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:python学习教程 ( 想要学习Python?Pyt ...

  7. python爬虫教程:爬取酷狗音乐,零基础小白也能爬取哦

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:python学习教程 ( 想要学习Python?Pyt ...

  8. 计算机硬件的发展经历,计算机的发展史及硬件组成,零基础小白入门科普

    1.计算机的发展史 计算机的发展经历了4个时代: 第一代(1946至1956年)电子管计算机时代 第二代(1958至1964年)晶体管计算机时代 第三代(1964至1972年)集成电路计算机时代 第四 ...

  9. 跨考计算机之路,2014考研心得:零基础跨考之路

    2014考研心得:零基础跨考之路 2013-12-02 14:03 来源:新东方网 作者: 我就读于华南农业大学生态学专业,报考的是华南理工大学经济与贸易学院的国民经济学专业.华南理工大学是一所985 ...

最新文章

  1. android 6.0 重启 丢失 壁纸,android6.0 壁纸设置流程讲解
  2. 1452.接水问题(思维)
  3. 实战:kafka实现日志收集系统
  4. 雷布斯风雪山神庙,董小姐威震安平寨
  5. 开源的数据可视化JavaScript图表库:ECharts
  6. 3DSMAX安装未完成,某些产品无法安装的解决方法
  7. 62. KVOController详解
  8. 【语音增强】基于matlab iir带阻滤波器语音增强【含Matlab源码 613期】
  9. CenterCrop图像裁剪原理
  10. php订阅号如何吸粉,公众号如何快速吸粉,一周内吸粉7000+的6个技巧
  11. python如何创建自定义模块_Python学习之如何引用Python自定义模块?
  12. 第二证券|下周解禁市值超980亿元,多家机构参与解禁股评级
  13. RFID技术应用及其发展趋势分析
  14. 安卓手机下拉状态栏的代码实现
  15. Bash中的Date命令
  16. 分辨率与屏幕尺寸之间的关系
  17. CVPR 2022 | 数据堂亮相计算机视觉领域盛会
  18. 邮件乱码产生的原因及其分析
  19. tiptop开发webservice详细步骤
  20. 重装系统准备就绪时间太长了?

热门文章

  1. Java笔记-Spring中RabbitMQ的调用
  2. docker 提交自定义镜像
  3. 华南理工大计算机博士毕业条件,华南理工大学博士毕业要求-2018年7月版.doc
  4. 2021年的高考大约多久可以查询成绩,2021高考完什么时候可以查分数 查成绩的时间...
  5. java绘制图表控件_eclipse中用JAVA代码怎么画柱形图表
  6. 7 centos 设置jvmgc_centos下docker离线部署
  7. vue自动提交表单_(尚012)Vue表单数据的自动手集(表单数据提交,需要收集表单数据)...
  8. android service 远程,android service(远程service) 知识点
  9. SQL注入:3、无权读取information_schema库和拒绝union、order by语句
  10. LeetCode 153 寻找旋转排序数组中的最小值