一、介绍一下 KL 散度?

KL(Kullback-Leibler)散度衡量了两个概率分布之间的差异。其公式为:

D K L ( P ∥ Q ) = ∑ x P ( x ) log ⁡ P ( x ) Q ( x ) D_{KL}(P \| Q) = \sum_{x} P(x) \log \frac{P(x)}{Q(x)} DKL(PQ)=xP(x)logQ(x)P(x)


二、交叉熵损失函数写一下,物理意义是什么?

交叉熵损失函数(Cross-Entropy Loss Function)是用于度量两个概率分布之间的差异的一种损失函数。在分类问题中,它通常用于衡量模型的预测分布与实际标签分布之间的差异。

公式如下:

L = − ∑ i = 1 N y i log ⁡ ( p i ) L = -\sum_{i=1}^{N} y_i \log(p_i) L=i=1Nyilog(pi)

其中, y i y_i yi 表示真实标签, p i p_i pi 表示模型预测的概率, N N N 表示样本数量。

物理意义:交叉熵损失函数可以用来衡量实际标签分布与模型预测分布之间的“信息差”。当两个分布完全一致时,交叉熵损失为 0,表示模型的预测与实际情况完全吻合。当两个分布之间存在差异时,损失函数的值会增加,表示预测错误程度的大小。


三、KL 散度与交叉熵的区别?

KL 散度是两个概率分布 P P P Q Q Q 差别的非对称性度量。KL 散度越小表示两个分布越接近。KL 散度是不对称的,且其值是非负的

交叉熵可以表示为:

H ( P , Q ) = H ( P ) + D K L ( P ∥ Q ) H(P, Q) = H(P) + D_{KL}(P \| Q) H(P,Q)=H(P)+DKL(PQ)

其中, H ( P ) H(P) H(P) P P P 的熵, D K L ( P ∥ Q ) D_{KL}(P \| Q) DKL(PQ) 是 KL 散度。


四、多任务学习各 loss 差异过大怎样处理?

多任务学习中,如果各任务的损失差异过大,可以通过以下方法处理:

  • 动态调整损失权重
  • 使用任务特定的损失函数
  • 改变模型架构
  • 引入正则化

目标是平衡各任务的贡献,以便更好地训练模型。


五、分类问题为什么用交叉熵损失函数不用均方误差(MSE)?

交叉熵损失函数通常在分类问题中使用,而均方误差(MSE)损失函数通常用于回归问题。

原因如下

  • 分类问题的输出是概率分布,交叉熵可以衡量两个概率分布之间的差异。
  • 交叉熵对概率的细微差异更敏感,有助于更好地区分不同类别。
  • 交叉熵在梯度计算时具有更好的数学性质,有助于更稳定地优化模型。

相比之下,MSE 更适用于回归问题,衡量预测值与真实值之间的平方差。在分类问题中使用 MSE 可能不够敏感,且不适合与 softmax 等激活函数配合使用。


六、什么是信息增益?

信息增益是在决策树算法中用于选择最佳特征的一种评价指标。

信息增益衡量了在特征已知的情况下,将样本集合划分成不同类别的纯度提升程度。它基于信息论的概念,使用熵来度量样本集合的不确定性。

信息增益公式为:

Information Gain = H ( D ) − H ( D ∣ A ) \text{Information Gain} = H(D) - H(D|A) Information Gain=H(D)H(DA)

其中, H ( D ) H(D) H(D) 是原始数据集的熵, H ( D ∣ A ) H(D|A) H(DA) 是在特征 A A A 下的条件熵。

选择具有最大信息增益的特征作为当前节点的分裂标准,可以提高分类的准确性。


七、多分类的分类损失函数(Softmax)?

多分类问题中,通常使用 Softmax 交叉熵损失函数

公式如下:

L = − ∑ i = 1 n y i log ⁡ ( p i ) L = -\sum_{i=1}^{n} y_i \log(p_i) L=i=1nyilog(pi)

其中, n n n 是类别数, y i y_i yi 是第 i i i 类的真实标签, p i p_i pi 是第 i i i 类的预测概率。


八、softmax 和交叉熵损失怎么计算,二值交叉熵呢?

Softmax 函数

softmax ( z i ) = e z i ∑ j = 1 K e z j \text{softmax}(z_i) = \frac{e^{z_i}}{\sum_{j=1}^{K} e^{z_j}} softmax(zi)=j=1Kezjezi

多分类交叉熵损失

L = − ∑ c = 1 M y i c log ⁡ ( p i c ) L = -\sum_{c=1}^{M} y_{ic} \log(p_{ic}) L=c=1Myiclog(pic)

其中:

  • y i c y_{ic} yic 是指示函数(0 或 1),如果样本 i i i 的真实类别等于 c c c 取 1,否则取 0;
  • p i c p_{ic} pic 是样本 i i i 属于类别 c c c 的预测概率。

二分类交叉熵损失

L = − [ y log ⁡ ( p ) + ( 1 − y ) log ⁡ ( 1 − p ) ] L = -\left[ y \log(p) + (1 - y) \log(1 - p) \right] L=[ylog(p)+(1y)log(1p)]

其中, p p p 表示样本预测为正类的概率。


九、如果 softmax 的 e e e 次方超过 float 的值了怎么办?

将分子分母同时除以输入向量中的最大值,可以防止数值溢出:

softmax ( z i ) = e z i − max ⁡ ( z ) ∑ j = 1 K e z j − max ⁡ ( z ) \text{softmax}(z_i) = \frac{e^{z_i - \max(z)}}{\sum_{j=1}^{K} e^{z_j - \max(z)}} softmax(zi)=j=1Kezjmax(z)ezimax(z)


Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐