第一学期第一节课
太好了,我很期待和你一起完成这个系列。
另外,我想对课程再加一个要求,也是我希望坚持做到的。
这门课的教学目标
很多教程的目标是:
让你记住知识。
而我的目标是:
让你建立认知。
什么意思?
例如以后你看到一篇论文:
FlashAttention-4
即使你没看过。
你也应该能够自己推理:
它大概率是在优化 Attention 的计算或者内存。
为什么?
因为你的脑子里已经建立了完整知识树。
真正的专家不是:
看过很多论文。
而是:
没看过论文,也能猜到论文为什么这么设计。
这就是我们整个课程要培养的能力。
课程约定
以后每节课都会固定采用下面六个部分。
① 生活中的例子(建立直觉)
↓
② 理论(建立概念)
↓
③ 数学(理解本质)
↓
④ 代码(真正实现)
↓
⑤ GPU / 工程(现实世界怎么运行)
↓
⑥ 总结 + 思考题 + 下一课预告
这样你不会出现:
数学懂了,但是不会写代码。
或者:
会写代码,但是不知道 GPU 为什么快。
第一学期 第一节课
《计算机为什么能够学习?》
这是整个 AI 的起点。
很多课程第一句话就是:
神经网络由很多神经元组成……
我不会这样讲。
因为真正的问题其实是:
学习,到底是什么?
如果不知道学习是什么,
后面所有东西都会变成背概念。
第一部分:生活中的例子(建立直觉)
假设现在有两个小朋友。
一个五岁。
一个刚出生。
我拿出一张图片。
🐱
我问:
这是什么?
五岁的孩子说:
猫。
刚出生的婴儿不知道。
为什么?
很多人第一反应是:
因为五岁的孩子更聪明。
其实不是。
真正原因只有一句话:
五岁的孩子见过很多猫。
也就是说:
经验
↓
形成规律
↓
以后遇到新的东西
↓
能够判断
请注意。
这里面没有任何"魔法"。
只有:
经验。
再举一个例子
假设你小时候没见过斑马。
第一次看到:
🦓
你可能会说:
黑白相间的马?
为什么?
因为你的脑子已经学到了:
马
↓
四条腿
↓
有尾巴
↓
会跑
所以你会利用已有经验去推理。
学习其实就是:
根据过去的经验,总结规律,然后预测未来。
这句话,请先记住。
以后我们会不断回来解释它。
第二部分:理论(建立概念)
现在我们开始真正定义。
以后所有 AI 都建立在四个概念上。
世界(Reality)
↓
数据(Data)
↓
模型(Model)
↓
预测(Prediction)
这四个词以后会出现无数次。
我们一个一个讲。
什么叫世界(Reality)
现实世界存在很多规律。
例如:
今天下雨
↓
地面会湿
例如:
温度越高
↓
冰越容易融化
例如:
猫
↓
通常有胡子
这些规律一直存在。
无论有没有 AI。
AI 不会创造规律。
AI 只是:
发现规律。
这一点非常重要。
什么叫数据(Data)
规律不能直接给计算机。
所以:
必须变成数据。
例如:
猫。
对于人来说:
是一只动物。
但是计算机看到的是:
图片
↓
像素
↓
数字
例如:
一张图片。
实际上可能是:
125
210
18
255
...
几百万个数字
不是猫。
只有数字。
所以:
计算机永远不知道什么是猫。
它只知道:
很多数字。
什么叫模型(Model)
这里很多人容易误解。
模型不是:
ChatGPT。
模型不是:
Transformer。
模型真正意思是:
描述规律的方法。
例如:
小学学过:
距离 = 速度 × 时间
这是模型吗?
是。
因为它描述了:
速度和距离之间的规律。
再例如:
房价
=
面积 × 单价
也是模型。
模型就是:
输入一些东西。
得到:
输出。
AI 也是一样。
只是:
公式特别复杂。
什么叫预测(Prediction)
假设:
模型已经学习完成。
现在输入:
一张新图片
模型说:
98%
猫
这就是:
Prediction。
以后:
无论:
GPT
Llama
DeepSeek
Qwen
Gemini
全部都在干一件事:
Prediction。
训练只是为了:
让 Prediction 更准。
第三部分:数学(理解本质)
现在开始数学。
但是今天不会有复杂公式。
只有一个最重要的模型。
小学学过:
y = ax + b
是不是模型?
当然。
例如:
工资
=
工作天数
×
每天工资
是不是:
y=ax
可以。
这里:
工作天数
↓
输入
工资
↓
输出
中间:
a
↓
每天工资
就是参数。
例如:
一天100元
a=100
工作:
20天。
工资:
2000
如果:
一天:
300元。
工资立刻变化。
说明:
参数决定模型行为。
以后:
Transformer。
也是这样。
只是:
参数不是:
1个。
而是:
700亿个。
第四部分:代码(真正实现)
今天我们不用任何 AI。
只写最简单代码。
例如:
def model(days, salary_per_day):
return days * salary_per_day
print(model(20,100))
输出:
2000
这里:
salary_per_day
就是参数。
以后:
PyTorch:
也是:
Parameter
只是:
不是一个。
而是:
几十亿个。
所以:
Parameter(参数)并不是 AI 独有的概念,它本质上就是模型中可以调整的变量。
再写一个稍微复杂一点的模型
def model(x, a, b):
return a*x+b
print(model(5,2,3))
输出:
13
这里:
a
b
都可以改变。
训练真正做的事情就是:
不断修改:
a
b
直到:
模型越来越准确。
今天先不要关心:
怎么修改。
下一节课会讲。
第五部分:GPU / 工程(现实世界怎么运行)
这里开始和真实 AI 联系起来。
假设:
现在模型只有:
a
b
CPU:
算一下。
毫秒级。
如果:
ChatGPT:
7000亿参数
那意味着:
一次预测。
不是:
2×5+3
而是:
7000亿次左右的参数参与计算
(实际计算量还远大于参数数量,因为参数会在多个矩阵运算中反复参与。)
CPU:
已经不现实。
GPU:
为什么快?
因为:
它可以:
一次
计算成千上万个数字
所以:
以后:
GPU。
本质就是:
帮助模型更快地完成大量参数计算。
今天不用记 CUDA。
不用记 Tensor Core。
先知道:
GPU 为什么存在。
就够了。
第六部分:本节总结
今天只建立了四个概念。
但是它们是整个 AI 的根。
现实世界
↓
规律
↓
数据
↓
模型
↓
预测
然后:
模型里面:
有:
参数(Parameter)
训练真正做的是:
修改参数
↓
预测越来越准确
注意,我们今天故意没有讲:
神经网络
Loss
梯度
Transformer
因为这些都建立在一个前提之上:
模型必须先存在,参数必须可以调整。
否则后面的内容没有落脚点。
课后思考题(建议认真思考,不急着查答案)
这是我每节课都会留的思考题。
问题 1
如果一个模型有:
y = ax + b
现在:
a = 2
b = 3
它能表示世界上所有规律吗?
如果不能。
为什么?
问题 2
假设:
模型里面没有参数。
例如:
y = x + 5
那么:
它还能学习吗?
为什么?
问题 3(最重要)
为什么人看见:
🐱
知道这是猫。
而计算机看见:
🐱
实际上看到的是:
255
18
76
...
那么:
计算机到底是怎么把这些数字理解成"猫"的?
下一节课预告:《什么是特征(Feature)?为什么 AI 看到的世界和人类完全不同?》
这是机器学习真正的起点。
我们会回答几个关键问题:
为什么计算机眼中的图片只是数字?
什么叫 Feature(特征)?
为什么"胡子"、"耳朵"、"轮子"这些特征如此重要?
为什么早期 AI 需要人工设计特征,而深度学习能够自动学习特征?
为什么说 Transformer 本质上也是一个自动提取特征的机器?
这节课结束后,你会真正理解"数据"是如何一步步变成模型可以理解的信息,为后面进入神经网络做好准备。