搜索

pdf文档 深度学习与PyTorch入门实战 - 25 交叉熵

882.21 KB 13 页 1 下载 120 浏览 0 评论 0 收藏
语言 格式 评分
中文(简体)
.pdf
3
摘要
文档主要介绍了交叉熵的概念及其在PyTorch中的实现。交叉熵是衡量两个概率分布差异的指标,可以表示为熵与KL散度之和。文档通过公式推导展示了交叉熵与熵、KL散度之间的关系,并通过实例说明了交叉熵在多分类任务中的应用。此外,文档还比较了交叉熵与均方误差(MSE)在分类任务中的优劣,并通过PyTorch代码示例说明了交叉熵的计算过程及其数值稳定性问题。
AI总结
### 文档总结:深度学习与PyTorch入门实战 - 交叉熵 --- #### 1. **交叉熵的概念** - 交叉熵(Cross Entropy)用于衡量两个概率分布之间的差异。 - 公式:$$ H(p,q) = -\sum p(x)\log q(x) $$ - 可以分解为熵(Entropy)和KL散度(Kullback-Leibler Divergence)之和:$$ H(p,q) = H(p) + D_{\mathrm{KL}}(p|q) $$ --- #### 2. **为什么选择交叉熵而不是MSE?** - **MSE的局限性**:在多分类任务中,MSE无法直接反映概率分布的差异。 - **交叉熵的优势**: - 能够衡量预测概率与真实标签之间的差异。 - 适用于概率预测任务(如分类问题)。 - 示例对比: | Label | Predict | Correct | |-------|---------|---------| | 3 | [0.3,0.3,0.4] | Yes | | 2 | [0.3,0.4,0.3] | Yes | | 1 | [0.1,0.2,0.7] | No | --- #### 3. **交叉熵的实现** - **PyTorch中的交叉熵**: - 使用`F.cross_entropy`计算多分类任务的损失。 - 实现流程: 1. 输入`x`通过权重矩阵`W`得到`logit`。 2. 对`logit`应用`softmax`得到概率分布。 3. 计算交叉熵损失。 - **代码示例**: ```python x = torch.randn(1, 784) w = torch.randn(10, 784) logits = x @ w.t() loss = F.cross_entropy(logits, torch.tensor([3])) ``` --- #### 4. **二分类与交叉熵** - 二分类任务的交叉熵公式: $$ H(P,Q) = -y\log(p) - (1-y)\log(1-p) $$ 其中: - \( y \) 是真实标签(0或1)。 - \( p \) 是预测概率。 --- #### 5. **数值稳定性** - 在计算概率时,直接计算对数避免数值溢出: ```python pred_log = torch.log(pred) loss = F.nll_loss(pred_log, torch.tensor([3])) ``` --- #### 6. **总结** - 交叉熵是衡量概率分布差异的有效工具。 - 在PyTorch中,`F.cross_entropy`结合了`logit`、`softmax`和损失计算,简化了实现。 - 适用于多分类任务,且比MSE更适合概率预测。 --- 下一课时将实战多分类问题。
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余 6 页请下载阅读 -
文档评分
请文明评论,理性发言.