Lecture 0: Introduction of Machine Learning_机器学习导论:从人工智能到学习地图的全景解析
机器学习导论:从人工智能到学习地图的全景解析
课程来源:台湾大学李宏毅教授《机器学习》(Machine Learning)导论课(Lecture 0)
原视频链接:YouTube - ML Lecture 0-1: Introduction of Machine Learning
这份笔记整理自李宏毅教授经典的机器学习开篇讲座。课程通过极其生动幽默的比喻(以及满满的二次元与流行文化梗),剥开了人工智能(AI)、机器学习(Machine Learning)与深度学习(Deep Learning)的神秘面纱,并为我们绘制了一幅完整的“机器学习技术地图(Learning Map)”。
一、 核心概念厘清:AI、机器学习与深度学习的关系
在科技浪潮中,这三个词经常被混用,但它们其实是“目标”与“手段”的包含关系:
- 人工智能(Artificial Intelligence, AI)—— 终极目标
- 起源:并非新词,早在 1950 年代就已提出。
- 含义:人类长久以来的梦想与目标——希望机器能像人类一样聪明。在很长一段时间里,科幻小说充满了对它的幻想,但人类并不知道具体该如何实现它。
- 机器学习(Machine Learning, ML)—— 达成目标的手段
- 起源:约 1980 年代后兴起。
- 含义:如果 AI 是我们要达成的“目标”,机器学习就是达成这一目标的“手段”。它是指通过编写程序赋予机器“后天学习的能力”,让机器透过学习变得跟人一样聪明。
- 深度学习(Deep Learning, DL)—— 机器学习的一种强力方法
- 含义:它是机器学习众多模型(Model)与方法中最热门、最复杂的一种(即基于深度神经网络的方法)。
二、 先天本能 vs. 后天学习:为什么我们需要机器学习?
高中生物告诉我们,生物的行为取决于两件事:先天的本能 与 后天的学习。机器想要表现得有智慧,同样也只有这两条路。
1. 生物的本能:河狸筑坝的笑话
- 现象:河狸(Beaver,注:原稿语音识别误作“河里”)天生就会筑水坝把水挡起来。哪怕是在实验室里出生、从来没有父母教过它的河狸,一生下来心里也有一股强烈的冲动想要“筑水坝”。
- 内在逻辑(用程序语言描述):
$$\text{If (听到流水声)} \longrightarrow \text{筑水坝,直到听不到流水声为止}$$ - 本能的盲点:生物学家利用这个特性来“欺负”河狸——用一个扬声器播放流水声。如果把扬声器放在水泥墙里,河狸就会在水泥墙上堆满树枝想要把声音盖住;如果放在地上,河狸就会用树枝把扬声器死死盖住,直到听不见声音。因为它的本能是写死的、僵化的。
2. 机器的“先天本能”:人工规则(Hand-crafted Rules)
在机器学习普及之前,人类试图通过给机器设定“先天本能”来实现 AI,这就是人工设定的规则(Hand-crafted Rules):
真实案例:早期的智能音箱/聊天机器人(Chatbot,注:原稿识别为“缺乏/Champard/Chair Bar”)
- 假设你要设计一个帮人开关音乐的对话机器人,工程师写下一条规则:
$$\text{If (输入的句子里出现 “turn off” 这个词)} \longrightarrow \text{把音乐关掉}$$ - 当你对它说 “Please turn off the music” 或 “Can you turn off the music please?” 时,它都能准确关掉音乐,看起来简直就是人工智能!
- 如何欺负它:如果你故意对它说 *”Please don’t turn off the music”*,它依然会把音乐关掉!(教授吐槽:这是一家号称做了很多 AI 的大公司的真实产品,为了避免被告就不点名了)。
- 假设你要设计一个帮人开关音乐的对话机器人,工程师写下一条规则:
人工规则(Hand-crafted Rules)的三大致命缺点:
- 极其僵化:人类无法考虑到所有可能性。
- 永远无法超越创造者(人类):机器所有的行为都是被硬编码(Hard-coded)好的,没有任何 Freestyle(自由发挥)。人类想不到的东西,就没法写规则;没写规则,机器就不知道怎么办。
- 血汗工厂与中小企业劣势:大公司(Industry)可以雇佣成千上万的工程师,用“血汗工厂”的方式堆砌出数以万计的规则,让机器看起来很聪明。但这对于中小企业非常不利。机器学习的发展反而对小规模企业更有利——你不再需要雇佣海量工程师去想规则,只要手上有数据(Data),就可以让机器自动帮你学习。
行业乱象吐槽:Yann LeCun 的四格漫画
- 深度学习巨头 Yann LeCun(杨立昆,注:原稿识别为“Yanglockhood”)曾在 Facebook 上分享过一幅漫画:一个西装革履的销售员(Sales)推销最新的“人工智能机器人”,有着最潮的外壳,观众问“这是用神经网络(Neural Network)做的吗?”,销售员满口答应。结果把机器外壳剖开一看,里面掉出来的全是一行行的
if-else语句! - 核心警醒:如果现在政府或企业推广 AI,推的还是这种
hand-crafted AI,那五十年前就该推广了,放在今天是应该被历史淘汰的路线。我们今天要走的是让机器具备自主学习能力的 Machine Learning 路线。
- 深度学习巨头 Yann LeCun(杨立昆,注:原稿识别为“Yanglockhood”)曾在 Facebook 上分享过一幅漫画:一个西装革履的销售员(Sales)推销最新的“人工智能机器人”,有着最潮的外壳,观众问“这是用神经网络(Neural Network)做的吗?”,销售员满口答应。结果把机器外壳剖开一看,里面掉出来的全是一行行的
三、 机器学习的本质与“三步走”框架(Framework)
1. 机器学习的本质:寻找一个函数(Function)
- 拟人化说法(骗麻瓜的说法):写一个程序让机器具备学习能力,然后像教婴儿一样教它——给它听声音告诉它是“Hi”还是“Goodbye”(语音识别);给它看图片告诉它是“猴子”、“猫”还是“狗”(图像识别)。
- 务实数学说法:机器学习做的事情,本质上就是在寻找一个极其复杂的函数(Function)。这个函数的复杂度远超人类的想象,人类无法手动写出,必须借助机器的力量根据数据自动找出来:
- 语音识别(Speech Recognition):输入是声音信号(Acoustic Signal),输出是文字。1960 年代有人试图靠读语言学文献写规则来解决,但彻底失败了,因为这个函数太复杂。
- 图像识别(Image Recognition):输入是一张图片的所有像素(Pixels),输出是图片里的物体类别。
- 下围棋(如 AlphaGo):输入是 $19 \times 19$ 棋盘上的盘势(哪些位置有黑子、哪些位置有白子),输出是下一步棋应该落子的位置。
- 聊天机器人(Chatbot):输入是用户说的话(User Input),输出是机器的回应。
2. 寻找函数的“三步走”框架(以图像识别为例)
整个机器学习的过程可以分为训练(Training,左半部分)和测试(Testing,右半部分)。其中,训练过程严格遵循以下三个核心步骤:
第一步:定义一个函数集合(Define a Function Set / Model)
- 首先,你要准备一个包含成千上万、甚至无穷多个候选函数的集合(Function Set),这个集合在机器学习中就叫做模型(Model)。
- 比如在集合里有函数 $f_1$(给它看猫输出“猫”,看狗输出“狗”),也有一个很怪的函数 $f_2$(给它看猫它说是“猴子”,看狗它说是“蛇”)。
第二步:让机器衡量一个函数的好坏(Goodness of Function)
- 我们需要提供训练数据(Training Data),明确告诉机器一个“好函数”的输入(Input)和输出(Output)应该满足什么关系(例如:输入猴子图 $\rightarrow$ 输出“猴子”;输入猫图 $\rightarrow$ 输出“猫”)。这种同时提供输入和标准答案(Label)的学习方式,就叫做监督式学习(Supervised Learning)。
- 有了训练数据,机器就能对集合里的函数进行评估打分:显然 $f_1$ 符合训练数据的描述,是一个好函数;而 $f_2$ 则是一个荒谬的坏函数。
第三步:用高效的算法挑出“最好”的函数(Pick the Best Function)
- 光能判断好坏还不够,因为函数集合(Function Pool)里有无穷无尽的函数,一个个去测试太花时间了,实际上根本做不到。
- 因此,我们需要一个有效率的演算法(Algorithm,如梯度下降等),快速从集合中挑出那个表现最好的函数,我们将其记作 $f^*$(读作
f star)。
测试与泛化能力(Generalization):
找出最佳函数 $f^*$ 后,我们就进入 Testing(测试/应用) 阶段——输入一张机器在训练时从未见过的猫的图片,希望 $f^*$ 依然能正确输出“猫”。机器能不能做到“举一反三”(注:原稿识别为“G1/3”),是机器学习中极其关键的核心问题。
- 幽默比喻:“把大象塞进冰箱”
- 李宏毅教授调侃道:“讲到这里,机器学习就讲完了,大家这学期的课都可以不用听了!因为机器学习只有三个步骤。”
- 当然,这异常简化了整个过程。说“机器学习只有三步”,就跟说“把大象塞进冰箱只需要三步(1. 把冰箱门打开;2. 把大象塞进去;3. 把冰箱门关上)”是一样的道理,真正的难点全在每一步的具体实现细节里!
四、 机器学习全景技术地图(Learning Map)深度拆解
在课程后半段,教授展示了一张贯穿整个学期的 Learning Map(学习地图),并用三种不同颜色的方块代表机器学习中的三个维度:
- 🟥 红色方块 —— 任务(Task):我们要机器解决什么问题?(取决于函数输出 Output 的类型)
- 🟩 绿色方块 —— 模型/方法(Model):我们第一步选择的 Function Set 是什么?
- 🟦 蓝色方块 —— 学习情境(Scenario):我们手头上拥有什么样的数据?机器在什么环境下学习?(通常由客观数据条件决定,不由人控制)
维度一:任务类型(Tasks 🟥)—— 按函数的输出类型划分
1. 回归问题(Regression)
- 定义:我们要寻找的函数,其输出是一个标量数值(Scalar / Real Number)。
- 案例:PM2.5 空气质量预测(课程作业一)
- 目标:找一个函数,输出明天上午的 PM2.5 数值。
- 输入(Input):机器无法凭空猜测,你必须给它额外信息,比如今天上午的 PM2.5、昨天上午的 PM2.5 等历史气象数据。
- 训练数据:从政府开放数据(Open Data)收集历史记录,告诉机器:“输入 9月1日、9月2日的数值 $\rightarrow$ 应该输出 9月3日的数值”。
2. 分类问题(Classification,注:原稿识别为 transpication)
分类问题要求机器输出的是预设好的类别选项,又细分为两类:
- 二元分类(Binary Classification):
- 定义:机器只需要输出“是或否(Yes or No)”。
- 案例:Gmail 垃圾邮件过滤(Spam Filtering):函数的输入是一封 Email,输出是“是垃圾邮件”或“不是垃圾邮件”。训练时只需喂给它大量标注好的邮件即可。
- 多元分类(Multi-class Classification,注:原稿识别为 motorclass):
- 定义:就像做单项选择题,给机器数个类别选项,让它从中选出正确的一个。
- 案例:新闻自动分类:网络上新闻太多看不完,我们需要一个函数,输入是一篇新闻文章,输出是它所属的类别(选项包括:政治、经济、体育、娱乐等)。
3. 结构化学习(Structured Learning)—— 未知的“暗黑大陆”
- 定义:在回归和分类之外,还有一类极其重要但常被教科书忽略的任务。它的函数输出不再是一个简单的数值或固定选项,而是一个具有复杂结构的对象(Structured Object)。
- 典型案例:
- 语音识别:输入声音信号,输出是一个句子(句子由许多词汇按语法结构拼凑而成)。
- 机器翻译:输入中文句子,输出结构化的英文句子。
- 人脸/动漫人物检测与标注:给机器看一张《凉宫春日的忧郁》的合照,机器不仅要框出人脸,还要在图上准确标注出:最左边是长门有希,中间是凉宫春日(注:原稿为“梁冬春日”),最右边是朝比奈实玖瑠(注:原稿为“朝比奈时就流”)。
- 《全职猎人》的“暗黑大陆”比喻:
- 很多参考书直接写“机器学习就是回归和分类两大类问题”。教授拿富坚义博的漫画《全职猎人(Hunter × Hunter)》作比喻:说机器学习只有回归和分类,就好比告诉世人世界只有我们熟知的“五大洲”;但实际上,五大洲只是真实世界的一小块湖泊而已,外面包裹着广袤无垠的“暗黑大陆(Dark Continent)”!
- Structured Learning 就是机器学习的暗黑大陆,里面还有太多人类尚未探索的问题。当时最潮的 GAN(生成对抗网络,Generative Adversarial Network)——因为缩写念起来很像台语的粗口(注:原稿识别为“骗 / 歌案四神”,实指台语谐音“干”),路上常听到学生在热烈讨论——其实就是一种全新的 Structured Learning 方法!
维度二:模型与方法(Models 🟩)—— 函数集合的选择
在解决上述任务的第一步,我们需要选择不同的 Function Set(即不同的 Model):
- 线性模型(Linear Model):最基础、最简单的模型。
- 非线性模型(Non-linear Model):课程重点,包含两大主力:
- 深度学习(Deep Learning):函数极其复杂,因此能处理极其复杂的任务(如描述像素 Pixel 与图像类别之间的关系)。
- 用深度学习下围棋(《棋魂》梗):下围棋其实可以看作一个 $19 \times 19 = 361$ 个选项的多元分类问题(选择题)。函数输入是棋盘盘势,输出是下一步落子的位置。
- 如何收集训练数据? 从人类过去的棋谱中收集!教授在这里玩了经典围棋动漫《棋魂(棋灵王)》的梗:你可以收集进藤光(注:原稿为“静腾光”)和社清春(注:原稿为“摄青春”)对弈的那盘著名棋谱——社清春初手下在“五之五”(震惊全场),进藤光第二手下在“天元”(全场更加惊讶),社清春第三手再下另一个“五之五”……把这些棋谱喂给机器,告诉它看到某种盘势就应该下在哪个位置,机器就能学会下围棋。
- 支持向量机(SVM, Support Vector Machine):除了深度学习之外另一种非常强大的非线性模型(课程中提及会请吴沛远老师客座讲授,注:原稿识别为“SDM”)。
- 深度学习(Deep Learning):函数极其复杂,因此能处理极其复杂的任务(如描述像素 Pixel 与图像类别之间的关系)。
维度三:学习情境(Scenarios 🟦)—— 数据的获取与学习方式
为什么会有不同的学习情境?因为在实际应用中,我们往往无法控制自己手上有什么样的数据。
1. 监督式学习(Supervised Learning)
- 特点:需要海量的训练数据(Training Data),且每笔数据都必须包含函数的输入(Input)和标准答案输出——即标签(Label)。
- 痛点:Label 往往无法自然取得,必须靠人工耗费巨大的精力去标注。为了减少对人工 Label 的依赖,衍生出了以下几种进阶情境。
2. 半监督式学习(Semi-supervised Learning)
- 情境:假设你要做猫狗分类器,你手上只有少量有标签的数据(Labeled Data),但同时拥有大量没有标签的数据(Unlabeled Data)(比如有一大堆猫狗图片,但没力气一张张去标哪些是猫、哪些是狗)。
- 作用:半监督学习技术能够利用这些没有 Label 的图片来辅助提升模型的准确率。
3. 迁移学习(Transfer Learning)
- 情境:同样是做猫狗分类,手头只有少量有标签的猫狗图片;但与此同时,你拥有海量与当前任务看似不相干的数据(可能有标签也可能没标签),比如一大堆其他动物的图片,甚至是动漫人物图片——比如《凉宫春日的忧郁》里的凉宫春日,或者《某科学的超电磁炮》里的御坂美琴(注:原稿识别为“玉板美琴”)。
- 作用:迁移学习研究的就是如何把从这些“不相干数据”中学到的知识迁移过来,帮助机器更好地分辨猫和狗。
4. 非监督式学习(Unsupervised Learning)—— 机器的“无师自通”
- 定义:在完全没有任何标签(No Label)的情况下,看机器能不能“无师自通”学到东西。
- 案例 1:阅读海量文章理解词义(只有 Input,没有 Output)
- 去网络论坛(如 PTT 八卦版)随便爬一大堆文章喂给机器。我们想找一个函数,把一个词汇(如 “Apple”)丢进去(Input),机器能输出一个向量(Vector)来表示这个词的各种语义特性(Attribute)。但训练时我们只有满篇的文字(只有函数的 Input),没有任何词义标准答案(没有 Output)。
- 案例 2:逛完动物园自己画动物(只有 Output,没有 Input)
- 带机器去动物园看一大堆真实的动物图片,看完之后,让机器自己创造(画)出新的动物!教授展示了 Ian Goodfellow(GAN 提出者,注:原稿识别为“BMPFail”)幻灯片上的真实生成案例:机器自己画出了“眼睛长在身上的猎奇狗”和“黑白花纹的乳牛狗”。
- 在这个任务里,函数的输出(Output)是一张图片,输入(Input)是一个代表图片特性的神秘代码(Code)。但在训练时,机器只看到海量图片(只有函数的 Output,没有 Input),却要学会自己生成新图片。
5. 强化学习(Reinforcement Learning, RL)—— 从评价与反思中学习
背景:RL 绝不是新技术,它已经发展了很久。近年来爆红主要是因为 DeepMind 用它玩 Atari 经典小游戏痛电人类(并登上《Nature》杂志),以及大名鼎鼎的 AlphaGo(注:原稿识别为“Avacom / 阿波多 / 阿卡古”)。
核心对比:Supervised Learning vs. Reinforcement Learning
对比维度 监督式学习 (Supervised Learning) 强化学习 (Reinforcement Learning) 核心隐喻 Learning from a Teacher(向老师学习) Learning from Critics(从评价中学习) 现实对应 学校里的学习:有家教手把手教,每道题都有标准答案。 真实社会中的学习:没有标准答案,只知道最后结果是成功还是失败,必须自己反省。 训练聊天机器人 人类手把手教:用户说 “Hello”,你就回 “Hi”;用户说 “Bye-bye”,你就回 “Goodbye”。 直接把机器人丢上线跟真实客户对话。聊了半天,客户突然勃然大怒挂断电话(得到负分评价)。机器不知道具体哪句话说错了(是不该打招呼?还是中间不该骂脏话?),必须自己回去反省检讨哪一步出了问题。 训练下围棋 看着棋谱学:看到这个盘势,下一步就必须下在“天元”。 跟对手连续下几百手棋,过程中没人指导,直到最后一刻才知道这局棋是赢了还是输了。至于中间几百手里究竟哪一手是致胜关键、哪一手是败着,机器必须自己去推敲。 AlphaGo 的真实训练秘诀(Supervised + Reinforcement):
- 先把人类棋谱当老师,做 Supervised Learning 打好基础。
- 接着通过 Reinforcement Learning 追求超越人类。但 RL 需要对手,人类下棋太慢了,陪不了机器下几百万盘棋,怎么办?让机器自己跟自己下棋(Self-play)! AlphaGo 的对手就是另一个机器,在左右互搏中不断进化。
面试幽默轶事:为什么不直接用最潮的 RL?
- 因为 RL 用在了 AlphaGo 里,现在听起来极其炫酷,仿佛任何产品只要塞进 RL 就能对外吹嘘“AlphaGo Inside”从而发大财。
- 教授分享了一个段子:曾有学生去公司面试,介绍自己做了一个 Supervised Learning 的项目。面试官却反问:“你为什么不用 Reinforcement Learning?那个比较厉害啊!”
- 重要原则:我们之所以用 RL,往往是因为走投无路——我们没有带标准答案的 Data 可以做 Supervised Learning,才被迫使用 RL!如果一个问题明明有数据可以做 Supervised Learning,就绝对不应该舍近求远去做 RL。(不过教授也幽默提醒:如果面试时你直接这样回怼面试官,虽然道理全对,但你大概就不会被录取了!)
五、 总结:如何阅读这张机器学习地图?
在课程的最后,教授总结了这张地图的宏观逻辑:
- 蓝色方块(Scenario 学习情境):由你手头客观拥有的数据决定(有标签?没标签?还是只有评价分数?)。
- 红色方块(Task 任务):取决于你要寻找的函数输出是什么类型(数值 Regression、选项 Classification,还是复杂结构 Structured Learning)。在任何一种蓝色学习情境下,你都可能需要去解决这三种红色任务中的任意一种。
- 绿色方块(Model 模型/方法):面对同一个红色任务,你可以选用不同的绿色模型(如 Linear、Deep Learning、SVM 等)去求解它。
理解了 Scenario(情境) $\times$ Task(任务) $\times$ Model(方法) 这三个维度的正交组合关系,你就掌握了整个机器学习领域的知识骨架!
Lecture 0: Introduction of Machine Learning_机器学习导论:从人工智能到学习地图的全景解析

