第一学期第二节课
太好了,我们继续。
这一节开始,我们正式进入机器学习真正的核心概念。
实际上,如果你去读《Pattern Recognition and Machine Learning》(PRML)或者 Andrew Ng 的课程,都会不断提到一个词:
Feature(特征)
很多初学者觉得它只是一个术语。
实际上,我认为:
Feature 是整个 AI 世界最重要的概念之一。
Transformer、CNN、LLM、Embedding……几乎所有模型都在做一件事情:
学习好的 Feature。
所以今天这节课,我们就专门讲 Feature。
第一学期 第二节课
《什么是特征(Feature)?为什么 AI 看到的世界和人类完全不同?》
第一部分:生活中的例子(建立直觉)
我们先来玩一个小游戏。
我依次描述三个东西。
第一个:
有四条腿
有尾巴
喜欢吃骨头
会看门
你脑子里是不是立刻想到:
狗。
为什么?
因为你的大脑不是记住了某一只狗。
而是提取了:
四条腿
尾巴
骨头
看门
这些共同特征。
第二个:
四条腿
有尾巴
喜欢抓老鼠
会喵喵叫
是不是想到:
猫。
为什么?
因为:
你的大脑关注的是:
抓老鼠
喵喵叫
而不是:
颜色。
第三个:
四条腿
有尾巴
会汪汪叫
颜色是黑色
如果:
下一只狗:
黄色
你还认识吗?
当然认识。
说明:
颜色不是最重要的。
真正重要的是:
汪汪叫
四条腿
尾巴
这些叫:
特征(Feature)
所以:
我们第一次正式定义:
Feature(特征)就是能够帮助区分不同事物的信息。
第二部分:理论(建立概念)
什么叫 Feature?
假设:
世界里只有:
猫
狗
我们可以设计几个特征。
这里:
每一列:
就是:
Feature。
例如:
现在输入:
会喵喵叫
会抓老鼠
模型:
直接知道:
猫
为什么?
因为:
Feature已经把世界描述清楚了。
所以:
机器学习真正干的第一件事情就是:
找到能够描述世界的 Feature。
再举一个例子。
预测房价。
哪些东西重要?
面积
↓
重要
楼层
↓
重要
地铁距离
↓
重要
装修
↓
重要
但是:
今天星期几
通常:
没什么关系。
所以:
不是所有数据都有价值。
只有:
真正影响结果的数据。
才叫:
Feature。
于是:
我们得到第二个定义。
Feature = 对预测有帮助的信息。
第三部分:数学(理解本质)
现在开始数学。
假设:
预测房价。
模型:
房价
=
面积 × a
+
楼层 × b
+
距离 × c
写成:
y=ax_1+bx_2+cx_3
这里:
面积
↓
Feature 1
楼层
↓
Feature 2
距离
↓
Feature 3
而:
a
b
c
就是:
参数。
注意:
Feature 和 Parameter 完全不是一回事。
很多人第一次学都会混。
我们整理一下。
假设:
面积=120㎡
楼层=8
距离地铁=500米
这些:
属于:
Feature。
因为:
来自现实。
不会训练。
而:
a=30000
b=2000
c=-10
这些:
属于:
Parameter。
因为:
模型会不断修改。
以后:
你会发现:
Transformer也是这样。
只是:
Feature变得非常复杂。
所以:
第一次出现一个非常重要的公式。
Prediction
=
Model
(
Feature,
Parameter
)
以后:
所有AI。
都是这个公式。
只是:
Model越来越复杂。
第四部分:代码(真正实现)
假设:
预测房价。
def model(area, floor, distance):
return area*30000 + floor*2000 - distance*10
price=model(120,8,500)
print(price)
这里:
120
不是参数。
而是:
Feature。
真正参数是:
30000
2000
-10
以后:
PyTorch里面:
也是:
Linear.weight
这些:
就是:
Parameter。
而:
输入:
x
就是:
Feature。
所以:
以后看到:
output=model(x)
这里:
x
本质就是:
Feature。
第五部分:GPU / 工程(现实世界怎么运行)
这一部分开始和真正的大模型连接。
很多人觉得:
ChatGPT:
输入:
你好
模型:
回答。
结束。
实际上:
GPU根本不知道:
"你好"
是什么。
GPU里面:
首先发生的是:
你好
↓
Tokenizer
↓
数字
例如:
1258
932
(这里只是举例,不是真实 Token ID。)
然后:
数字:
变成:
向量(Vector)
例如:
[0.18
-0.73
...
512维]
以后:
Transformer看到的:
已经不是:
文字。
而是:
Feature。
所以:
GPU一直处理的是:
Feature Vector
不是:
中文。
不是:
英文。
不是:
猫。
不是:
狗。
全部都是:
数字。
这里提前透露一句:
为什么:
Embedding那么重要?
因为:
Embedding就是:
把原始数据变成 Feature。
这一点。
以后会讲一个完整章节。
第六部分:真正的大模型为什么革命?
这里我们终于连接现代 AI。
以前(2012年以前):
Feature:
都是:
人设计。
例如:
识别人脸。
工程师会告诉机器:
眼睛距离
鼻子长度
嘴巴宽度
肤色
这些:
人工提取。
模型:
只负责学习参数。
所以:
那时候:
机器学习专家。
真正工作是:
天天设计 Feature。
后来。
深度学习来了。
革命发生了。
它告诉大家:
不要人工设计 Feature。
模型:
自己学。
所以:
CNN:
自己学习:
边缘
↓
纹理
↓
眼睛
↓
鼻子
↓
脸
Transformer:
自己学习:
字
↓
词
↓
句子
↓
语义
↓
知识
这就是:
为什么:
Deep Learning
叫:
深度学习。
不是因为:
网络很深。
真正原因是:
Feature越来越深。
本节总结
今天我们建立了两个极其重要的概念。
第一:
Feature
=
输入的信息
第二:
Parameter
=
模型里面可以学习的数字
千万不要混。
以后:
所有论文。
都会围绕:
Feature
↓
Model
↓
Prediction
进行。
我们现在已经建立了第一学期的知识树:
现实世界(Reality)
│
▼
数据(Data)
│
▼
特征(Feature)
│
▼
模型(Model)
│
▼
参数(Parameter)
│
▼
预测(Prediction)
请注意,这棵树已经开始成形了。
课后思考题(认真思考,不要急着查答案)
问题1
为什么下面两个东西不是同一个概念?
Feature
Parameter
很多人刚学的时候会混淆。
你能不能用自己的语言解释两者区别?
问题2
如果预测房价。
下面哪些应该作为 Feature?
面积
楼层
房龄
邮政编码
开发商
天气
星期几
装修情况
哪些有价值?
哪些可能没价值?
为什么?
问题3(最重要)
如果一张猫的图片有:
1920 × 1080 × 3
意味着大约 620 万个像素值。
这些都是数字。
为什么 AI 最后能够自己发现:"胡子""耳朵""眼睛"这些重要 Feature?
这正是下一节课要回答的问题。
下一节课预告:《模型为什么能够学习?——参数到底是怎么"记住"世界规律的?》
这一节开始,我们会进入真正的机器学习核心。
我们将回答:
为什么调整参数就能改变模型能力?
一个参数到底代表什么?
参数是不是"知识"?
为什么 GPT 有 700 亿参数?
参数和人脑神经元之间到底是什么关系?
从这一节开始,我们将正式进入神经网络的世界。后面的 Loss、梯度下降、反向传播,都将建立在这节课对"参数"的理解之上。