数学基础
🧮 线性代数:深度学习的语法
想象一下,你要建一栋大楼(深度学习模型),线性代数就是你的砖块、水泥和钢筋。它不是大楼本身,但整个大楼都由它们构成。数据、模型参数、计算过程,几乎一切都是用线性代数的语言描述的。
一、数学对象:从点到体
1. 标量 (Scalar) - "一个数"
- 是什么:就是一个简单的数字,比如
3,-5.2,π。 - 大白话:就像你体温计上的读数 36.5℃,它是一个单一、独立的值。
- 表示:通常用普通小写字母表示,如 , , 。
- 例子: ,
2. 向量 (Vector) - "一串数/一个方向"
- 是什么:是一列有序排列的数字。它可以表示一个点的坐标,也可以表示一个有方向和大小的箭头(向量)。
- 大白话:
- 数据角度:一个人的体检报告
[身高(m), 体重(kg), 年龄] = [1.75, 70, 25],这就是一个3维向量,描述了这个人一个样本的特征。 - 几何角度:从原点
(0,0)指向点(3,4)的箭头,它的向量表示就是 。
- 数据角度:一个人的体检报告
- 表示:用粗体小写字母表示,如 , 。它的维度(dimension)就是它包含的数字个数。
- 例子: 一个点的坐标或一个人的特征 , (身高m, 体重kg, 年龄)
3. 矩阵 (Matrix) - "一个表格"
- 是什么:一个二维的数字表格,有行有列。它是向量的拓展。
- 大白话:
- 数据角度:一个班级所有学生的成绩单。每一行是一个学生(一个样本),每一列是一门科目(一个特征)。这是一个
(学生数量 × 科目数量)的矩阵。 - 变换角度:矩阵可以看作一个函数或一个动作。一个矩阵可以作用在一个向量上,对其进行旋转、拉伸、缩放等操作。
- 数据角度:一个班级所有学生的成绩单。每一行是一个学生(一个样本),每一列是一门科目(一个特征)。这是一个
- 表示:用粗体大写字母表示,如 , 。它的形状是
(行数 × 列数)。 - 例子: 两个学生的成绩单(语文、数学、英语)
- 第一行学生:
[85, 90, 92] - 第二行学生:
[70, 80, 75]
- 第一行学生:
4. 张量 (Tensor) - "一组表格/一个数据立方体"
- 是什么:超过两维的数组。你可以理解为"矩阵的堆叠"。
- 大白话:
- 一张彩色图片就是一个3维张量。它的形状是
(高度, 宽度, 通道数)。比如(224, 224, 3)表示一张224像素高、224像素宽、有3个颜色通道(红、绿、蓝)的图片。 - 一个视频就是一个4维张量
(帧数, 高度, 宽度, 通道数)。 - 一个批量(Batch)的图片也是一个4维张量
(批量大小, 高度, 宽度, 通道数)。
- 一张彩色图片就是一个3维张量。它的形状是
- 表示:通常用普通大写字母表示,如 , 。在深度学习中,数据基本都是张量形式。
- 例子: 一个包含2张3x3大小RGB图片的批量数据
shape = (2, 3, 3, 3)(批量大小, 高, 宽, 通道数)
二、简单运算:如何操作这些对象
1. 矩阵转置 (Transpose) - "行列互换"
- 操作:将矩阵的行变成列,列变成行。
- 为什么重要:为了满足矩阵乘法的维度要求。比如,一个列向量 的转置 就是一个行向量,这样才能和另一个列向量进行乘法 (得到一个标量,即内积)。
- 例子: , 则
- 计算: 第一行
[1,2]变为第一列 ,第二行[3,4]变为第二列 ,以此类推。
- 计算: 第一行
2. 矩阵乘法 (Matrix Multiplication) - "核心中的核心"
- 规则:不是对应位置相乘!如果 是 的矩阵, 是 的矩阵,那么它们的乘积 是一个 的矩阵。 中第 行第 列的元素,等于 的第 行 和 的第 列 对应元素相乘再求和。
- 大白话:像用 的每一行去"扫描" 的每一列,做点乘。
- 几何意义:连续的空间变换。如果 和 都是变换矩阵,那么 表示先做 变换,再做 变换的复合变换。
- 在深度学习中的应用:神经网络的前向传播就是一场巨大的矩阵乘法盛宴。一层的输出(一个向量/矩阵)乘以下一层的权重矩阵,得到下一层的输入。
- 例子: ,
- 求 。
- 计算:
- 重要提示: (矩阵乘法不满足交换律)
3. 元素积 (Hadamard Product) - "温和的对应位置操作"
- 操作:两个形状完全相同的矩阵(或张量),对应位置的元素相乘。
- 大白话:不像矩阵乘法那样产生全局影响,它只是局部调整。比如在注意力机制中,会用 mask(掩码)矩阵通过元素积来屏蔽掉无效位置的信息。
- 例子: ,
4. 逆矩阵 (Inverse Matrix) - "时光倒流"
- 定义:如果存在一个矩阵 ,使得 (单位矩阵),那么 就是 的逆矩阵。
- 大白话:如果矩阵 代表一种变换(比如旋转90度),那么逆矩阵 就代表这个变换的逆操作(再旋转回来,即-90度)。不是所有矩阵都可逆,只有方阵(行数=列数)且是满秩的才可能可逆。
- 例子: , 其逆矩阵
- 验证:
三、线性方程组:一切的起源
- 形式:
其中 是系数矩阵, 是未知数向量, 是常数向量。
- 几何解释:寻找一个向量 ,使得经过矩阵 代表的线性变换后,恰好落在目标向量 上。
- 解的情况(非常重要):
- 有唯一解: 是方阵且可逆(满秩)。这意味着变换后没有丢失信息,可以完美地逆变换回去找到 。就像在一个平面上,两条不平行且不重合的直线相交于一点。
- 无解:方程数多于未知数 (),且方程之间存在矛盾。这通常意味着我们的模型太简单(容量低),无法完美拟合所有数据点(欠拟合)。就像想用一条直线去拟合三个不在一条直线上的点。
- 有无穷多解:方程数少于未知数 (),或者方程之间存在依赖关系。这意味着变换过程中丢失了信息,有无数种方式可以映射到 。这通常意味着我们的模型太复杂,有很多组参数都能完美拟合训练数据(过拟合)。就像想用一个平面去拟合一条直线,整个平面上的点都满足条件。
四、范数 (Norm):衡量"大小"的尺子
范数是用来衡量向量(或矩阵)大小 的函数。不同的范数有不同的衡量方式。
1. 范数家族
对于一个 维向量 ,其 范数定义为:
- 范数 (欧几里得范数):
- 大白话:就是向量的几何长度。从原点出发到向量所指点的直线距离。在深度学习中最常用,比如用作损失函数(MSE)。
例子: - - 几何意义: 这个向量的长度就是5。
范数:
- 大白话:各个维度坐标值的绝对值之和。它的几何形状是菱形,在优化中会产生稀疏解(即让很多参数变成0),用于特征选择。
- 例子:
范数 (最大范数):
- 大白话:只关心向量中绝对值最大的那个分量。表示向量分量中的最大幅度。
- 例子:
2. Frobenius 范数 (矩阵的范数)
- 定义:把所有元素平方求和再开根号,其实就是把矩阵拉直成一个向量后求其 范数。
- 大白话:衡量整个矩阵的"能量"或"大小"。在深度学习中,我们经常在正则化(如权重衰减)中使用它,通过限制权重矩阵的 Frobenius 范数来防止模型过拟合。公式 里的 其实就是权重向量的 范数的平方,对于矩阵就是 Frobenius 范数的平方。
- 例子:
这个值衡量了矩阵中所有元素的"总强度"。在正则化中,我们通过惩罚这个值来限制模型复杂度。
建筑材料采购与成本控制
- 你是建筑设计师,采购不同规格木材构建房屋框架。用矩阵 表示木材采购信息,行代表木材类型,列分别是长度(米)和每米价格(元)。计算其 Frobenius 范数 ,此值为采购方案“综合成本强度”。若超预算,可构建“预算矩阵” 并计算其 ,对比 与 后调整采购方案。
图像处理示例:图像噪声控制
- 把灰度图像看作矩阵,如 ,其元素是像素灰度值。计算。再收集正常无噪图像计算其 Frobenius 范数范围。若当前图像该值超出此范围,可能受噪声干扰,超出幅度越大噪声影响越重。
✅ 总结
| 概念 | 数学本质 | 核心比喻 | 在深度学习中的作用 |
|---|---|---|---|
| 标量 | 单个数字 | 一个温度值 | 学习率、偏置等单个参数 |
| 向量 | 一串数字/一个方向 | 一个人的特征向量 | 单样本数据、一层神经元的输出 |
| 矩阵 | 二维表格/一种变换 | 全班成绩单/一个变换动作 | 权重矩阵、整个批次的数据 |
| 张量 | 高维数组 | 一个数据立方体 | 输入数据(如图片)、中间特征 |
| 矩阵乘法 | 行点乘列 | 用A的行扫描B的列 | 神经网络前向传播的核心计算 |
| 线性方程组 | 寻找一个变换后的目标 | 模型拟合的本质,解的情况对应欠/过拟合 | |
| 范数 | 平方和开根 | 几何长度 | 损失函数(MSE)、权重正则化 |
| Frobenius范数 | 所有元素平方和开根 | 矩阵的"能量" | 权重矩阵的正则化,防止过拟合 |
🎲 概率论:描述不确定性的语言
如果说线性代数是深度学习的骨架,那么概率论就是它的灵魂。它让机器学会在不确定的环境中做出最优决策。
一、随机变量 (Random Variable) - “不确定的量”
- 理论:一个其值取决于随机现象结果的变量。它不是传统的“变量”,而是一个函数,将随机实验的每一个可能结果映射到一个数值。
- 大白话:就像一个即将掷出的骰子朝上的点数,在掷出之前,它的值是不确定的(可能是1到6中的任何一个)。我们用一个大写字母(如 )来表示这个“未来的数字”。
- 例子:
- : 掷一枚公平骰子一次的结果。 的可能取值是 {1, 2, 3, 4, 5, 6}。
- : 明天中午的气温。
- : 某条新闻是假新闻的概率。
- 类型:
- 离散随机变量:取值是可数的(如骰子点数、次数)。
- 连续随机变量:取值在连续区间内(如温度、身高、概率)。
- 核心思想:随机变量 是一个函数,它将随机实验的样本空间(所有可能结果的集合)映射到实数集。我们关心的是这些数字的概率。
二、概率分布 (Probability Distribution) - “可能性地图”
- 理论:描述一个随机变量所有可能取值及其对应可能性的规则。
- 大白话:一张告诉你哪个结果更可能出现、哪个结果不太可能出现的地图或说明书。
- 例子:对于公平骰子 ,它的概率分布告诉我们每个点数出现的可能性都是 。
- 关系:PMF 和 PDF 是描述概率分布的两种主要数学工具。
三、概率质量函数 (PMF) - “离散变量的分布说明书”
- 理论:专门用于离散随机变量的函数 ,它给出了随机变量 恰好等于某个特定值 的概率。
- 必须满足:
- (概率值在0到1之间)
- \sum_{\text{所有 } x} P(X=x) = 1 (所有可能情况的概率之和为1)
- 例子:不公平骰子,其PMF如下:
- 检查:,满足条件。
四、概率密度函数 (PDF) - “连续变量的相对可能性手册”
- 理论:专门用于连续随机变量的函数 。注意:对于连续变量,取某个精确值的概率为0(因为点无穷多)。PDF 的值本身不是概率,但其在某个区间上的积分代表概率。
- 必须满足:
- (密度非负)
- (总面积为1)
- 大白话:PDF值高的地方,表示随机变量落在该值附近的可能性更大。概率是PDF曲线下一块面积。
- 例子:成年男性身高 近似服从正态分布,PDF为 。
- 身高在170cm到175cm之间的概率是多少? (求曲线下从170到175的面积)。
- (精确到无穷位)的概率是多少?几乎是0。
五、边缘概率 (Marginal Probability) - “从表格中求总和”
- 理论:在联合概率分布(多个变量的分布)中,忽略其他变量,只关心某一个变量的概率。
- 大白话:有一个学生成绩和性别的联合分布表。如果你只想知道学生的成绩分布(不管性别),就把表中同一成绩下不同性别的概率都加起来。这个“加起来”的过程就是边缘化。
- 例子:随机调查一个人的眼睛颜色 () 和头发颜色 (),得到联合概率表(简化):
| 金发 (H1) | 棕发 (H2) | 边缘概率 P(E) | |
|---|---|---|---|
| 蓝眼 (E1) | 0.2 | 0.1 | 0.3 |
| 棕眼 (E2) | 0.1 | 0.6 | 0.7 |
| 边缘概率 P(H) | 0.3 | 0.7 | 1.0 |
- P(蓝眼) = P(E1) 的边缘概率 =
- P(棕发) = P(H2) 的边缘概率 =
- 对于连续变量:
- 核心思想:边缘概率是通过对联合概率分布进行边缘化(求和或积分)得到的。
六、条件概率 (Conditional Probability) - “已知前提下的可能性”
- 理论:在事件 已经发生的条件下,事件 发生的概率。记作 。
- 公式: (要求 )
- 大白话:缩小样本空间。我们把关注点从整个世界,缩小到所有满足 的情况,然后再看在这些情况中 也发生的比例。
- 例子:沿用上表的例子。
- 问题:已知一个人是金发 (),求他是蓝眼 () 的概率?即求 。
| 金发 (H1) | 棕发 (H2) | 边缘概率 P(E) | |
|---|---|---|---|
| 蓝眼 (E1) | 0.2 | 0.1 | 0.3 |
| 棕眼 (E2) | 0.1 | 0.6 | 0.7 |
| 边缘概率 P(H) | 0.3 | 0.7 | 1.0 |
* **计算**:
* 分子 $P(E1, H1) = 0.2$ (既是蓝眼又是金发的概率)
* 分母 $P(H1) = 0.3$ (是金发的总概率)
* $P(E1|H1) = \frac{0.2}{0.3} \approx 0.667$
* **解释**:在所有金发的人中,有大约66.7%的人是蓝眼。
- 核心思想:条件概率 是在已知信息 的情况下,对 发生可能性的重新评估。如果信息 不能改变我们对 的看法,则称 与 独立。
七、独立 vs. 条件独立
独立 (Independent)
- 理论:两个事件 和 相互独立,意味着知道 是否发生无助于你预测 是否会发生。公式:。
- 大白话:两件完全不相关的事。比如“你扔硬币得到正面”和“我扔骰子得到6点”。
- 例子:P(硬币正面) = 0.5, P(骰子6点) = 1/6。P(硬币正面, 骰子6点) = 0.5 \times 1/6 = 1/12。
条件独立 (Conditionally Independent)
- 理论:在给定另一个事件 发生后, 和 变得独立了。公式:。
- 大白话:本来两件事可能有关联,但一旦知道了某个“真相” ,它们就没关系了。
- 经典例子:
- : 你的草坪是湿的。
- : 你邻居的草坪是湿的。
- : 昨晚下雨了。
- 分析:在不知道 (是否下雨)时, 和 是相关的(你家草坪湿了,会让你觉得邻居家草坪也可能湿了)。但一旦知道昨晚下雨了 (),你家草坪湿 () 和邻居家草坪湿 () 就都得到了解释,它们之间就不再提供关于对方的额外信息,即在给定 的条件下, 和 是独立的。
- 独立性例子:掷一次公平骰子,A=\{点数为偶数\}, B=\{点数>3\}。
- , , .
- ,故 和 不独立。
八、期望 (Expectation) - “长期平均价值”
- 理论:随机变量 的期望 是其所有可能值的加权平均,权重就是对应的概率。它表示如果你无数次重复实验,得到的平均值。
- 公式:
- 离散:
- 连续:
- 大白话:一个投资的“预期回报”,或者一个游戏的“理论上的平均收益”。
- 例子:掷不公平骰子(PMF如前所述),求期望值。 这意味着长期来看,掷这个骰子的平均点数是3.7。
- 核心思想:期望 描述分布的中心(均值),方差 描述分布的分散程度(离散度)。
- 线性性质: (极其重要!)
九、方差 & 协方差 (Variance & Covariance)
方差 (Variance)
- 理论:衡量随机变量偏离其期望值的程度。方差越大,数据越分散。
- 公式:
- 大白话:衡量“波动性”或“稳定性”。比如一只股票方差大,说明它价格波动剧烈。
- 例子:掷公平骰子,。
- 性质:
协方差 (Covariance)
- 理论:衡量两个随机变量一起变化的趋势。
- 正值:一个变大,另一个也倾向于变大。
- 负值:一个变大,另一个倾向于变小。
- 接近零:线性关系弱。
- 公式:
- 大白话:衡量“协同性”。
- 例子:身高和体重通常有正协方差。
- 核心思想:协方差 衡量两个随机变量共同变化的趋势。
- 理论:衡量两个随机变量一起变化的趋势。
协方差矩阵 (Covariance Matrix)
- 理论:将多个随机变量(如一个向量的各个分量)之间的协方差组织成一个矩阵。
- 大白话:描述一个多维数据中,各个维度自身如何变化,以及彼此之间如何关联的总结报告。在深度学习中非常重要,例如用于PCA等算法。
- 例子:考虑两个变量 和 的协方差矩阵
假设 , ,
- 理论:将多个随机变量(如一个向量的各个分量)之间的协方差组织成一个矩阵。
十、常见的概率分布
伯努利分布 (Bernoulli)
- 描述:一次试验,两个结果(成功/失败,1/0)。
- 参数: (成功的概率)
- PMF:,
- 例子:掷一次硬币(正面为1)。
范畴分布 (Categorical) / 多项分布 (Multinoulli)
- 描述:一次试验,个结果。
- 参数:向量 ,
- PMF:
- 例子:掷一次骰子()。
高斯(正态)分布 (Gaussian/Normal)
- 描述:著名的“钟形曲线”。描述大量独立随机变量之和的分布(中心极限定理)。
- 参数:均值 (中心位置), 方差 (分散程度)
- PDF:
- 例子:身高、测量误差、考试成绩等都近似服从正态分布。
多元高斯分布 (Multivariate Gaussian)
- 描述:高斯分布向高维空间的推广。
- 参数:均值向量 \boldsymbol{\mu}, 协方差矩阵 \boldsymbol{\Sigma}
- PDF:p(\mathbf{x}) = \frac{1}{(2\pi)^{n/2} |\boldsymbol{\Sigma}|^{1/2}} \exp\left( -\frac{1}{2} (\mathbf{x} - \boldsymbol{\mu})^T \boldsymbol{\Sigma}^{-1} (\mathbf{x} - \boldsymbol{\mu}) \right)
- 大白话:不仅描述了每个维度的分布,还通过 \boldsymbol{\Sigma} 描述了维度之间的相关性。
十一、贝叶斯定理 (Bayes' Theorem) - “用新证据更新信念”
- 理论:描述了在已知相关证据后,如何更新我们对某个假设的信念。
- 公式:
- : 先验概率 (Prior)。在看到证据 之前,我们对假设 的初始信念。
- : 似然 (Likelihood)。如果假设 成立,我们看到证据 的可能性有多大。
- : 证据 (Evidence) 或边缘似然。看到证据 的总概率(考虑所有可能假设)。
- : 后验概率 (Posterior)。在看到证据 之后,我们对假设 的更新后的信念。
- 大白话:“原因”导致“结果”。现在我们观察到了“结果”,反过来推断是哪个“原因”造成的可能性更大。
- 经典例子:疾病检测
- : 一个人患病。
- : 检测结果为阳性。
- 已知:
- 患病率 (先验)
- 检测准确率:如果真有病,检测为阳性的概率 (似然,真阳性率)
- 如果没病,检测为阳性的概率 (假阳性率)
- 问题:如果一个人检测结果是阳性,他真正患病的概率是多少?即求 (后验)。
- 计算:
- 计算总阳性率 (证据):
- 应用贝叶斯定理:
- 结论:即使检测非常准确(99%),一个检测呈阳性的人真正患病的概率也只有16.67%。这是因为患病率(先验)太低了。这个例子凸显了理解先验概率的重要性。
- 核心思想:贝叶斯定理提供了一个系统化的框架,用于在获得新证据后,从先验信念更新为后验信念。
贝叶斯定理是贝叶斯统计、垃圾邮件过滤、医学诊断和许多机器学习算法(如朴素贝叶斯分类器)的核心。
🧠 优化:为机器学习寻找最佳配方
想象一下,你正在调一杯鸡尾酒。每种成分的量就是参数,酒的味道是模型表现,你的目标是找到最好的配方,让味道最棒。优化,就是帮你找到这个最佳配方的系统化方法。
一、基于梯度的优化 (Gradient-Based Optimization) - 指南针与地图
核心思想:我们有一个需要最小化(或最大化)的函数 ,称为目标函数(或损失函数、成本函数)。 代表所有参数(如权重 和偏置 )。基于梯度的优化利用函数的梯度(Gradient)来指导我们如何调整 ,以最快地到达函数的最低点。
关键概念:
- 导数 / 梯度 :
- 理论:函数在某一点的斜率。对于多元函数,梯度是一个向量,每个分量是该点沿某个坐标轴方向的斜率。
- 大白话:指南针。它告诉你哪个方向是下山最快的方向。梯度方向是函数值上升最快的方向,所以负梯度方向就是下降最快的方向。
- 例子:,在 处的导数 ,表示此处正在上升,要下山需向左(负方向)移动。
- 学习率 (Learning Rate) :
- 理论:一个超参数,控制每次参数更新步长的大小。
- 大白话:步幅。步子太大( 太大)可能会跨过谷底甚至导致发散;步子太小( 太小)下山速度太慢,永远到不了底。
- 导数 / 梯度 :
二、梯度下降 (Gradient Descent) - 一步步下山
算法:
几何解释:想象你蒙着眼在一个凹凸不平的山坡上,只能靠脚感受坡度。你每走一步,都朝着当下最陡的下山方向迈出一小步。梯度下降就是这个过程的形式化。
例子:最小化 。
- 导数 。
- 设初始点 ,学习率 。
- 迭代过程:
- ... 不断迭代, 会逐渐接近全局最小值点 。
可以看到, 的值随着迭代次数的增加,逐渐逼近理论最小值 。
三、临界点 (Critical Points) - 山谷、山顶和马鞍点
- 定义:梯度为零的点,即 。在这里,“指南针”失灵了,没有明确的下降方向。
种类:
- 局部最小值 (Local Minimum):
- 特点:该点比所有邻近点都低。
- 比喻:一个小山谷的底部。虽然可能不是整片山区的最低点(全局最小),但你已经很难直接出去了。
- 在深度学习中的意义:很多时候,找到一个表现良好的局部最小值就已经足够,我们不一定非要找到全局最小。
- 局部最大值 (Local Maximum):
- 特点:该点比所有邻近点都高。
- 比喻:一个小山顶。
- 在深度学习中的意义:在最小化损失函数时,这是我们想避免的。
- 鞍点 (Saddle Point):
- 特点:在某些方向上是极小值,在另一些方向上是极大值。
- 比喻:马鞍的中心。沿着马头到马尾的方向,你是坐在最低点;沿着身体两侧的方向,你是坐在最高点。
- 在深度学习中的意义:在高维空间中非常常见。梯度为零,但并不是极值点。传统的梯度下降会在鞍点附近停滞很久,需要更高级的优化器(如带动量的)才能逃离。
- 局部最小值 (Local Minimum):
例子:函数 。在点 处:
- 沿 轴方向(),,是碗形, 是极小值。
- 沿 轴方向(),,是倒碗形, 是极大值。
- 因此, 是鞍点。
四、多元函数的梯度下降 - 在复杂地形下山
核心:对于多元函数 ,梯度 是一个向量:
更新规则完全相同:
例子:最小化函数 。显然最小值在 处。
- 计算梯度: 所以
- 设初始点 ,学习率 。
- 第一次迭代:
- 这个点 比 更接近 了。
五、微积分运算法则 - 计算梯度的工具包
要计算复杂函数的梯度,我们需要一些工具。最重要的是链式法则,它是反向传播算法的基石。
链式法则 (Chain Rule):
- 理论:如果 和 ,那么 对 的导数为 。
- 大白话:如果一条路是分段走的,那么总的坡度变化等于每一段路坡度变化的乘积。
- 例子:。令 , 。 则 。
乘法法则 (Product Rule):
- 理论:。
- 例子:。 。
除法法则 (Quotient Rule):
- 理论:。
- 例子:。 。
六、两步求导(以神经网络为例)
神经网络的损失函数 极其复杂,是嵌套了无数层的复合函数。求梯度 的过程,就是反复应用链式法则,从输出层反向一步步推算到输入层,故名反向传播。
- 过程解读:
- 前向传播:沿着
x -> z -> a -> L计算预测值和损失。 - 反向传播:
- 先计算损失 对最终输出 的梯度 。
- 然后这个梯度被反向传递,乘以 对它的输入 的梯度 ,得到 。
- 这个梯度继续反向传递,乘以 对参数 的梯度 ,最终得到我们需要的 。
- 参数更新:利用计算出的梯度 来更新参数:。
- 前向传播:沿着
这个过程对于网络中的每一个参数(每一层的 和 )都会进行一遍,高效地计算出所有梯度。
✅ 总结
| 概念 | 数学本质 | 核心比喻 | 在深度学习中的作用 |
|---|---|---|---|
| 梯度 | 指南针 | 指示参数更新的最快下降方向 | |
| 学习率 | 步幅 | 控制每次参数更新的步长大小 | |
| 梯度下降 | 蒙眼下山 | 核心优化算法,迭代寻找最小值 | |
| 局部最小值 | , Hessian正定 | 小山谷 | 优化的目标,模型的一个可能解 |
| 鞍点 | , Hessian不定 | 马鞍 | 高维空间中的常见陷阱,会使优化变慢 |
| 链式法则 | 分段路的坡度 | 反向传播算法的理论基础,用于高效计算梯度 |
🤖 机器学习基础:构建智能系统的蓝图
Tom Mitchell 的这段定义是理解机器学习的基石: “A computer program is said to learn from experience 𝐸 w.r.t. some class of tasks 𝑇 and performance measure 𝑃, if its performance at tasks in 𝑇, as measured by 𝑃, improves with experience 𝐸.” ---Tom Mitchell, 1997
“对于一个计算机程序,给它一些任务T 和性能度量P,如果通过经验E,它在T上的性能(由P评定)得到了提高,那么我们就说这个程序从E中学习了。”
这就像一个学做饭的徒弟:
- 任务T:炒出鱼香肉丝。
- 性能度量P:师傅打分的平均分(1-10分)。
- 经验E:徒弟一遍遍地练习炒菜(处理食材、调味、掌控火候)。
- 学习:如果徒弟的得分随着练习次数的增加而提高,那么他就在“学习”。
一、任务 (The Task, T) - “机器要做什么?”
任务T 是机器学习系统需要解决的具体问题。它通常被定义为机器学习系统如何处理样本 (example)。一个样本是对象或事件的特征 (feature) 的集合。
- 分类例子:识别手写数字(MNIST数据集)。任务T:f: \text{(28x28像素图像)} \to \{0, 1, 2, ..., 9\}。
- 回归例子:预测房价。任务T:f: \text{(面积, 位置, 卧室数量...)} \to \mathbb{R}^+(房价)。
二、性能度量 (The Performance Metric, P) - “怎么算做得好?”
P 是定量评估算法性能的方法。P 总是针对特定的 T 而定义的。
| 任务类型 (T) | 性能度量 (P) | 例子与说明 |
|---|---|---|
| 分类 | 准确率 (Accuracy) | (正确预测数) / (总样本数)。最直观的指标。 |
| 错误率 (Error Rate) | 。与准确率互补。 | |
| 精确率/召回率 (Precision/Recall) | 用于类别不平衡问题(如癌症筛查)。精确率:预测为正例中真正正例的比例。召回率:真正正例中被预测出来的比例。 | |
| 回归 | 均方误差 (MSE) | 。衡量预测值与真实值之间的平均平方差距。 |
| 平均绝对误差 (MAE) | 。对异常值不如MSE敏感。 | |
| 生成任务 | BLEU Score | 机器翻译的常用指标,通过比较机器输出和人工翻译的重合度来打分。 |
| 人工评估 | 对于图像生成、诗歌创作等,有时需要人类来评判质量。 |
黄金法则:性能度量 P 必须在测试集 (test set) 上进行评估。测试集是模型在训练过程中绝对没有见过的数据,用于模拟模型在真实世界中的表现。
三、经验 (The Experience, E) - “从哪里学习?”
根据经验 E 的类型,机器学习算法分为两大类:
- 无监督学习例子:给定一堆新闻文章,算法自动将它们分成“体育”、“财经”、“科技”等簇(聚类)。给它的数据只有文章内容(特征),没有预先打好的标签。
- 监督学习例子:给定一堆图片和每张图片对应的标签(“猫”、“狗”),算法学习如何从像素点预测出标签。
四、示例:线性回归 (Linear Regression) - 一个完整的机器学习过程
让我们用一个最简单的模型——线性回归,来串起 T, P, E。
- 任务T:给定房屋特征(如面积 ),预测其价格 。
- 模型:。其中 (权重) 和 (偏置) 是我们要学习的参数。
- 性能度量P (测试集上):均方误差
- 经验E (训练集上):我们通过最小化训练集上的MSE 来学习参数。
- 求解:对 关于 和 求导并令导数为零,可以找到解析解( closed-form solution): , 其中 和 是训练样本的均值。
五、容量、过拟合和欠拟合 (Capacity, Overfitting, Underfitting)
这是机器学习的核心矛盾。
- 容量 (Capacity):模型拟合各种函数的能力。容量低的模型可能无法学习到数据中的有效模式。
- 欠拟合 (Underfitting):模型在训练集上的误差就很大。表现为“学得不好”,模型太简单,无法捕捉数据中的基本特征。
- 过拟合 (Overfitting):模型在训练集上误差很小,但在测试集上误差很大。表现为“学得太好”,把训练数据中的噪声和特例都当成了普适规律,泛化能力差。
最佳容量点是测试误差最低的地方。我们的目标就是找到这个点。
六、示例:多项式回归 - 理解过拟合与欠拟合
假设真实数据由二次函数 加上一些噪声生成。 我们尝试用不同次数的多项式来拟合:
- 0次 (常数): -> 欠拟合,模型太简单。
- 1次 (线性): -> 仍然欠拟合,无法拟合曲线。
- 2次: -> 容量恰当,能很好地拟合真实规律。
- 9次: -> 严重过拟合,模型变得非常复杂,穿过了所有训练数据点,但在数据点之间的波动极大,预测新数据会非常差。
七、正则化 (Regularization) - 控制模型的“野心”
正则化是我们对学习算法所做的任何修改,旨在减少泛化误差而非训练误差。其核心思想是:在降低训练误差和保持模型简单性之间做一个权衡,从而避免过拟合。
最常用的方法是 L2 参数范数惩罚(又称权重衰减 - Weight Decay)。它通过向损失函数中添加一个正则项 来惩罚大的权重: 其中
- 代表的是损失函数(Loss Function)
- 是一个超参数,控制正则化的强度。
- :恢复原始损失函数,容易过拟合。
- 太大:模型会变得过于简单,导致欠拟合(所有权重都被压向0)。
- 适中:找到最佳平衡点,获得良好的泛化性能。
八、超参数 vs. 参数 (Hyperparameters vs. Parameters)
| 特征 | 参数 (Parameters) | 超参数 (Hyperparameters) |
|---|---|---|
| 定义 | 模型从数据中学习到的内部配置。 | 模型外部的配置,其值无法从数据中学习。 |
| 例子 | 权重 ()、偏置 () | 学习率 ()、正则化强度 ()、网络层数、隐藏单元数 |
| 如何设定 | 通过优化算法(如梯度下降)自动调整。 | 由研究者/工程师基于经验、实验(在验证集上)来手动设定。 |
| 比喻 | 厨师做菜时放的盐和油,根据菜品情况随时调整。 | 菜谱上写的“小火慢炖10分钟”,在做菜前就定好了。 |
九、验证集 (Validation Set) - 超参数的“模拟考场”
我们不能用测试集来调整超参数(否则就会“泄漏”测试集信息,导致性能评估不真实)。因此,我们需要从训练集中再分出一部分作为验证集。
十、最大似然估计 (Maximum Likelihood Estimation - MLE) - 概率视角的优化
MLE 是机器学习中最常用的参数估计框架之一。它的核心思想是:找到最能“解释”已观测到数据的模型参数。
定义:对于一组独立同分布的数据 ,最大似然估计是选择使似然函数 最大的参数值 。
实际操作:通常最大化其对数似然(因为乘积取对数后变求和,更易优化):
与MSE的联系:最大化高斯分布假设下的对数似然,等价于最小化均方误差 (MSE)。这为 MSE 提供了一个强大的概率论解释。
十一、条件对数似然 (Conditional Log-Likelihood) - 监督学习的MLE
对于监督学习(输入 ,输出 ),我们通常要估计条件分布 。对应的最大似然估计变为最大化条件对数似然:
- 例子:在分类任务中, 通常是 Softmax 函数输出的类别概率。最大化条件对数似然就是最小化交叉熵损失函数。
十二、随机梯度下降 (Stochastic Gradient Descent - SGD) - 大规模学习的引擎
对于大规模数据集,计算整个训练集上的损失和梯度(这称为批量梯度下降)的计算代价极高且缓慢。SGD 是解决这一问题的关键。
核心思想:在每一次参数更新时,只随机抽取一个小的 minibatch(小批量)样本来计算梯度的估计,然后用这个估计来更新参数。
优势:
- 极大的速度提升:一次更新只需要处理几十到几百个样本,而不是几百万个。
- 引入噪声有助于逃离尖锐的极小值,可能找到泛化能力更好的平坦极小值。
一个周期 (epoch) 指的是算法遍历了整个训练集(所有minibatches)一次。
✅ 总结:机器学习的完整蓝图
整篇文章参考
只链接是其中一个作者的书籍链接)(有会可能失效) 伊恩·古德费洛 (Ian Goodfellow)
