可供学习,具体章节也有对应推荐文章
dive into deep learning
从反向传播推导到梯度消失and爆炸的原因及解决方案
最全面的 深度学习 笔记
Activation Functions — All You Need To Know!
对数似然函数

机器学习与深度学习

基本概念

泛化能力 (Generalization Ability)

模型在训练集外的数据上,保持良好性能(如准确率、误差等)的能力
训练误差是模型在训练数据上的表现,泛化能力是模型对新数据的表现;

决策边界

特征空间中模型预测类别发生变化的位置,将不同类别区分开的边界面

数学对象与计算基础

向量 (Vector)

通常指的是一维数组,也就是固定为一维的

张量 (Tensor)

多维数组的统称,可以看作是标量(0阶张量)、向量(1阶张量)、矩阵(2阶张量)在更高维度上的推广

广播机制

PyTorch和NumPy中允许不同形状的张量在运算中自动对齐维度,小张量会被”自动扩展”成跟大张量一样的形状,从而进行逐元素运算,但这个扩展是虚拟的、不会真的复制数据。满足以下两个规则即可触发:

  1. 两个张量维度相等
  2. 其中一个维度为 1

张量创建维度传参方式比较

两种写法效果完全一致,仅参数形式不同:

写法 说明
torch.ones(2, 5, 4) 直接传入多个维度作为参数
torch.ones((2, 5, 4)) 将维度打包成元组传入

矢量化(vectorization)

将逐元素的循环操作(如 for-loop)转化为整块的向量或矩阵运算,以便利用底层硬件(如 GPU、SIMD)的并行计算能力,从而加速程序执行。

特征缩放

归一化 (Normalization)、标准化 (Standardization)和中心/零均值化 (Zero-centered)

欠拟合和过拟合

屏幕截图_2025-07-17_161547

权重衰减(weight decay)

在训练神经网络时,对模型参数(权重)施加惩罚,使参数趋向于较小的数值,防止过拟合。
通常使用L2正则化:

$$
\mathcal{L}{total} = \mathcal{L}{原始} + \lambda \sum_{i} w_i^2
$$

岭回归(ridge regression)算法:

  • 这里,(\sum (y_j - x_j^T w)^2) 是普通最小二乘误差,
  • (\lambda |w|_2^2) 是L2正则项,控制参数大小。

L1正则化线性回归是统计学中类似的基本模型,

$$
\mathcal{L}{total} = \mathcal{L}{原始} + \lambda \sum_i |w_i|
$$

套索回归(lasso regression):

暂退法(Dropout)

暂退法是为了避免过拟合,像transformer这类大模型因为数据量足够多,通常认为不会达到过拟合的程度,因此较少使用dropout

前提概要

线性模型泛化的可靠性是有代价的。 对于每个特征,线性模型必须指定正的或负的权重,而忽略其他特征。
泛化性和灵活性之间的这种基本权衡被描述为偏差-方差权衡(bias-variance tradeoff)。 线性模型有很高的偏差:它们只能表示一小类函数。
与线性模型不同,神经网络并不局限于单独查看每个特征,而是学习特征之间的交互。

定义

暂退法是正则化的一种,正则化防止模型过拟合。以一定概率随机”丢弃”(即暂时关闭)神经网络中的部分神经元降低神经元之间的复杂共适应关系。

什么是一个”好”的预测模型

能在未知的数据上有很好的表现。
平滑性,即函数不应该对其输入的微小变化敏感。
在计算后续层之前向网络的每一层注入噪声。因为当训练一个有多层的深层网络时,注入噪声只会在输入-输出映射上增强平滑性。

这个想法被称为暂退法(dropout)。
暂退法在前向传播过程中,计算每一内部层的同时注入噪声。

根据此模型的设计,其期望值保持不变。
在标准暂退法(Dropout)中,设丢弃概率为 ,则对于每个中间激活值 ,定义随机变量:

其中, 表示经过 Dropout 处理后的激活值。

这样设计的目的是保证 期望保持不变:

因此,训练过程中通过随机丢弃节点,并对保留的节点按比例放大,消除了 Dropout 带来的偏差,测试时则直接使用完整的网络输出,无需缩放。

前向传播

前向传播(forward propagation或forward pass) 指的是:按顺序(从输入层到输出层)计算和存储神经网络中每层的结果。

早期的错误理解,字多不删

有人可能疑惑前向传播留下的记录点为什么能对反向传播进行指导,一旦根据记录点进行梯度下降那么必然会偏离原有路径个人理解:正向传播的路径点记录了最大梯度处,哪怕反向传播路径变了也必须往对应方向变化这是必须的,哪怕这个方向实际梯度上升也要前进,必须遵守前向传播梯度方向的约束,因为是追求一个全局趋势,(其实这样真的就对吗我也无法确认,因为可能对应的不是同一个局部最小点),总之保证训练稳定性和最终收敛,避免失去梯度指导造成训练失败一个模糊的举例,我们要修一条栈道,沿着指定路径登珠穆朗玛峰并在每一定高度处留下全景摄像头作标记,抵达山顶后(即终点),由于物资匮乏原路返回消耗太大了,我们的需求不是回到原点而是早日到达地面(总所周知珠穆朗玛峰山脚都是村庄而且都栈道了入口哪里无所谓了越短越省钱),于是我们一步步查看等高的摄像头附件的景色,发现沿着西北方是向下的,虽然我们里摄像头很远,但是我们知道往那个方向走最终下降,说好听是趋势,说难听就是别的地方没办法看实在不知道怎么走了,自己管自己走没东西背锅,只好往那边去,哪怕要爬坡也只能安慰自己起码终点是比摄像头海拔低(虽然可能就局部最优骗人的,但是也只能被骗了没地图)即使这条信息最终引导我们误入歧途,它仍然是我们当前所能依赖的、唯一的方向指引。

正确理解

有人可能疑惑前向传播留下的记录点为什么能对反向传播进行指导,一旦根据记录点进行梯度下降那么必然会偏离原有路径。
个人理解(修正后):前向传播过程中保存的是每层的输入值、线性变换结果(如 )和激活值(如 ),而非”路径点”或”方向标记”。这些中间变量是反向传播计算梯度时必需的数据支持。
反向传播结合链式法则,利用前向传播保存的中间变量,动态计算当前参数下损失函数的梯度方向。参数更新后,下一次前向传播会重新计算所有中间变量,旧的”路径”被覆盖,因此不存在”偏离原有路径”的问题。
梯度代表当前参数和输入下的局部最速下降方向,前向传播本身不预设优化方向。即使梯度更新导致损失短期上升,也多因学习率设置或优化算法问题,而非前向传播”误导”。
我们修一条栈道登珠穆朗玛峰,每隔一定高度放置一个摄像头,记录当时地形和环境(类似前向传播保存的中间变量)。登顶后,由于资源有限不能原路返回,只能根据各摄像头记录的地形信息,结合数学工具(对应反向传播的链式法则)实时计算下山最陡方向。
这方向是动态计算的,非固定不变。即使最终可能通向局部低谷,也不是摄像头”预设”的误导,而是我们依据当前信息做出的最佳判断。每走一步,地形和情况都会变化,需要重新观察和计算,旧路径信息随之更新。
总结:前向传播提供的是计算梯度的”地形数据”,反向传播用这些数据动态计算”下山方向”。训练过程中,模型根据最新参数和数据,实时调整方向,从而保证训练稳定和最终收敛。

屏幕截图_2025-07-18_161847

反向传播

该方法根据微积分中的链式规则,按相反的顺序从输出层到输入层遍历网络。

梯度消失和梯度爆炸

不稳定梯度带来的风险不止在于数值表示,也威胁到我们优化算法的稳定性。
梯度爆炸(gradient exploding)问题: 参数更新过大,破坏了模型的稳定收敛。
梯度消失(gradient vanishing)问题: 参数更新过小,在每次更新时几乎不会移动,导致模型无法学习。
当sigmoid函数的输入很大或是很小时,它的梯度都会消失。此外,当反向传播通过许多层时,除非我们在刚刚好的地方,这些地方sigmoid函数的输入接近于零,否则整个乘积的梯度可能会消失。

初始化

Xavier初始化

Xavier初始化是一种权重初始化方法,旨在解决深层神经网络训练中梯度消失或爆炸的问题。它通过合理设置每层权重的初始分布,保证信号在前向传播和反向传播过程中不会被放大或缩小过多,从而帮助训练更稳定、更快收敛。

模型结构与表达

仿射变换(Affine Transformation)

仿射变换是一种保留点、直线和平行关系的几何变换,对空间中的点进行旋转、缩放、剪切和平移,且保持直线性和平行性,但不一定保持角度或距离。

估计值

当我们的输入包含 个特征时,我们将预测结果 (通常使用”尖角”符号表示 的估计值)写成如下形式:

向量形式:

  • :偏置项(bias),有时通过在 开头加一个常数 1 将其统一进向量计算中

全连接层(fully-connected layer)/ 稠密层(dense layer)

线性回归中,每个输入都与每个输出相连。

嵌入模型(Embedding)

指将高维、复杂或非结构化的数据(如文本、图像、语音等)
通过某种映射函数,转换成一个低维且稠密的向量表示(通常是实数向量)。

这种向量表示保留了原始数据的语义或特征信息,使得相似的数据在向量空间中距离较近,
从而便于计算机进行相似度比较、聚类、分类和其他机器学习任务。

阈值单元近似(Threshold Unit Approximation)

早期神经网络中,阈值单元(Threshold Unit)是一种模拟生物神经元”激发/不激发”行为的模型:

其中 是阈值。
该函数是一个阶跃函数(Step Function)连续且不可导,无法用于梯度下降等优化方法。

模型训练与优化

超参数(Hyperparameter)

超参数是用于控制模型结构或训练过程的参数,不会在训练过程中被模型自动学习,需要训练开始前由用户设定,或通过搜索算法选定。
超参数影响训练过程和模型性能,不参与反向传播。

调参(hyperparameter tuning)

选择和优化超参数的过程,目标是找到一组能使模型在验证集上表现最好的超参数组合。

模型性能与泛化

训练误差(training error)

模型在训练数据集上计算得到的误差

泛化误差(generalization error)

模型应用在同样从原始样本的分布中抽取的无限多数据样本时,模型误差的期望。

泛化(generalization)

模型在未见过的新数据上表现良好的能力。

过拟合(overfitting)

模型在训练数据上拟合的比在潜在分布中更接近的现象。

正则化(regularization)

用于对抗过拟合

特征表示与编码

独热编码(one-hot encoding)

将类别变量转换为二进制向量的方式。对于有 个不同取值的离散特征,每个取值用一个长度为 的向量表示,其中只有该取值对应的索引为 1,其余为 0。

消除类别之间的”顺序性”或”大小关系”的假象(下标012等的先后顺序,one-hot对象距离都是1)。

线性模型由于把索引当作连续变量计算尤其受影响。

概率与统计基础

最大似然估计(MLE)

对于给定的观测数据希望能从所有的参数中找出能最大概率生成观测数据的参数作为估计结果。

以抛硬币为例,假设正面朝上的概率记为 ,反面为 ,顺序抛出结果是正正反。可以得出。为了发生概率最大,展开并求导得到 时最大。也就是说我们会设定参数为正面,反面

可能会疑惑这似乎不符合实际概率……这只是基于观测数据的估计,并不一定代表真实的硬币概率。事实上,根据大数定律,最大似然估计的参数会逐渐趋近真实概率,这里只是样本数过少而已。

概率(Probability)和似然性(Likelihood)的区别

方面 概率(Probability) 似然性(Likelihood)
定义 给定参数 ,事件 出现的概率 给定数据 ,评估参数 的合理性(似然)
数学表达 (但 为变量)
变量角色 是变量, 是固定的 是变量, 是已知观测值

语言模型与知识系统

大语言模型(Large Language Model)

LLM模型是一种基于深度学习的大规模预训练语言模型,能够理解和生成自然语言文本。

重排序器(Reranker)

对初步检索或生成的候选结果进行重新排序,把更相关、更优质的结果排在前面。

知识库 (Knowledge Base,缩写KB)

一个系统化存储、管理和检索结构化或半结构化知识的集合。
它可以包含事实、规则、概念、实体关系等多种信息形式,旨在支持自动推理、问答和决策等任务。

数据与噪声

噪声(Noise)

噪声指数据或信号中随机存在的扰动或误差,通常不包含有用信息。噪声影响模型的训练效果及泛化能力。

白噪声(White Noise)

在时间序列建模(如 AR、MA、ARIMA)中,序列 ({\epsilon_t})(其中 (\epsilon_t) 表示时间 (t) 时刻的噪声值)被称为白噪声需满足以下条件:

  • 零均值:

  • 常数且有限的方差:

  • 无自相关(不同时间点之间不相关):

这里的”无自相关”意味着不同时间点的噪声值之间不存在线性相关关系,但不一定完全独立。

这表明白噪声是一种纯随机过程,不含任何可预测的结构。

“白噪声”名称由来:

类似于光学中的白光包含所有可见光频率,信号处理中的白噪声在频率域上的功率谱密度是均匀分布的,代表所有频率成分权重相等。时间序列中的白噪声对应频谱平坦,意味着没有周期性或结构,完全不可预测。

在时间序列模型中,白噪声通常被用作理想化的随机扰动项,代表纯随机误差。

深度学习核心概念补充

自相关(Autocorrelation)

自相关是一个序列与其自身滞后版本之间的相似度度量,用于分析时间序列中是否存在周期性或结构。

  • :滞后阶数
  • :样本均值
  • :样本数量

马尔可夫性质(Markov Property)

马尔可夫性质:未来状态仅与当前状态有关,与过去无关。

残差连接(Residual Connection)

为解决深层神经网络训练困难,引入”跳跃连接”结构:

  • :变换函数(如卷积、注意力等)
  • :输入本身

避免梯度消失,便于训练深层模型,是 ResNet、Transformer 等模型的关键结构。

Dropout

Dropout 是一种正则化技术,训练时以一定概率”丢弃”神经元,防止过拟合。

  • 训练时:随机丢弃
  • 推理时:使用全部神经元,但乘以缩放因子

批归一化(Batch Normalization)

用于加速训练、提高稳定性,在每一小批次数据上对特征进行标准化:

再线性变换:

  • :第 个特征的批次均值
  • :方差
  • :可学习参数

作用:

  • 减少内部协变量偏移(Internal Covariate Shift)
  • 允许更高学习率
  • 减少对初始化的依赖

激活函数(Activation Function)

用于引入非线性,增强模型表达能力。

  • Sigmoid:

  • Tanh:

  • ReLU:

  • Leaky ReLU:

  • Softmax(用于多分类):

输出为概率分布,常用于输出层。

位置编码(Positional Encoding)

用于为输入序列引入位置信息,使模型具备顺序感。

常用正余弦编码方式:

$$
\text{PE}{(pos, 2i)} = \sin\left(\frac{pos}{10000^{2i / d{model}}} \right)
$$

$$
\text{PE}{(pos, 2i+1)} = \cos\left(\frac{pos}{10000^{2i / d{model}}} \right)
$$

  • :位置
  • :维度编号
  • :嵌入维度

数学

一般

范数(Norm)

是数学中用来衡量向量”大小”或”长度”的一个函数。本质上是一种数学映射关系,作为一个函数,输入向量,输出非负实数,表示这个向量的大小或长度。

指在数据集中,一组彼此相似度较高且相互之间距离较近的数据点集合。换句话说,簇是一类在某种度量标准下被划分到一起的样本点的集合,它们内部的相似性最大,而与其他簇之间的差异最大。

基数(Cardinality)

指一个集合中元素的数量, 表示第 个簇的样本集合, 表示集合 的基数(元素个数)。

平凡解

指显而易见没有讨论的必要的解,但是为了结果的完整性仍需考虑。
一般用不到这个概念。

线性代数

行列式

标量函数,记作 ,用于判断 方阵 是否可逆,当且仅当时矩阵可逆。

单位矩阵(Identity Matrix)

主对角线为 1,其余为 0 的方阵,记作 ,下标 代表矩阵阶数。

协方差矩阵(Covariance Matrix)

协方差矩阵用来衡量各个特征之间的线性相关性。它是一个 (特征数量)的方阵,矩阵中的每个元素表示第 个特征和第 个特征之间的协方差。

协方差公式(样本协方差):
$$
\text{cov}(X_i, X_j) = \frac{1}{n - 1} \sum_{k=1}^{n} (X_{ik} - \bar{X}i)(X{jk} - \bar{X}_j)
$$

其中:

  • 表示第 个样本在第 个特征上的取值。
  • 表示第 个特征的均值。

性质:

  • 如果 ,说明两个特征正相关。
  • 如果 ,说明两个特征负相关。
  • 如果 ,说明两个特征几乎没有线性相关性,但可能存在非线性关系。

为什么分母是 :(选看,公式能推但有点费劲)

  • 当我们用样本数据来估计总体的协方差时,使用 作为分母可以得到无偏估计,让结果更接近真实总体。
  • 如果使用的是整个总体数据,分母可以用

“无偏”意味着样本方差的期望值应等于总体方差,即样本方差在长期来看既不会系统性偏大也不会偏小。

样本方差通常用分母 而非 ,这是因为样本均值是基于同一组样本计算的,与样本数据紧密相关。用样本均值代替总体均值计算偏差时,样本数据的波动被低估,导致样本方差的直接计算值总体偏小。

统计学关注的是大量独立重复抽样的长期性质。假设从总体反复抽取大量样本,计算每个样本的方差,再取这些方差的平均值,发现如果分母用 ,则平均样本方差会偏小于真实总体方差。

这是因为样本数据相对于样本均值的波动”向内收缩”,样本均值是样本内数据的固定参考点,而总体均值是全局固定,导致样本方差计算时缺少一个自由度。

采用分母 ,即自由度校正,能够消除这种系统性偏差,使样本方差成为总体方差的无偏估计,从而保证样本方差的长期平均值准确反映总体波动。

数学推导

假设我们有独立同分布的样本:

总体的真实均值是 ,但是我们不知道它。样本均值是:

样本平方差和:

为了和总体均值 联系起来,我们在括号里加减 ,这样写:

把它带回去,展开平方和:

展开平方项得:

因为 是一个常数,不随 变化,且有 个项,所以:

接着,注意到:

带入上式,得到:

对上式两边取期望:

由于每个 独立同分布且方差是 ,所以:

样本均值的方差是:

所以:

因此,

这就是说,用样本均值计算的平方差和的期望是 ,而不是

这就是为什么样本方差的分母不能用 ,而是用 — 这样才能保证样本方差的期望等于总体方差,使其成为无偏估计。

换句话说:

  • 样本均值是基于样本数据计算的,会导致方差计算的波动被低估。
  • 修正分母,补偿这个系统性偏差,得到更准确的方差估计。

也就是对所有可能的值 按概率密度加权求积分,得到平均值。

正半定矩阵(Positive Semidefinite Matrix)

“正半定”是”正半定矩阵”的简称,满足下面条件

  • 是对称矩阵(即 ,对称方阵),
  • 对任意非零向量 ,都有

这表示矩阵 作用于任意向量时,不会让”二次型”变成负值,只可能是零或者正数。

  • 正定矩阵:对所有非零向量 ,都有

  • 正半定矩阵:对所有向量 ,都有

(允许等于零)

概率论

基本概率论

大数定律(Law of Large Numbers, LLN)

随机变量的平均值在大量重复试验后趋近于期望值

数学表述(弱大数定律)

这意味着,当样本数量 趋于无穷大时,样本平均值几乎必然会收敛到真实的期望值 。也就是理论均值。

抽样(sampling)

从概率分布中抽取样本的过程

数学期望(Expectation,

理论观测样本的均值,数学期望 表示对随机变量 的期望值,表示随机变量在长期重复试验中的平均结果。

  • 离散型:

    数学性质:

  • 连续型:

均值(Sample Mean)

实际观测样本的均值,是具体样本数据的平均数,会随着样本改变而波动。

分布(distribution)

事件的概率分配

多项分布(multinomial distribution)

将概率分配给一些离散选择的分布

Var(Variance,方差)

数据偏离期望的程度

样本空间(sample space)/ 结果空间(outcome space)

表示为一个集合 ,包含所有可能结果

事件(event)

一组给定样本空间的随机结果,记作

概率(probability)

将集合映射到真实值的函数,满足以下属性

  • 对于任意事件,其概率从不会是负数,

  • 整个样本空间的概率为1,

  • 对于互斥(mutually exclusive)事件,序列中任意一个事件发生的概率等于它们各自发生的概率之和,若 互不相交,则

先验概率

先验概率是基于背景常识或者历史数据的统计得出的预判概率,一般只包含一个变量,例如P(A),P(B)。

联合概率(joint probability)

事件同时发生的概率,两个事件同时发生的概率:

条件概率(conditional probability)

一个事件发生后另一个事件发生的概率,一般情况下 表示某一个因素, 表示结果, 表示在因素 的条件下 发生的概率,即由因求果。
条件概率表示在事件 已经发生的前提下,事件 发生的概率:

其中:

  • 表示事件 与事件 同时发生的概率。
  • 是事件 的概率。

后验概率

由果求因,也就是在知道结果的情况下求原因的概率,例如Y事件是X引起的,那么P(X|Y)就是后验概率,也可以说它是事件发生后的反向条件概率。
实际上后验概率就是条件概率,只不过条件概率是由因求果,而后验概率是由果求因。

贝叶斯定理(Bayes’ theorem)

利用条件概率进行反向推断:

边际概率(marginal probability) / 边际分布(marginal distribution)

事件概率求和将所有选择的联合概率聚合在一起

  • 离散型:

  • 连续型: