第 1 周 · 第 2 课 · 45-55 分钟
规则与学到的规律
仔细看看自动化和机器学习:什么时候是人来写规则,什么时候是软件自己从样例中学习规律。
- 材料
- 在网页浏览器中打开的这节课 · 纸和笔,或者一个记事应用
- 本课
- 进行中
会自动保存在这台设备上
你将能够做到
- 给自动化和机器学习下定义,并把两者区分开。
- 梳理输入、规则和输出在传统程序中是怎样运作的。
- 说明在机器学习中,学到的规律是怎样取代手写规则的。
想一想
房间温度低于 20 度时,恒温器会打开暖气。音乐应用会给你生成一份「你可能喜欢」的歌单。两者都能自己行动。它们在做同一种思考吗?
做个预测
预测一下:恒温器和歌单生成器,哪一个需要有人给它看成千上万个样例?
- 自动化
- 用固定规则让一件事自己发生,不需要人一步步去做。
- 机器学习
- 人工智能的一种,软件从大量样例中学习规律,而不是被告知每一条规则。
- 规则
- 人写下的精确指令,比如「如果温度低于 20 度,就打开暖气」。
- 学到的规律
- 软件从样例中总结出的一种规律性,用来对新的输入做判断。
自动化:靠固定规则自行运转的任务
自动化的意思是,一件事按照人设定好的规则自动发生。恒温器把供暖自动化了:「如果房间低于 20 度,就打开暖气。」没人需要去拨开关,但那条精确的规则仍然是人写下的。
自动化可以非常有用,同时又不是人工智能。机器并没有在学习,它只是在忠实地重复指令。
- 把房间加热到设定温度的恒温器
- 传感器被触发就打开的自动门
- 按定时程序运行洗涤周期的洗碗机
输入、规则、输出:传统程序的样子
传统程序和简单的自动化有着同样的结构:输入进来,规则决定该做什么,输出出去。输入:房间温度。规则:低于 20 度 → 打开暖气。输出:暖气启动。
因为规则是人写的,你可以预测任何输入所对应的输出。对于规则清晰又不变的任务,这非常好用。
- 输入:一枚硬币;规则:检测到硬币 → 送出口香糖;输出:口香糖
- 输入:一个密码;规则:与保存的密码一致 → 解锁;输出:已解锁
机器学习:由软件自己找出规律
有些任务太杂乱,人没法把每条规则都写出来。什么规则能判断一条音乐推荐对你来说是好还是不好呢?机器学习换了个思路:给软件看大量样例,也就是你听完的歌和跳过的歌,让它学出一条能用在新歌上的规律。
关键的转变在于:在机器学习里,学到的规律取代了手写的规则。人仍然要挑选样例、检查结果,但不再一条条把规则讲明白。
- 从你播放和跳过的歌里学会你口味的歌单生成器
- 从大量样本中学会字母形状的手写识别程序
例题讲解
规则还是学到的规律?两种给水果分类的方法
- 任务:给苹果和香蕉的照片分类。
- 规则做法:由人写下「如果形状细长且是黄色 → 香蕉,否则是苹果」。这在出现青香蕉或黄苹果之前都还管用。
- 学习做法:给软件看数百张标注好的苹果和香蕉照片,它会学出各自的规律,包括那些难办的颜色。
- 规则做法简单但脆弱。学习做法更能应付新奇少见的例子,这正是杂乱任务要用机器学习的原因。
要点:规则清晰又不变时,就用固定规则;规律杂乱到没法手写出来时,就用机器学习。
输入
房间温度
规则
低于 20 度 → 打开暖气
输出
暖气启动
一个三步流程:输入(房间温度)→ 规则(「低于 20 度 → 打开暖气」)→ 输出(暖气启动)。这就是自动化和传统程序的结构。
在自动化中,中间那条规则是人写的。
传统做法
- 人写下规则
- 程序遵循这条规则
机器学习
- 人收集标注好的样例
- 软件学出一条规律
- 程序使用这条学到的规律
之前(传统做法):人写下规则,程序照着用。之后(机器学习):人收集标注好的样例,软件从中学出一条规律,程序再用这条学到的规律。人的工作从写规则,变成了挑选好的样例。
活动
写规则挑战
试着为一项任务写出固定规则,再看看固定规则会在哪里失效、学习又能在哪里帮上忙。
- 把规则排成一个有序清单。规则从上往下检查,第一条匹配的说了算。
- 把你的规则跑在初始生物上,看看每一只匹配到了哪条规则。
- 然后揭开那些刁钻的生物,预测你的规则会怎么判,再去修改。
你的规则(按顺序检查)
- 第 1 条规则如果那么
如果 它有翅膀 → 空中生物
- 第 2 条规则如果那么
如果 它住在水里 → 水生生物
- 第 3 条规则如果那么
如果 腿的数量 至少是 1 → 陆生生物
固定规则程序(你刚做的这个)
- 由人写下明确的规则
- 行为可预测,也容易解释
- 遇到没考虑到的情况就会出错
机器学习系统
- 从例子里学出规律
- 对各种各样的例子可能应付得更好
- 可能犯一些很难解释的错误
- 它仍然取决于人的选择,以及喂给它的数据
两种方式都不是永远更好。规则清楚的时候,固定规则最好用;规律太乱、没法手写出来的时候,机器学习更管用,但它需要好的例子和仔细的检查。
检查你的理解
检验你能否区分自动化和机器学习。
Question 1. 自动化和机器学习之间的主要区别是什么?
Question 2. 把传统程序的各个步骤排好顺序。
- 1.一个输入到达(比如一次温度读数)
- 2.由人写好的一条规则决定该做什么
- 3.产生一个输出(比如暖气启动)
Question 3. 哪项任务更适合用机器学习,而不是手写规则?
你想要一个软件,它要么(A)在房间超过 27 度时打开风扇,要么(B)判断一张照片里是狗还是猫。
已回答 0 / 3
自己动手试试
用规则,还是用学习?
想出两项任务:一项适合用固定规则解决,另一项则需要机器学习。
- 描述一项人能轻松写出规则的任务。把那条规则写出来。
- 描述一项对固定规则来说太杂乱的任务。说明为什么。
- 对那项杂乱的任务,你会收集哪些样例来教它?
做到这样就算成功
- 一项清晰的、基于规则的任务,并写出它的规则。
- 一项基于学习的任务,并说明规则为什么行不通。
- 描述教会那项杂乱任务所需要的样例。
反思
输入时会保存在这台设备上
请不要写私人信息。你的回答只保存在这个浏览器里,不会发送到任何地方。
小结
自动化重复固定规则;机器学习则针对那些杂乱到无法手写规则的任务,从样例中学习规律。
- 传统程序遵循「输入 → 规则 → 输出」。
- 机器学习用学到的规律取代了手写的规则。
- 在机器学习中,人仍然要挑选样例并检查结果。
七至八年级延伸内容
谁来决定样例?
在机器学习中,系统用来学习的样例是由人挑选的。这意味着每个模型里都嵌着人为的决定:收录哪些样例,以及正确的标签是什么。
想一项你会教给模型的任务。谁来挑选样例?他们的选择又可能怎样改变模型学到的东西?
完成这一课
- Attempt the knowledge check(未完成)
- Save a reflection (recommended)(未完成)
先做一下知识检查,才能完成这一课。