目录
[1 什么是交叉熵损失函数](#1 什么是交叉熵损失函数)
[2 疑问:为什么要乘以负一](#2 疑问:为什么要乘以负一)
bastract:
交叉熵损失函数就是-ln(真实类别的预测概率)
1 什么是交叉熵损失函数
在看transformer的时候遇到了这个,稍微写一下笔记,

这里面
-
softmax 得到预测概率分布
pred_prob -
one-hot 表示真实分布
target_prob
这里真实分布target_prob里面,除了该类别的位置是1以外,其他位置都是0,那么乘以0的就都没了,所以这个公式其实就是

比如
| 类别 | 概率 |
|---|---|
| 27 | 0.8 |
| 128 | 0.1 |
| 311 | 0.1 |

2 疑问:为什么要乘以负一
因为 log(x) 的值永远 ≤ 0(当 x 在 0~1 区间时):
-
log(1) = 0
-
log(0.8) ≈ -0.22
-
log(0.01) = -4.6
-
log(0.000001) = -13.8
而损失(loss)必须是 "越小越好" 的非负数。
但是 log(prob) 会产生负数,怎么办?
👉 乘上 -1,把负数变成正数,同时保持"概率越大损失越小"的性质"。