MLE / Research · ML Fundamentals

TikTok KL Loss:方向、交叉熵关系与零概率

先定义P/Q和支持集,解释非对称与蒸馏,不把KL一概称更好或更对称的损失。

题目重点:先定义P/Q和支持集,解释非对称与蒸馏,不把KL一概称更好或更对称的损失。

题意与假设

这道练习题保留了面经中值得训练的核心约束,并将需要澄清的条件单独列出。现场拿到变体时,先和面试官确认这些条件。

  • 题目泛问KL loss优点,任务未给;训练离散分布P为目标、Q为模型,概率均归一化。
  • P>0处Q须>0才有限,P=0项按0处理;具体蒸馏/生成应用需再定方向。

解题路线

  1. KL(P||Q)=ΣPlog(P/Q)=cross-entropy(P,Q)−entropy(P)。当P固定时,优化forward KL与对P的CE只差常数,并不是自动更优的另一任务。
  2. KL非负且P=Q时0,但不对称、一般不满足三角不等式,不是普通距离。调换方向会改变期望权重与支持集惩罚。
  3. forward方向在P有质量而Q极小处强罚,鼓励覆盖目标;reverse方向按Q加权,对某些多峰受限模型可能择模式。这个直观依分布/模型限制,不是所有问题无条件定理。
  4. 软标签蒸馏可传类别间相似性,温度和KL方向需明确;教师不可靠也可能传错,不能因为用KL就保证泛化或校准提升。
  5. 数值上用log概率,避免Q先下溢为0;epsilon平滑改变目标,应公开规则。归约按batch或所有元素平均会改变梯度尺度,库接口可能期待logQ而非Q。
  6. 验证相同分布为0、不同方向一般不同、支持不重合发散,以及训练梯度。若P也依赖参数,entropy(P)不再常数,不能简单把KL与CE当同一个优化。

手动走一遍

P=[1,0],Q=[0.5,0.5],forward KL=log2;反向因Q第二项对应P=0而无穷。P=Q时0。这个差别来自方向和支持,不是实现bug。

规模与取舍

C类计算O(C),batch O(NC),log概率缓存按实现;大词表分布可能主导存储,采样近似另有偏差。

易错点与追问

容易失分的边界

  • KL是对称距离。
  • 目标也训练仍把entropy当常数。
  • log-prob接口输入普通概率。

继续深挖

  • 温度蒸馏为何要调梯度尺度?
  • forward/reverse在多峰有何差别?
  • 零概率如何处理并声明目标变化?
✓已复制微信号!