线性代数
更多参考
线性代数的本质](https://www.bilibili.com/video/BV1Ys411k7yQ/)视频课程以及知乎笔记
标量、向量、矩阵和张量
- 标量(scalar):单独的数
- 向量(vector):一列有序数
- 矩阵(matrix):二维数组
- 张量(tensor):多维数组
矩阵和向量相乘
矩阵乘法
矩阵乘积服从分配律、结合律,不满足交换律
元素对应乘积 (element-wise product) 或者 Hadamard 乘积 (Hadamard product),记为
概率与信息论
概率分布
离散型变量的概率分布可以用 概率质量函数(probability mass function, PMF)来描述。概率质量函数将随机变量能够取得的每个状态映射到随机变量取得该状态的概率。概率质量函数可以同时作用于多个随机变量。这种多个变量的概率分布被称为 联合概率分布(joint probability distribution)
连续型变量用 概率密度函数(probability density function, PDF)而不是概率质量函数来描述它的概率分布。x 轴(横轴):随机变量的取值,表示可能出现的数值。y 轴(纵轴):概率密度值,表示每个取值处的概率密度(但不是直接的概率)。对于连续型随机变量,单点的概率是 0,因此需要通过对PDF积分计算区间概率。某些取值下,udf值可能大于1,只需要满足udf曲线下总面积为1就可以。
边缘概率
已知了一组变量的联合概率分布,但想要了解其中一个子集的概率分布。这种定义在子集上的概率分布被称为 边缘概率分布(marginal probability distribution)
对于离散型变量来说
对于连续型变量来说
条件概率
某个事件,在给定其他事件发生时出现的概率
任何多维随机变量的联合概率分布,都可以分解成只有一个变量的条件概率相乘的形式:
这个规则被称为概率的 链式法则(chain rule)或者 乘法法则(product rule)。
期望、方差和协方差
期望(Expectation) 本质上就是随机变量的取值乘以其概率后求和(或积分),也称均值(Mean),表示随机变量的平均值,是其概率分布的中心趋势。具体来说,期望是对随机变量的加权平均,其中权重是该值出现的概率。期望可以看作是这个随机变量的平均值(重心)。
方差(variance)衡量的是当我们对 x 依据它的概率分布进行采样时,随机变量 x 的函数值会呈现多大的差异。直观上看,方差(Variance)本质上也是一种期望,它衡量的是随机变量偏离其期望的程度。从数学定义上看,方差是一个新随机变量的期望,这个新随机变量是随机变量与其期望的偏差的平方。方差衡量的是数据相对于均值的波动程度。由于取平方,离均值越远的数据点贡献的方差越大(偏差大的点对方差的影响更大)。期望操作意味着方差是对所有数据点的偏差平方求平均,反映整体的离散程度。
协方差(covariance)在某种意义上给出了两个变量线性相关性的强度以及这些变量的尺度:
协方差的绝对值如果很大则意味着变量值变化很大并且它们同时距离各自的均值很远。如果协方差是正的,那么两个变量都倾向于同时取得相对较大的值。如果协方差是负的,那么其中一个变量倾向于取得相对较大的值的同时,另一个变量倾向于取得相对较小的值,反之亦然。其他的衡量指标如 相关系数(correlation)将每个变量的贡献归一化,为了只衡量变量的相关性而不受各个变量尺度大小的影响。
协方差和相关性是有联系的,但实际上是不同的概念。它们是有联系的,因为两个变量如果相互独立那么它们的协方差为零,如果两个变量的协方差不为零那么它们一定是相关的。然而,独立性又是和协方差完全不同的性质。两个变量如果协方差为零,它们之间一定没有线性关系。独立性比零协方差的要求更强,因为独立性还排除了非线性的关系。两个变量相互依赖但具有零协方差是可能的。
常用概率分布
Bernoulli 分布(Bernoulli distribution)是单个二值随机变量的分布。它由单个参数
二项分布(Binomial Distribution)是多次独立的伯努利试验的累积,表示在
伯努利分布是二项分布的特例,当
-
参数:
(试验次数)、 (每次成功概率)。 -
随机变量
表示成功的总次数,取值范围 。 -
PMF(概率质量函数):
多项式分布(Multinomial Distribution)二项分布处理的是二分类问题(如正面/反面),但如果试验有多个可能的结果,就需要用多项式分布来建模。
当
-
参数:
:试验次数 :每种结果的概率( )
-
随机变量
表示第 类发生的次数,取值范围 。
正态分布(Normal Distribution),又称高斯分布 (Gaussian Distribution),是一种对称的、钟形的概率分布,在自然界、统计学和机器学习等领域广泛应用。
正态分布由两个参数控制,
中心极限定理(central limit theorem)说明很多独立随机变量的和近似服从正态分布。这意味着在实际中,很多复杂系统都可以被成功地建模成正态分布的噪声,即使系统可以被分解成一些更结构化的部分。
在具有相同方差的所有可能的概率分布中,正态分布在实数上具有最大的不确定性。因此,我们可以认为正态分布是对模型加入的先验知识量最少的分布。
常用函数的有用性质
logistic sigmoid 函数通常用来产生 Bernoulli 分布中的参数
softplus 函数可以用来产生正态分布的
下面一些性质非常有用,你可能要记下来:
函数
公式 (3.41) 表示 softplus 提供了其他的正当理由。softplus 函数被设计成 正部函数 (positive part function) 的平滑版本,这个正部函数是指
贝叶斯规则
:后验概率 :先验概率 :似然 :边际似然
信息论
信息论的基本想法是一个不太可能的事件居然发生了,要比一个非常可能的事件发生,能提供更多的信息。消息说:‘‘今天早上太阳升起’’ 信息量是如此之少以于没有必要发送,但一条消息说:‘‘今天早上有日食’’ 信息量就很丰富。我们想要通过这种基本想法来量化信息。特别地,
- 非常可能发生的事件信息量要比较少,并且极端情况下,确保能够发生的事件应该没有信息量。
- 较不可能发生的事件具有更高的信息量。
- 独立事件应具有增量的信息。例如,投掷的硬币两次正面朝上传递的信息量,应该是投掷一次硬币正面朝上的信息量的两倍。
定义一个事件
总是用
当
也记作
如果我们对于同一个随机变量
在离散型变量的情况下,KL 散度衡量的是:当我们使用一种被设计成能够使得概率分布
KL 散度有很多有用的性质,最重要的是它是非负的。KL 散度为 0 当且仅当
因为 KL 散度是非负的并且衡量的是两个分布之间的差异,它经常被用于分布之间的某种距离。然而,它并不是真正的距离,因为它不是对称的:对于某些
这种非对称性意味着选择
一个和 KL 散度 密切联系的量是 交叉熵 (cross-entropy)
是 真实分布(ground-truth distribution)。 是 模型的预测分布。 代表对 的期望,即按照 的分布对所有可能的 进行加权求和。
针对
当我们计算这些量时,经常会遇到
在分类任务中,
在深度学习中,最小化交叉熵损失的目标是让
数值统计
上溢和下溢
上溢和下溢的根本原因确实是计算精度和数值表示限制。在计算机中,数字是以有限精度表示的,这种精度依赖于所使用的数值格式(例如,浮点数或定点数),以及该格式所能表示的数值范围。
浮点数是计算机表示实数的一种常见方式,它遵循IEEE 754标准。浮点数由三部分组成:符号位、指数部分和尾数(或称为小数部分)。由于尾数的有限长度,浮点数只能表示有限范围内的数字。
-
上溢发生在计算结果超出了该范围的最大值。当数值的大小超出浮点数所能表示的最大数值时,计算机无法表示该数值,只能返回无穷大(
+∞
或-∞
)。在神经网络中,如果权重或激活值的计算涉及到指数函数(如sigmoid、softmax等),当输入值过大时,结果会变得非常大,最终超出浮点数表示范围。此时,数值会变为无穷大(
+∞
)。 -
下溢则发生在计算结果小于浮点数所能表示的最小正非零数值时。数值过小以至于超出了可表示的范围时,计算机会将该值近似为零(下溢为0)。在一些情况下,极小的数值会被“下溢”成一个非常接近零的值,导致计算结果失真
某些损失函数(如交叉熵)在处理小概率时可能会发生下溢。
病态条件
病态条件是指一个问题对微小的输入扰动(如数据的舍入误差)表现出极大的响应
基于梯度的优化方法
1. 最小化/最大化问题的表示
- 大多数深度学习算法都涉及某种形式的优化。最小化或者最大化以模型参数
作为自变量的函数 。被称为目标函数(objective function)或 准则(criterion)对其进行最小化时,我们也把它称为 代价函数(cost function)、损失函数(loss function)或 误差函数(error function)。 - 最小化或最大化函数的解通常用
表示,其中 ,即找出使得函数 最小化的 值。
2. 微积分和优化的关系
- 假设有一个函数
,其中 和 都是实数。该函数的导数( 或 )表示在点 处的斜率,表明如何通过改变 的小变化来影响 。 - 对于优化,导数提供了如何改进目标函数的方向。例如,如果我们知道
是负的,我们就可以向右( )移动 以减小 。
3. 梯度下降
-
梯度下降方法是最常用的优化技术之一,通过沿着梯度的反方向(即沿着“下坡”方向)来更新
,直到达到局部最小值。梯度下降的步骤是: 其中
是学习率,决定步长的大小, 是梯度。
4. 临界点、局部极小点、局部极大点和鞍点
- 临界点是指导数为零的点,这些点可能是局部极小点、局部极大点或鞍点。
- 局部极小点是比邻近点小的点,意味着在该点无法通过小步长移动来进一步减小函数值。
- 局部极大点是比邻近点大的点,无法通过小步长来增加函数值。
- 鞍点既不是局部极小点,也不是局部极大点,通常存在更高和更低的邻近点。
5. 全局最小点
- 全局最小点是使函数值相对所有其他点最小的点。对于多维输入的函数,可能存在多个局部极小点,算法可能停留在某个局部最小点,而不是全局最小点。
6. 多维情况下的优化
- 对于多维函数(即输入为向量),我们需要使用偏导数和梯度来表示函数在各个方向上的变化。梯度是一个包含所有偏导数的向量。
- 方向导数表示函数在特定方向上的斜率,最速下降法通过沿负梯度方向最速地减小函数值。
约束优化
希望在 某些限制条件 下优化一个函数,而不是在所有可能的
软约束
- 允许一定程度的 约束违规,但会 惩罚违规行为。
- 不会严格强制执行 约束,而是将其作为 优化目标的一部分 进行优化。
- 优化方式:通常在损失函数中加入罚项(Penalty Term),使优化算法尽可能满足约束,但不要求 完全满足。
L2 正则化(权重衰减)
在神经网络中,我们通常希望限制权重
- 解释:这里的
是一个惩罚项,限制了 的大小,使其尽可能小,但并不强制要求 必须小于某个特定值。 - 违规情况:如果优化过程中权重过大,损失会变大,优化算法会倾向于减小
,但不会直接截断权重。
普通约束(硬约束,Hard Constraint)
- 必须严格满足 约束,不能有任何违约情况。
- 如果解不满足约束,则直接视为不可行解,即优化过程中不允许超出约束范围。
- 优化方式:通常使用 投影方法(Projection) 或 拉格朗日乘子法(Lagrange Multipliers) 来强制执行约束。
** 归一化约束**
如果我们希望神经网络权重满足:
那么我们可以使用 投影梯度下降(PGD):
-
梯度更新:
-
投影回可行域:
这样,我们强制
的范数始终小于 1。
拉格朗日乘子法
如果优化问题需要满足:
我们可以引入 拉格朗日乘子
优化过程中,
机器学习基础
学习算法
对于某类任务
任务
机器学习任务可以使用不同的纬度进行分类
分类维度 | 主要类别 | 细分任务 |
---|---|---|
按学习方式 | 监督学习 (Supervised Learning) | 回归、分类 |
无监督学习 (Unsupervised Learning) | 聚类、降维、异常检测 | |
半监督学习 (Semi-Supervised Learning) | 伪标签、自监督学习 | |
强化学习 (Reinforcement Learning) | Q-Learning, PPO, A3C | |
按任务目标 | 预测类 | 时间序列预测、趋势预测 |
生成类 | 文本生成、图像生成、数据合成 | |
识别类 | 目标检测、图像分类、语音识别 | |
按数据类型 | 结构化数据 | XGBoost, LightGBM, TabNet |
非结构化数据 | NLP、计算机视觉、语音 | |
按应用领域 | 计算广告 | CTR 预估、CVR 预估 |
推荐系统 | 召回、排序 | |
生物医学 | 基因分析、药物发现 | |
自动驾驶 | 目标检测、轨迹预测 |
性能度量
性能度量方法 | 适用任务 | 公式 / 说明 |
---|---|---|
均方误差 (MSE, Mean Squared Error) | 回归任务、时间序列预测 | |
均方根误差 (RMSE, Root Mean Squared Error) | 回归任务、时间序列预测 | |
平均绝对误差 (MAE, Mean Absolute Error) | 回归任务、时间序列预测 | |
回归任务 | ||
平均绝对百分比误差 (MAPE, Mean Absolute Percentage Error) | 时间序列预测 | |
准确率 (Accuracy) | 分类任务 | |
精确率 (Precision) | 分类任务、异常检测 | |
召回率 (Recall) | 分类任务、异常检测 | |
F1 分数 (F1 Score) | 分类任务、异常检测 | |
AUC-ROC (曲线下面积, Area Under ROC Curve) | 分类任务、异常检测 | 衡量模型区分能力,AUC 越接近 1,模型越优 |
轮廓系数 (Silhouette Score) | 聚类任务 | 衡量聚类的紧密度和分离度 |
调整兰德指数 (ARI, Adjusted Rand Index) | 聚类任务 | 衡量聚类结果与真实类别的一致性 |
互信息 (Mutual Information) | 聚类任务 | 衡量聚类结果与真实类别的相似度 |
命中率 (HR, Hit Rate) | 推荐系统 | 计算推荐列表是否包含用户点击项 |
NDCG (归一化折损累计增益, Normalized Discounted Cumulative Gain) | 推荐系统 | 衡量推荐列表的排序质量 |
MAP (平均精度均值, Mean Average Precision) | 推荐系统 | 计算多个查询的平均精度 |
累积奖励 (Cumulative Reward) | 强化学习 | 计算智能体在整个交互过程中获得的总奖励 |
期望回报 (Expected Return) | 强化学习 | 计算未来折扣奖励的期望值 |
经验
机器学习算法可以根据学习过程中的不同经验大致分为两类:
-
无监督学习(Unsupervised Learning):训练数据集没有标签,算法需要自主发现数据的结构,例如:
- 聚类(Clustering):将数据划分为相似的组,如 K-Means。
- 概率分布学习(Density Estimation):学习数据分布,如隐马尔可夫模型(HMM)。
- 降维(Dimensionality Reduction):如 PCA 用于数据可视化和特征提取。
-
监督学习(Supervised Learning):数据集包含已知的 标签(Label) 或 目标(Target),模型通过学习输入与输出之间的映射关系,例如:
- 分类(Classification):如使用神经网络区分图片中的猫狗。
- 回归(Regression):如预测房价。
此外,还有一些变种学习范式:
- 半监督学习(Semi-supervised Learning):部分数据带标签,部分数据无标签。
- 多实例学习(Multiple Instance Learning):标记整个样本集合,但单个样本可能无标注。
- 强化学习(Reinforcement Learning):通过与环境交互获取反馈,如 AlphaGo。
容量、过拟合和欠拟合
机器学习的主要挑战是 在未观测的新数据上表现良好,即提高 泛化能力(Generalization),而不仅仅是降低训练误差。
- 训练误差(Training Error):模型在训练数据上的误差。
- 泛化误差(Generalization Error):模型在新数据上的误差,也称 测试误差(Test Error)。
- 目标是 同时降低训练误差和泛化误差,并 缩小两者之间的差距。
评估泛化能力的方法:
-
测试集(Test Set):在训练后,使用独立于训练集的数据评估模型的表现。
-
数据生成过程(Data Generating Process):
- 采用 独立同分布(i.i.d.)假设,即训练集和测试集的数据来自相同的概率分布
。 - 训练误差的期望通常小于或等于测试误差的期望。
- 采用 独立同分布(i.i.d.)假设,即训练集和测试集的数据来自相同的概率分布
欠拟合与过拟合
泛化能力的两个主要挑战:
- 欠拟合(Underfitting):模型过于简单,无法有效学习训练数据的模式,导致训练误差高。
- 过拟合(Overfitting):模型过于复杂,过度拟合训练数据中的噪声,导致测试误差高。
控制模型复杂度的方法:
-
模型容量(Capacity):
- 低容量模型(如线性回归)容易欠拟合。
- 高容量模型(如高阶多项式回归)容易过拟合。
-
假设空间(Hypothesis Space):
- 选择合适的假设空间限制模型复杂度,例如 线性回归 仅能学习线性关系,而 多项式回归 可学习更复杂的关系。
-
正则化(Regularization):
-
权重衰减(Weight Decay):增加 L2 正则项
控制模型复杂度,防止过拟合。 -
正则化目标函数:
-
较大的
:减少模型复杂度,避免过拟合。 -
较小的
:增加模型复杂度,避免欠拟合。
-
-
非参数模型(Non-parametric Models):
- 例如 最近邻回归(Nearest Neighbor Regression),模型存储所有训练样本,预测时查找最近邻样本。
训练误差与测试误差的关系
-
泛化误差通常是 U 形曲线:
- 低容量:训练误差高,测试误差高(欠拟合)。
- 最佳容量:训练误差适中,测试误差最低(最优泛化)。
- 高容量:训练误差低,测试误差高(过拟合)。
-
贝叶斯误差(Bayes Error):
- 任何真实世界任务都存在固有的噪声,即使使用最优模型也无法达到 0 误差。
没有免费午餐定理(No Free Lunch Theorem)
- 所有学习算法的平均性能是相同的(在所有可能的任务上)。
- 任何算法都无法在 所有 任务上优于其他算法。
- 解决方案:针对特定任务设计最优算法,利用任务特性进行优化。
超参数调优与验证集
-
超参数(Hyperparameters):在训练前设定的参数,例如:
- 模型复杂度(如多项式次数)。
- 正则化强度(如
)。 - 学习率(如梯度下降的步长)。
-
验证集(Validation Set):
- 用于超参数调优,防止在测试集上过拟合。
- 一般 80% 训练,20% 验证。
-
交叉验证(Cross Validation):
-
k 折交叉验证(k-Fold Cross Validation):
- 将数据分为
份,每次使用 份训练,1 份测试。 - 计算
轮测试误差的均值,作为泛化误差估计。 - 适用于小数据集,避免单一划分导致的误差偏差。
- 将数据分为
-
估计、偏差和方差
机器学习的目标不仅是解决训练集上的任务,还要保证模型的泛化能力。统计学提供了参数估计、偏差和方差等概念来刻画泛化、欠拟合和过拟合。
点估计
点估计试图为某些感兴趣的量提供最优预测。设参数
偏差
偏差衡量估计量的期望与真实值的偏离程度,定义如下:
如果
方差和标准差
方差衡量估计量在数据变化下的稳定性:
标准差(标准误差,SE)定义为方差的平方根:
偏差-方差权衡
偏差度量系统性的误差,而方差衡量对数据集变化的敏感度。两者之和构成均方误差 (MSE):
模型容量增大会降低偏差但增加方差,形成 U 形泛化误差曲线。
一致性
一致性指当数据集增大时,估计量收敛于真实参数:
最大似然估计 (MLE)
最大似然估计 (MLE) 通过最大化数据的似然函数来估计参数
通过对数变换,转换为对数似然:
最大似然等价于最小化模型分布与经验分布之间的 KL 散度:
最大似然估计(MLE)本质上等价于最小化数据的经验分布
其中:
-
是 交叉熵: -
是 数据分布的熵,它是一个常数,与模型参数无关(求导为0)。
由于 MLE 是 最小化 KL 散度,在优化过程中等价于最小化交叉熵:
这也是为什么在机器学习中,交叉熵常常被用作目标函数,特别是在分类任务中(如 softmax + 交叉熵损失),本质上是在拟合数据的真实分布。
任何负对数似然损失都可以看作是交叉熵。例如:
-
均方误差(MSE) 对应于高斯分布假设下的负对数似然:
取对数似然并最大化(或等价地最小化负对数似然)就得到:
这正是 MSE 损失函数,因此 MSE 其实是高斯分布下的交叉熵的一种特殊情况。
-
softmax + 交叉熵损失 也是负对数似然损失,但它的适用范围不仅限于 Bernoulli(即二分类)或 softmax(多分类),而是适用于所有概率模型的最大似然估计。
总结来说,最大似然估计可以看作是最小化 KL 散度,而 KL 散度最小化等价于最小化交叉熵。不同的分布假设会导致不同形式的交叉熵损失,例如:
- 高斯分布 → 均方误差(MSE)
- 伯努利分布 → 交叉熵(log loss)
- 多项分布(softmax) → 交叉熵(多分类 log loss)
线性回归中的 MLE
线性回归可视为最大似然估计,假设误差服从高斯分布
贝叶斯统计
贝叶斯方法认为参数
贝叶斯推断通过计算积分来估计预测分布,而不是单一参数估计:
最大后验 (MAP) 估计
最大后验估计 (MAP) 结合了最大似然估计和先验信息:
如果先验为高斯分布,则 MAP 估计等价于正则化的 MLE。
监督学习算法
监督学习的目标是学习一个函数
概率监督学习
-
估计
,常见方法是最大似然估计: -
逻辑回归:
-
逻辑回归的优化通常使用梯度下降。
支持向量机(SVM)
-
采用超平面分隔数据:
-
核技巧:可以通过核函数
替换点积,使得 SVM 能够学习非线性决策边界: -
常见核函数:
- 线性核:
- 多项式核:
- 高斯核(RBF):
- 线性核:
其他监督学习算法
-
k-最近邻(k-NN)
- 非参数方法,预测时计算最近的
个样本并进行投票或均值计算。 - 计算复杂度较高,受高维数据影响较大。
- 非参数方法,预测时计算最近的
-
决策树
- 通过递归划分数据空间构造决策路径,适用于分类与回归任务。
- 容易过拟合,通常结合集成方法(如随机森林)改善泛化能力。
无监督学习算法
无监督学习主要用于发现数据的结构,而不依赖于标注数据。常见方法包括:
主成分分析(PCA)
-
目标是找到数据的最佳低维表示:
-
通过协方差矩阵分解:
-
PCA 通过奇异值分解(SVD)获得数据的主成分:
k-均值聚类
-
将数据点划分为
个簇,每个簇由一个中心点 表示: -
计算每个数据点到中心点的距离,分配到最近的中心点所在簇。
-
重新计算中心点:
-
-
适用于数据聚类,但对初始中心点敏感。
随机梯度下降(SGD)
-
在大规模数据集上优化代价函数
: -
计算完整梯度代价高,因此采用小批量更新:
-
学习率
控制步长:
Comments | NOTHING