LLMs 损失函数篇
一、介绍一下 KL 散度
KL(Kullback-Leibler)散度衡量了两个概率分布之间的差异。公式为:
D K L ( P ∥ Q ) = ∑ P ( x ) log P ( x ) Q ( x ) D_{KL}(P \| Q) = \sum P(x) \log \frac{P(x)}{Q(x)} DKL(P∥Q)=∑P(x)logQ(x)P(x)
二、交叉熵损失函数写一下,物理意义是什么
交叉熵损失函数(Cross-Entropy Loss Function)用于度量两个概率分布之间的差异。在分类问题中,它通常用于衡量模型的预测分布与实际标签分布之间的差异。公式为:
H ( p , q ) = − ∑ i = 1 N p ( x i ) log q ( x i ) H(p, q) = -\sum_{i=1}^N p(x_i) \log q(x_i) H(p,q)=−i=1∑Np(xi)logq(xi)
其中,
- ( p ) 表示真实标签
- ( q ) 表示模型预测的标签
- ( N ) 表示样本数量
物理意义:
交叉熵衡量实际标签分布与模型预测分布之间的“信息差”。当两个分布完全一致时,交叉熵损失为 0;分布差异越大,损失值越高。
三、KL 散度与交叉熵的区别
-
KL散度:
- 衡量两个概率分布 ( P ) 和 ( Q ) 差别的非对称性的度量。
- 越小表示两个分布越接近。
- 是非对称的,且值为非负数。
-
交叉熵:
- 用于二分类和多分类问题。
- 从信息论角度定义,是KL散度的一种特殊形式。
四、多任务学习各 loss 差异过大怎样处理
- 动态调整损失权重
- 使用任务特定的损失函数
- 改变模型架构或引入正则化
- 平衡任务贡献,以便更好地训练模型
五、分类问题为什么用交叉熵损失函数不用均方误差(MSE)
-
交叉熵优势:
- 对概率差异更敏感。
- 能更好地区分不同类别。
- 梯度计算稳定,有助于优化。
-
MSE问题:
- 不够敏感于概率差异。
- 分类问题需要激活函数(如sigmoid或softmax),导致MSE不再适用。
总结:交叉熵适合分类问题,MSE适合回归问题。
六、什么是信息增益
信息增益是决策树算法中用于选择最佳特征的一种评价指标。
- 衡量特征已知情况下,将样本集合划分成不同类别的纯度提升程度。
- 信息增益公式:
I G ( T , X ) = H ( T ) − H ( T ∣ X ) IG(T, X) = H(T) - H(T | X) IG(T,X)=H(T)−H(T∣X)- ( H(T) ):原始集合熵
- ( H(T | X) ):条件熵
七、多分类的分类损失函数(Softmax)
多分类问题中,使用Softmax交叉熵损失函数:
L = − ∑ i = 1 n y i log ( p i ) L = -\sum_{i=1}^n y_i \log(p_i) L=−i=1∑nyilog(pi)
其中:
- ( n ):类别数
- ( y_i ):第 ( i ) 类的真实标签
- ( p_i ):第 ( i ) 类的预测概率
八、Softmax 和交叉熵损失怎么计算,二值交叉熵呢
-
Softmax计算公式:
p i = e z i ∑ j e z j p_i = \frac{e^{z_i}}{\sum_{j} e^{z_j}} pi=∑jezjezi -
多分类交叉熵:
L = − ∑ i = 1 n y i log ( p i ) L = -\sum_{i=1}^n y_i \log(p_i) L=−i=1∑nyilog(pi) -
二分类交叉熵:
L = − 1 N ∑ i = 1 N [ y i log ( p i ) + ( 1 − y i ) log ( 1 − p i ) ] L = -\frac{1}{N} \sum_{i=1}^N \left[ y_i \log(p_i) + (1 - y_i) \log(1 - p_i) \right] L=−N1i=1∑N[yilog(pi)+(1−yi)log(1−pi)]
九、如果Softmax的e次方超过float的值了怎么办
解决办法是将分子分母同时除以 ( x ) 中的最大值进行归一化处理。