交叉熵损失函数在深度学习的公式
时间: 2024-12-26 21:17:48 浏览: 3
### 交叉熵损失函数在深度学习中的数学表达
对于二分类问题,交叉熵损失函数定义如下:
如果模型预测的概率分布为 \( p \),真实标签概率分布为 \( q \),那么针对单一样本的交叉熵损失可表示为:
\[ L(p, q) = -\sum_{i}q_i \log(p_i) \]
具体到二元分类情况下,假设样本的真实标签为 \( y \in {0, 1} \),而模型给出该样本属于正类别的预测概率为 \( \hat{y} \),则对应的交叉熵损失公式简化为[^2]:
\[ Loss(y,\hat{y})=-[y\log(\hat{y})+(1-y)\log(1-\hat{y})] \]
多分类场景下,设总共有 K 类,则 Softmax 函数配合使用的交叉熵损失形式变为[^4]:
```python
import numpy as np
def softmax_cross_entropy_loss(logits, labels):
"""
计算softmax交叉熵损失
参数:
logits: 形状为[N,C]的未归一化分数数组(N是批次大小,C是类别数)
labels: 长度为N的实际类别索引列表
返回:
平均损失值
"""
N = logits.shape[0]
exp_logits = np.exp(logits - np.max(logits, axis=1, keepdims=True))
probs = exp_logits / np.sum(exp_logits, axis=1, keepdims=True)
correct_logprobs = -np.log(probs[range(N), labels])
loss = np.sum(correct_logprobs) / N
return loss
```
上述实现展示了如何基于给定的日志几率(即未经变换前的原始输出)计算平均交叉熵损失。
阅读全文