1. 激活函数 (Activation)
Sigmoid
$$
\sigma(x)=\frac{1}{1+e^{-x}}
$$ 说明:输出在 (0, 1);适合二分类输出(配合
BCE),但隐藏层容易发生梯度消失。 导数: σ′(x) = σ(x)(1 − σ(x))
Tanh
$$
\tanh(x)=\frac{e^x-e^{-x}}{e^x+e^{-x}}
$$ 说明:输出在 (−1, 1),比 sigmoid 居中(均值为 0)常用于
RNN/隐藏层。仍有梯度消失问题。 导数: $$
\frac{d}{dx}\tanh(x)=1-\tanh^2(x)
$$
ReLU(Rectified Linear Unit)
ReLU(x) = max (0, x)
说明:计算简单,稀疏激活,缓解梯度消失。但负区间梯度为
0,可能出现“死神经元”。

Leaky ReLU
$$
\mathrm{LeakyReLU}(x)=
\begin{cases}
x,& x\ge 0\\
\alpha x,& x<0
\end{cases}
$$ 通常 α = 0.01。说明:负区间保有小梯度,缓解
ReLU 死区问题。
PReLU(Parametric ReLU)
$$
\mathrm{PReLU}(x)=\begin{cases}
x,& x\ge 0\\
a x,& x<0
\end{cases}
$$ 其中 a
为可学习参数。说明:比 Leaky 更灵活,但会增加参数。
ELU(Exponential Linear Unit)
$$
\mathrm{ELU}(x)=\begin{cases}
x,& x\ge0\\
\alpha (e^x-1),& x<0
\end{cases}
$$ 说明:负区间趋近于 −α,能加速学习并部分居中激活。
SELU(Scaled ELU)
$$
\mathrm{SELU}(x)=\lambda\begin{cases}
x,& x>0\\
\alpha(e^x-1),& x\le0
\end{cases}
$$ 配套特殊初始化和网络结构可实现“自归一化”。
GELU(Gaussian Error Linear
Unit)
常用近似形式: GELU(x) = x ⋅ Φ(x) (Φ
为标准正态 CDF) 近似实现用: $$
\mathrm{GELU}(x)\approx
\tfrac{x}{2}\left(1+\tanh\left[\sqrt{\tfrac{2}{\pi}}\left(x+0.044715x^3\right)\right]\right)
$$ 说明:Transformer(BERT、GPT
系列)常用,表现优于 ReLU 的平滑替代。
Swish
Swish(x) = x ⋅ σ(x)
说明:平滑,有时比 ReLU/GELU
更好,特别在大模型里表现不错。
Mish
Mish(x) = xtanh (ln (1 + ex))
说明:平滑、无界正区间,部分任务比 Swish/ELU
更优(但计算稍贵)。
Softplus(平滑 ReLU)
Softplus(x) = ln (1 + ex)
说明:可微分的 ReLU 近似;导数为 sigmoid。
Softmax(多类输出)
对于向量 z ∈ ℝK: $$
\mathrm{Softmax}(z)_{i}=\frac{e^{z_i}}{\sum_{j=1}^{K} e^{z_j}}
$$ 说明:把 logits 转为概率分布。数值稳定实现用
z − maxjzj(避免
exp 溢出)。 常用变体:Log-Softmax(用于 NLLLoss
的稳定实现)。
2. 损失函数 (Loss)
MSE(Mean Squared Error)
$$
L_{\mathrm{MSE}}=\frac{1}{n}\sum_{i=1}^n (y_i-\hat y_i)^2
$$
说明:回归常用;对离群点敏感(平方放大误差)。
MAE(Mean Absolute Error)
$$
L_{\mathrm{MAE}}=\frac{1}{n}\sum_{i=1}^n |y_i-\hat y_i|
$$ 说明:对离群点更稳健,但导数在 0
点不可导(可用 subgradient)。
Huber Loss
$$
L_\delta(a)=
\begin{cases}
\frac{1}{2}a^2,& |a|\le\delta\\
\delta(|a|-\tfrac{1}{2}\delta),& |a|>\delta
\end{cases},\quad a=y-\hat y
$$ 说明:MSE 与 MAE
的折中,常用于含异常点的回归。
Cross-Entropy(多类)
如果 y 为 one-hot,p̂ 为概率分布: L = −∑iyilog p̂i
说明:分类任务最常用;通常与 softmax
一起使用。实现上常用 log-softmax + nll
以提高稳定性。
Binary Cross-Entropy /
BCEWithLogits
对二分类,若用 logits z:
BCEWithLogits(z, y) = −[ylog σ(z) + (1 − y)log (1 − σ(z))]
实现提醒:用 BCEWithLogits(直接用 logits
而不是先 sigmoid)避免数值不稳定。
KL
Divergence(Kullback–Leibler)
连续形式或离散形式,例如离散分布 P, Q: $$
D_{KL}(P|Q)=\sum_i P(i)\log\frac{P(i)}{Q(i)}
$$
说明:VAE、知识蒸馏中常见(作为正则/约束)。非对称。
NLL(Negative Log Likelihood)
分类时给定目标类别 y 与
log-prob log p(y):
LNLL = −log p(y)
常与 LogSoftmax 联用。
Hinge Loss(SVM)
Lhinge = max (0, 1 − y ⋅ f(x))
说明:二分类与 margin 的损失,常用于传统 SVM。
Focal Loss(处理类别不平衡)
Lfocal = −(1 − pt)γlog (pt)
其中 pt
是预测概率,γ > 0
控制对困难样本的聚焦。常用于目标检测(如 RetinaNet)。
Contrastive / Triplet /
InfoNCE(表示学习)
- Triplet Loss(三元组): L = max (0, d(a, p) − d(a, n) + α)
其中 a 为 anchor,p positive,n negative,d(⋅, ⋅) 距离,α margin。
- InfoNCE(对比学习常见)(简化): $$
L=-\log\frac{\exp(\mathrm{sim}(z,z^+)/\tau)}{\sum_{i}\exp(\mathrm{sim}(z,z_i)/\tau)}
$$ sim 常为余弦相似度,τ 温度参数。
CTC Loss(连接时序分类)
用于对齐未知对齐标签(如语音识别):数学形式复杂,通常使用动态规划实现(不可直接给出单行公式)。常用框架
API(如 ctc_loss)。
3. 正则化 /
其它防过拟合手段 (Regularization)
L2 正则化(权重衰减)
ΩL2(w) = λ∑iwi2
说明:促使参数变小,常与优化器一起实现(注意:PyTorch
的 weight_decay 与直接在 loss 加 L2 有细微实现差异)。
L1 正则化
ΩL1(w) = λ∑i|wi|
说明:倾向稀疏权重(特征选择效果)。
Dropout
训练时对每个神经元使用 Bernoulli 随机掩码: $$
\tilde h_i = \frac{h_i \cdot r_i}{1-p},\quad
r_i\sim\mathrm{Bernoulli}(1-p)
$$
说明:训练时随机丢弃,推理时按比例缩放或使用训练时的
scale。如上式为 inverted dropout(常用实现),训练-推理一致性更好。
Label Smoothing
将 one-hot 软化: $$
y^{LS}_k=(1-\epsilon)\cdot \mathbf{1}_{k=y} + \frac{\epsilon}{K}
$$
说明:防止模型过度自信,常用于分类(Transformer
中常用)。
Spectral Normalization
对层权重做谱范数规范化(常用于 GAN 的判别器),控制 Lipschitz
常数,提升稳定性。
4. 归一化 / 标准化 函数
(Normalization)
Batch
Normalization(BatchNorm)
对 mini-batch 的每个特征维度 k: $$
\hat x_k=\frac{x_k-\mu_k}{\sqrt{\sigma_k^2+\epsilon}},\quad y_k=\gamma_k
\hat x_k + \beta_k
$$ 其中 μk, σk2
为 batch 均值与方差,γ, β
可学习。说明:加速训练,允许较大学习率;小 batch
时效果变差。
Layer
Normalization(LayerNorm)
对单个样本的特征维度归一: $$
\hat
x=\frac{x-\mu_{\text{layer}}}{\sqrt{\sigma_{\text{layer}}^2+\epsilon}},\quad
y=\gamma\hat x+\beta
$$ 说明:对 RNN 和 Transformer 更稳定(与 batch
size 无关)。
InstanceNorm / GroupNorm
- InstanceNorm:对每个样本每个通道独立归一(常用于风格迁移)。
- GroupNorm:把通道分组后做归一,适合小 batch。
Weight Normalization /
RMSNorm
- WeightNorm:对权重向量做
reparam,提高训练稳定性。
- RMSNorm:只用 RMS
信息做归一(无需均值),计算更简单。
5. 初始化(权重初始分布)
Xavier / Glorot
初始化(均匀或正态)
针对激活函数对称(tanh): 方差设定(正态): $$
\mathrm{Var}(w)=\frac{2}{n_\text{in}+n_\text{out}}
$$ 说明:保持前向/反向传播方差平稳。
He / Kaiming 初始化
针对 ReLU: $$
\mathrm{Var}(w)=\frac{2}{n_\text{in}}
$$ 说明:ReLU 系列常用。
Orthogonal 初始化
令权重矩阵为正交矩阵(适用于 RNN、深层网络时稳定训练)。
6. 相似度 / 距离 函数
(Similarity / Distance)
点积(Dot product)
dot(x, y) = x⊤y
用于注意力、向量相似度基础。
余弦相似度(Cosine)
$$
\mathrm{cosine}(x,y)=\frac{x^\top y}{|x||y|}
$$
说明:对向量长度不敏感,仅看角度方向。常用于检索/相似度评估。
欧氏距离(L2)
$$
d(x,y)=|x-y|_2=\sqrt{\sum_i (x_i-y_i)^2}
$$
曼哈顿距离(L1)
d(x, y) = |x − y|1 = ∑i|xi − yi|
Mahalanobis 距离
$$
d_M(x,y)=\sqrt{(x-y)^\top S^{-1}(x-y)}
$$ 其中 S
为协方差矩阵。
7. 注意力与位置编码
(Attention & PosEnc)
Scaled Dot-Product Attention
给 query Q、key K、value V: $$
\mathrm{Attention}(Q,K,V)=\mathrm{softmax}\left(\frac{QK^\top}{\sqrt{d_k}}\right)V
$$ 说明:$\sqrt{d_k}$
用于缩放以缓解点积随维度增长而变大导致 softmax 梯度消失的问题。
Multi-Head
Attention(概念公式)
MultiHead(Q, K, V) = Concat(head1, …, headh)WO
headi = Attention(QWiQ, KWiK, VWiV)
对位置 pos 和维度 i: $$
\begin{aligned}
PE_{(pos,2i)} &= \sin\left(\frac{pos}{10000^{2i/d}}\right)\\
PE_{(pos,2i+1)} &= \cos\left(\frac{pos}{10000^{2i/d}}\right)
\end{aligned}
$$
说明:为序列模型提供位置信息;也可用可学习的位置编码。
8.
优化器相关(优化器更新公式与学习率调度)
SGD(带或不带 momentum)
- SGD: wt + 1 = wt − η∇wL(wt)
- Momentum: vt + 1 = μvt + η∇wL(wt), wt + 1 = wt − vt + 1
其中 μ 是
momentum(惯性系数)。
Adam(自适应一阶优化器)
参数:β1, β2, ϵ
$$
\begin{aligned}
m_t&=\beta_1 m_{t-1} + (1-\beta_1) g_t\\
v_t&=\beta_2 v_{t-1} + (1-\beta_2) g_t^2\\
\hat m_t&=\frac{m_t}{1-\beta_1^t},\quad \hat
v_t=\frac{v_t}{1-\beta_2^t}\\
w_{t+1}&=w_t - \eta \frac{\hat m_t}{\sqrt{\hat v_t}+\epsilon}
\end{aligned}
$$ 说明:广泛用于 Transformer /
大模型训练。注意学习率与 weight decay 的配合(AdamW 推荐分离 weight
decay)。
RMSProp / Adagrad
- Adagrad:历史梯度平方和累计,适合稀疏梯度。
- RMSProp:对平方梯度做指数平均,避免 Adagrad
的学习率过快衰减。
学习率调度(常见)
- Step decay:每 k 步降低 lr(乘以 gamma)。
- Exponential decay:ηt = η0e−kt.
- Cosine
annealing(无/有热重启):常见于训练后期退火。
- Warmup:训练初期线性/指数升高 lr(Transformer
常用线性 warmup + 后续衰减)。 说明:大模型常用
linear warmup + Adam +
cosine decay 或 inverse sqrt 衰减。
9.
其它常见数学工具(数值稳定性等)
LogSumExp(数值稳定的
log-sum-exp)
log ∑iexi = m + log ∑iexi − m, m = maxixi
说明:用于 stable softmax / log-likelihood
计算,避免溢出。
Softmax with Temperature
$$
\mathrm{softmax}_\tau(z)_i=\frac{e^{z_i/\tau}}{\sum_j e^{z_j/\tau}}
$$ τ < 1
使分布更尖锐,τ > 1
更平滑。常用于知识蒸馏或采样控制。
Gradient Clipping(梯度裁剪)
- 按值裁剪:gi = clip(gi, −c, c)
- 按范数裁剪:若 |g|2 > c,则
$g\leftarrow g\cdot \frac{c}{|g|_2}$
说明:RNN / 大学习率下防止梯度爆炸。
小结
- 激活函数:Transformer/大模型 通常选 GELU 或
Swish;传统 CNN 常用
ReLU/LeakyReLU。
- 损失函数:分类用 Cross-Entropy/NLL;回归用
MSE/Huber;不平衡用 Focal。
- 归一化:Transformer 用 LayerNorm;CNN 多用
BatchNorm(但小 batch 时考虑 GroupNorm)。
- 优化器:大模型通常用 Adam / AdamW + 线性
Warmup + Cosine Decay。注意 weight decay 的实现方式(AdamW 与旧
Adam + L2 不同)。
- 数值稳定性:softmax/log-sum-exp、BCEWithLogits、log-softmax
等稳定实现非常重要。
- 调参实践:学习率、batch size、权重衰减、warmup
步数对大模型影响最大。