加权交叉熵损失函数推导过程
时间: 2023-09-26 20:14:56 浏览: 123
假设有 $n$ 个类别,第 $i$ 个样本的真实标签为 $y_i=[y_{i,1},y_{i,2},\cdots,y_{i,n}]^\top$(one-hot 向量),预测标签为 $\hat{y_i}=[\hat{y}_{i,1},\hat{y}_{i,2},\cdots,\hat{y}_{i,n}]^\top$(也是 one-hot 向量),第 $i$ 个样本的权重为 $w_i$。则第 $i$ 个样本的交叉熵损失为:
$$
L_i = -\sum_{j=1}^{n}y_{i,j}\log(\hat{y}_{i,j})
$$
其中 $y_{i,j}$ 和 $\hat{y}_{i,j}$ 分别表示第 $i$ 个样本的真实标签和预测标签的第 $j$ 个元素。这个损失函数的意义是对于第 $i$ 个样本,计算所有类别的交叉熵。
为了考虑不同类别的样本对模型的影响是不同的,我们需要给不同类别的样本赋予不同的权重。具体地,我们定义第 $j$ 个类别的权重为 $w_j$,则第 $i$ 个样本的加权交叉熵损失为:
$$
L_i = -\sum_{j=1}^{n}w_j y_{i,j}\log(\hat{y}_{i,j})
$$
这个损失函数的意义是对于第 $i$ 个样本,计算所有类别的交叉熵,并将其加权求和。
最终的加权交叉熵损失函数为所有样本的加权交叉熵损失的平均值:
$$
L = \frac{1}{N}\sum_{i=1}^{N}L_i = -\frac{1}{N}\sum_{i=1}^{N}\sum_{j=1}^{n}w_j y_{i,j}\log(\hat{y}_{i,j})
$$
其中 $N$ 表示样本总数。
阅读全文