用一个带数据的例子来演示交叉熵损失函数的计算过程。(手写数字识别)
假设我们有一个样本,其真实标签是数字"2"。对应的真实标签的one-hot向量是 [0, 0, 1, 0, 0, 0, 0, 0, 0, 0],因为"2"的索引位置是2,所以在one-hot向量中第3个位置是1,其他位置都是0。
假设LeNet模型对于这个样本的输出为一个形状为 (10,) 的预测概率向量,例如 [0.01, 0.03, 0.8, 0.04, 0.02, 0.01, 0.06, 0.01, 0.02, 0.0].
我们将使用这些数据来计算交叉熵损失值。
首先,我们对预测概率的对数进行计算:
然后,我们根据真实标签的one-hot向量来确定正确的类别,即
的类别。在这个例子中,真实标签对应的位置是第3个位置(数字"2"对应的位置)。
接下来,我们将预测概率的对数与真实标签的one-hot向量进行元素级别的乘法运算:
然后,对这些乘积结果进行求和得到损失值:
所以,对于这个样本,交叉熵损失值为 -log(0.8)。在训练过程中,优化算法会通过最小化这个损失值来调整模型的参数,使得模型的预测结果更加准确和可信。