Skip to content

损失函数与相似度面试题

内容整理自学习笔记,仅供面试备考参考;不构成录用、培训或考试承诺。

1. KL 散度

KL 散度(Kullback-Leibler Divergence)衡量两个概率分布 P 和 Q 之间的差异:

DKL(PQ)=xP(x)logP(x)Q(x)

特性:非对称(D_KL(P||Q) ≠ D_KL(Q||P));非负值;值越小表示两个分布越接近。

2. 交叉熵损失函数

交叉熵损失(Cross-Entropy Loss)是分类问题中最常用的损失函数:

L=1Nicyiclogpic

其中 y_ic 为真实标签(one-hot),p_ic 为模型预测概率,N 为样本数,C 为类别数。

物理意义:衡量真实分布与模型预测分布之间的"信息差"。当两个分布完全一致时交叉熵为 0;差异越大,损失越大。

3. KL 散度与交叉熵的关系

交叉熵=+KL 散度H(P,Q)=H(P)+DKL(PQ)
  • 熵 H(P) 是真实分布的固有不确定性(常数)
  • 最小化交叉熵等价于最小化 KL 散度,即让预测分布 Q 逼近真实分布 P

4. 分类问题为何使用交叉熵而非均方误差(MSE)?

  1. 概率空间匹配:分类问题的输出是概率分布,交叉熵天然适合度量概率分布之间的距离
  2. 梯度性质:交叉熵配合 Softmax 的梯度为 p_i - y_i,简洁高效;而 MSE + Softmax 在概率接近 0 或 1 时梯度趋近于零(梯度饱和)
  3. 敏感性:交叉熵对概率的细微差异更敏感,能更好地区分不同类别
  4. 凸性:在逻辑回归中,交叉熵是凸函数,优化更稳定

MSE 适用于回归任务(连续值预测),不适合分类问题。

5. Softmax 与交叉熵的计算

Softmax

pi=ezijezj

多分类交叉熵

L=iyilogpi

二分类交叉熵

L=(ylogp+(1y)log(1p))

6. Softmax 溢出问题的处理

e^(z_i) 超过浮点数表示范围时,采用以下技巧:

pi=ezimax(z)jezjmax(z)

分子分母同时减去最大值 max(z),不改变相对大小,但避免了指数溢出。

7. 多任务学习中 Loss 差异过大的处理

  1. 动态权重调整:根据各任务学习难度动态调整损失权重
  2. 不确定性加权(Uncertainty Weighting):将各任务损失视为同方差不确定性的函数,自动学习最优权重
  3. 梯度归一化(GradNorm):通过归一化各任务梯度来平衡训练速度
  4. 任务特定损失函数:为不同任务设计不同的损失函数形式
  5. 分阶段训练:先训练主任务,再逐步引入辅助任务

8. 信息增益

信息增益是决策树中特征选择的评价指标,表示在已知某特征的情况下,样本集合不确定性减少的程度:

信息增益 = H(D) - H(D|A)

其中 H(D) 为数据集 D 的熵,H(D|A) 为已知特征 A 后的条件熵。信息增益越大,该特征的分类能力越强。

9. 相似度计算方法

除余弦相似度外,常见的相似度度量包括:

方法公式/思路适用场景
余弦相似度cos(θ) = A·B / (A
欧氏距离A - B
曼哈顿距离ΣA_i - B_i
Jaccard 相似度A ∩ B
皮尔逊相关系数cov(A,B) / (σ_A·σ_B)线性相关程度

10. 对比学习中的负样本问题

负样本的重要性

负样本帮助模型学习样本间的区分度,对提升模型性能和泛化能力至关重要。

负样本构造成本过高的解决方案

  1. 高效采样策略:使用近似采样方法选择与正样本相似但不相同的负样本
  2. 数据增强:利用数据增强技术生成合成负样本
  3. 关键负样本聚焦:重点关注对训练最有价值的困难负样本(Hard Negatives)
  4. 迁移学习:利用预训练模型或迁移学习复用已有的负样本构造成果
  5. MoCo 策略:使用动量编码器和队列维护大量负样本,减少每次 Batch 的构造开销