跳到主要内容
返回课程

第 1 周 · 第 2 课 · 45-55 分钟

规则与学到的规律

仔细看看自动化和机器学习:什么时候是人来写规则,什么时候是软件自己从样例中学习规律。

材料
在网页浏览器中打开的这节课 · 纸和笔,或者一个记事应用
本课
进行中

会自动保存在这台设备上

你将能够做到

  • 给自动化和机器学习下定义,并把两者区分开。
  • 梳理输入、规则和输出在传统程序中是怎样运作的。
  • 说明在机器学习中,学到的规律是怎样取代手写规则的。

想一想

房间温度低于 20 度时,恒温器会打开暖气。音乐应用会给你生成一份「你可能喜欢」的歌单。两者都能自己行动。它们在做同一种思考吗?

做个预测

预测一下:恒温器和歌单生成器,哪一个需要有人给它看成千上万个样例?

自动化
用固定规则让一件事自己发生,不需要人一步步去做。
机器学习
人工智能的一种,软件从大量样例中学习规律,而不是被告知每一条规则。
规则
人写下的精确指令,比如「如果温度低于 20 度,就打开暖气」。
学到的规律
软件从样例中总结出的一种规律性,用来对新的输入做判断。

自动化:靠固定规则自行运转的任务

自动化的意思是,一件事按照人设定好的规则自动发生。恒温器把供暖自动化了:「如果房间低于 20 度,就打开暖气。」没人需要去拨开关,但那条精确的规则仍然是人写下的。

自动化可以非常有用,同时又不是人工智能。机器并没有在学习,它只是在忠实地重复指令。

  • 把房间加热到设定温度的恒温器
  • 传感器被触发就打开的自动门
  • 按定时程序运行洗涤周期的洗碗机

输入、规则、输出:传统程序的样子

传统程序和简单的自动化有着同样的结构:输入进来,规则决定该做什么,输出出去。输入:房间温度。规则:低于 20 度 → 打开暖气。输出:暖气启动。

因为规则是人写的,你可以预测任何输入所对应的输出。对于规则清晰又不变的任务,这非常好用。

  • 输入:一枚硬币;规则:检测到硬币 → 送出口香糖;输出:口香糖
  • 输入:一个密码;规则:与保存的密码一致 → 解锁;输出:已解锁

机器学习:由软件自己找出规律

有些任务太杂乱,人没法把每条规则都写出来。什么规则能判断一条音乐推荐对你来说是好还是不好呢?机器学习换了个思路:给软件看大量样例,也就是你听完的歌和跳过的歌,让它学出一条能用在新歌上的规律。

关键的转变在于:在机器学习里,学到的规律取代了手写的规则。人仍然要挑选样例、检查结果,但不再一条条把规则讲明白。

  • 从你播放和跳过的歌里学会你口味的歌单生成器
  • 从大量样本中学会字母形状的手写识别程序

例题讲解

规则还是学到的规律?两种给水果分类的方法

  1. 任务:给苹果和香蕉的照片分类。
  2. 规则做法:由人写下「如果形状细长且是黄色 → 香蕉,否则是苹果」。这在出现青香蕉或黄苹果之前都还管用。
  3. 学习做法:给软件看数百张标注好的苹果和香蕉照片,它会学出各自的规律,包括那些难办的颜色。
  4. 规则做法简单但脆弱。学习做法更能应付新奇少见的例子,这正是杂乱任务要用机器学习的原因。

要点:规则清晰又不变时,就用固定规则;规律杂乱到没法手写出来时,就用机器学习。

输入、规则、输出

一个三步流程:输入(房间温度)→ 规则(「低于 20 度 → 打开暖气」)→ 输出(暖气启动)。这就是自动化和传统程序的结构。

在自动化中,中间那条规则是人写的。

规律从哪里来

传统做法

  • 人写下规则
  • 程序遵循这条规则

机器学习

  • 人收集标注好的样例
  • 软件学出一条规律
  • 程序使用这条学到的规律

之前(传统做法):人写下规则,程序照着用。之后(机器学习):人收集标注好的样例,软件从中学出一条规律,程序再用这条学到的规律。人的工作从写规则,变成了挑选好的样例。

活动

写规则挑战

试着为一项任务写出固定规则,再看看固定规则会在哪里失效、学习又能在哪里帮上忙。

  1. 把规则排成一个有序清单。规则从上往下检查,第一条匹配的说了算。
  2. 把你的规则跑在初始生物上,看看每一只匹配到了哪条规则。
  3. 然后揭开那些刁钻的生物,预测你的规则会怎么判,再去修改。

你的规则(按顺序检查)

  1. 第 1 条规则如果那么

    如果 它有翅膀 → 空中生物

  2. 第 2 条规则如果那么

    如果 它住在水里 → 水生生物

  3. 第 3 条规则如果那么

    如果 腿的数量 至少是 1 → 陆生生物

固定规则程序(你刚做的这个)

  • 由人写下明确的规则
  • 行为可预测,也容易解释
  • 遇到没考虑到的情况就会出错

机器学习系统

  • 从例子里学出规律
  • 对各种各样的例子可能应付得更好
  • 可能犯一些很难解释的错误
  • 它仍然取决于人的选择,以及喂给它的数据

两种方式都不是永远更好。规则清楚的时候,固定规则最好用;规律太乱、没法手写出来的时候,机器学习更管用,但它需要好的例子和仔细的检查。

检查你的理解

检验你能否区分自动化和机器学习。

  1. Question 1. 自动化和机器学习之间的主要区别是什么?

  2. Question 2. 把传统程序的各个步骤排好顺序。

    1. 1.一个输入到达(比如一次温度读数)
    2. 2.由人写好的一条规则决定该做什么
    3. 3.产生一个输出(比如暖气启动)
  3. Question 3. 哪项任务更适合用机器学习,而不是手写规则?

    你想要一个软件,它要么(A)在房间超过 27 度时打开风扇,要么(B)判断一张照片里是狗还是猫。

已回答 0 / 3

自己动手试试

用规则,还是用学习?

想出两项任务:一项适合用固定规则解决,另一项则需要机器学习。

  1. 描述一项人能轻松写出规则的任务。把那条规则写出来。
  2. 描述一项对固定规则来说太杂乱的任务。说明为什么。
  3. 对那项杂乱的任务,你会收集哪些样例来教它?

做到这样就算成功

  • 一项清晰的、基于规则的任务,并写出它的规则。
  • 一项基于学习的任务,并说明规则为什么行不通。
  • 描述教会那项杂乱任务所需要的样例。

反思

输入时会保存在这台设备上

请不要写私人信息。你的回答只保存在这个浏览器里,不会发送到任何地方。

小结

自动化重复固定规则;机器学习则针对那些杂乱到无法手写规则的任务,从样例中学习规律。

  • 传统程序遵循「输入 → 规则 → 输出」。
  • 机器学习用学到的规律取代了手写的规则。
  • 在机器学习中,人仍然要挑选样例并检查结果。

七至八年级延伸内容

谁来决定样例?

在机器学习中,系统用来学习的样例是由人挑选的。这意味着每个模型里都嵌着人为的决定:收录哪些样例,以及正确的标签是什么。

想一项你会教给模型的任务。谁来挑选样例?他们的选择又可能怎样改变模型学到的东西?

完成这一课

  • Attempt the knowledge check(未完成)
  • Save a reflection (recommended)(未完成)

先做一下知识检查,才能完成这一课。