TTiti的学习笔记
首页 / 专业知识 / 05-Courses/人工智能/MIT_6S191_Introduction_to_Deep_Learning/01-课前基础知识补全.md

MIT 6.S191 课前基础知识补全

专业知识 · 05-Courses/人工智能/MIT_6S191_Introduction_to_Deep_Learning/01-课前基础知识补全.md

MIT 6.S191 课前基础知识补全

目标:不用额外搜索资料,先把看 MIT 6.S191 必须知道的数学、Python 和机器学习概念补到最低可用水平。这里的“最低可用”不是会完整证明,而是能听懂课程中的关键句子,能看懂 lab 中的代码结构,能把不懂的地方准确说出来。

1. 深度学习的统一框架

直觉解释:深度学习就是让一个由很多可调数字组成的函数,从数据中学习一种输入到输出的映射。输入可以是图片、文字、时间序列、状态向量;输出可以是类别、数值、下一个词、生成图片、动作选择。训练时,模型先做预测,再用 loss 衡量预测和真实目标的差距,然后用梯度更新参数。

专业表达:深度学习模型通常表示为带参数的函数 f(x; theta)。其中 x 是输入,theta 是模型参数,f 输出预测。训练目标是最小化经验风险,常见形式是:


min_theta  1/N * sum_i L(f(x_i; theta), y_i)

这里 L 是 loss function,N 是训练样本数。你不需要一开始掌握所有优化理论,但必须知道:训练不是让模型“记住答案”,而是通过不断降低 loss 来调整参数。

2. Tensor、vector、matrix

直觉解释:深度学习里的数据不是单个数字,而是成批的多维数组。一个样本可能有很多特征,一批样本就是二维矩阵;一张彩色图片有高度、宽度、通道;一批图片就变成四维 tensor。

专业表达:

名称中文理解常见 shape
scalar一个数字()
vector一列或一行数字(features,)
matrix二维数字表(samples, features)
tensor多维数组(batch, height, width, channels)(batch, seq_len, hidden_dim)

最重要的是 shape。很多深度学习报错不是模型理论错,而是 shape 对不上。例如 X @ W 要求 X 的最后一维等于 W 的第一维。


import numpy as np



X = np.random.randn(4, 3)   # 4 个样本,每个样本 3 个特征

W = np.random.randn(3, 2)   # 把 3 维特征映射成 2 维输出

b = np.random.randn(2)

Y = X @ W + b

print("X:", X.shape)

print("W:", W.shape)

print("b:", b.shape)

print("Y:", Y.shape)

你应该能解释:Y.shape(4, 2),因为每个样本从 3 维被映射到 2 维。

3. 矩阵乘法在模型中的意义

在神经网络里,X @ W + b 是最基本的线性层。它的意思不是简单做算术,而是把输入特征重新组合成新的表示。W 中的每个数都可以被训练修改,所以模型可以学习“哪些输入特征更重要,以及如何组合它们”。

专业表达:


Z = XW + b

A = activation(Z)

Z 是线性变换结果,A 是激活函数后的结果。激活函数让模型不只是线性模型。没有非线性激活,多层线性层叠起来仍然等价于一个线性层,表达能力有限。

常见激活函数:

激活函数直觉常见用途
ReLU负数变 0,正数保留CNN、MLP 中非常常见
sigmoid压到 0 到 1二分类概率,早期网络
tanh压到 -1 到 1RNN 中常见
softmax把一组分数变成概率分布多分类输出层

4. Loss function

直觉解释:loss 是模型错得有多严重的量化指标。模型不能只知道“错了”,还要知道“错了多少”,这样才能改参数。

常见 loss:

任务常见 loss直觉
回归MSE预测数值和真实数值的平方差
二分类Binary cross entropy预测概率和 0/1 标签的差距
多分类Cross entropy正确类别概率越低,惩罚越大
语言模型Token-level cross entropy下一个 token 预测错得多严重
去噪生成MSE 或 noise prediction loss预测噪声和真实噪声差多少

例子:如果图片真实类别是“猫”,模型给猫的概率是 0.9,loss 较小;如果给猫的概率是 0.1,loss 较大。训练目标就是让正确答案的概率越来越高。

5. 梯度与链式法则

直觉解释:梯度告诉我们,如果某个参数稍微变大一点,loss 会变大还是变小。训练时,模型沿着让 loss 下降的方向更新参数。

专业表达:如果 loss 是 L(theta),梯度是 dL/dtheta。梯度下降更新公式是:


theta_new = theta_old - learning_rate * gradient

这里的 learning_rate 是学习率,控制每次走多大一步。太大可能震荡或发散,太小可能训练很慢。

最小例子:


w = 1.0

x = 2.0

y_true = 5.0

lr = 0.1



for step in range(10):

    y_pred = w * x

    loss = (y_pred - y_true) ** 2

    grad_w = 2 * (y_pred - y_true) * x

    w = w - lr * grad_w

    print(step, round(w, 3), round(loss, 3))

你要观察的是 loss 是否下降,而不是只看代码能不能运行。

6. Backpropagation

backpropagation 不等于神经网络本身。它是一种高效计算梯度的方法。神经网络有很多层,loss 对最前面参数的影响要穿过后面的层才能算出来。链式法则负责把这种影响一层层传回去。

流程图:


flowchart LR

    X["输入 x"] --> F["forward pass"]

    F --> YHAT["预测 y_hat"]

    Y["真实 y"] --> L["loss"]

    YHAT --> L

    L --> B["backpropagation 计算梯度"]

    B --> O["optimizer 更新参数"]

    O --> F

如果你能说出这张图,就已经掌握了深度学习训练的主干。

7. Overfitting 和 generalization

直觉解释:模型在训练集上表现好,不代表在新数据上表现好。如果模型只是记住训练样本,它在真实任务中可能失败。

专业表达:overfitting 是训练误差低但测试误差高的现象。generalization 指模型在未见数据上的表现。

常见检查:

  • 训练 loss 下降,验证 loss 也下降:比较健康。
  • 训练 loss 下降,验证 loss 上升:可能过拟合。
  • 训练和验证 loss 都不下降:可能模型太弱、学习率不对、数据有问题。
  • 指标很好但样本很少:需要警惕偶然性。

8. Python/Jupyter 最小能力

你不需要一开始会写复杂工程,但必须会做这些事:


print(type(x))

print(x.shape)

print(x[:5])

print(np.isnan(x).sum())

如果使用 PyTorch,还要会:


import torch



x = torch.randn(8, 10)

linear = torch.nn.Linear(10, 3)

logits = linear(x)

print(logits.shape)

这段代码的含义是:8 个样本,每个 10 维,经过线性层后变成 3 维输出,常用于三分类。

9. 课前自测答案框架

  1. 为什么要最小化 loss?因为 loss 衡量预测和目标差距,降低 loss 才能让模型参数朝任务目标调整。
  2. X @ W + b 是什么?它是线性层,X 是输入,W 是权重,b 是偏置,输出是新的特征表示。
  3. 为什么 shape 重要?因为矩阵乘法、卷积、attention 都依赖维度匹配。
  4. cross entropy 用在哪里?分类和语言模型中常见,用来惩罚正确类别概率过低。
  5. MSE 用在哪里?回归和去噪任务中常见,用来衡量连续数值差距。

10. 可以问 AI 的提示词


请用跨专业硕士新生能懂的方式解释【概念】。要求先给直觉解释,再给专业表达,再给一个最小 Python/PyTorch 例子。最后请列出我最容易误解的 3 点,并给 5 个自测问题。