《Hands-On Machine Learning》学习笔记-1.2 为什么要使用机器学习

第一章 机器学习概述

为什么要使用机器学习

思考一下,如果使用传统的软件编程技术,该如何编写一个垃圾邮件过滤器?:

  1. 首先你需要观察典型的垃圾邮件都有哪些特征。也许你会注意到,一些特定的单词或者短语在标题中出现的较多。或者你还会在发件人,邮件内容中发现的一些特定的模式。

  2. 你要写一个检测算法,对你所发现的所有特征一一检验,如果在邮件中检验到了一定数量的特性,则会把它标记为垃圾邮件。

  3. 你还需要测试你的代码,重复步骤1和步骤2,直到它表现的足够好。

《Hands-On Machine Learning》学习笔记-1.2 为什么要使用机器学习_第1张图片图1-1 传统的解决方案

尽管问题并不复杂,你的程序还是会变成一长串复杂的规则,极难维护。

与之对应的,一个基于机器学习的垃圾邮件分类器程序能够通过探测垃圾邮件相比较于正常邮件频繁出现的特定特征,从而能够自动学习哪些单词和短语往往预示着垃圾邮件。这样的程序要简短,而且易于维护,而且一般说来会更加准确。

《Hands-On Machine Learning》学习笔记-1.2 为什么要使用机器学习_第2张图片图1-2 机器学习解决方案

此外,如果垃圾邮件发送者发现还有“4U”的邮件被拦截了,他们也许会改写“For U"。基于传统技术的垃圾邮件分类器要想将含有”For U“的邮件标记为垃圾邮件就需要更新。如果垃圾邮件发送者不断针对你的分类器设计不同的特征,你就需要不停的写新的规则。

相反,基于机器学习的垃圾邮件分类器则会自动注意到用户标记的垃圾邮件中,“For U”出现的频率异常的高,然后他就会开始将这类邮件标记出来,而不需要人工干预。
《Hands-On Machine Learning》学习笔记-1.2 为什么要使用机器学习_第3张图片图1-3 对变化自适应

是在对传统方法而言过于复杂或者压根没有已知的算法可以解决的领域,机器学习则大放异彩。比如语音识别,想象一下你需要写一个程序,能够区分单词“one”和“two”,你也许会注意到,单词two的发音以一个高音开头(“T”),于是你可以硬编码一个程序,通过检测高音的发音强度来区分one和two。但是当不同地区的成千上万的人在嘈杂的环境中操着不同发音时,这样的程序显然就不适用了。最好的解决方案(至少在当前)就是写一个能够自动学习每个单词的不同发音的算法。

最后,机器学习能够帮助人类学习新知:人们能够检查机器学习算法到底学了什么(尽管对于有些算法而言结果挺tricky的)。例如,一旦一个垃圾邮件分类器被训练的足够好,人们能够很容易的看到哪些单词或组合往往预示着垃圾邮件,这有时候能够启发人们发现未知的关联关系或者趋势,从而帮助人们更好的理解所要解决的问题。

将机器学习技术用于深入挖掘大数据能够不再帮助发现一些隐藏其中的不明显的模型。这被称为数据挖掘
《Hands-On Machine Learning》学习笔记-1.2 为什么要使用机器学习_第4张图片图1-4 机器学习能够帮助人类学习

综上所述,机器学习适用于一下情形:

  • 已知的解决方式需要大量的手工调整或者一长串的规则:机器学习算法往往能够简化代码而且有更好的表现。
  • 传统途径压根无从解决的复杂问题:机器学习技术能够找到解决的方案。
  • 外部环境不断变化:机器学习算法能够适应新的数据。
  • 深入了解复杂问题和大数据。

你可能感兴趣的:(Hands-On,Machine,Learning学习笔记)