1.什么是交叉熵

2.使用交叉熵作为损失函数的神经网络分类器
一般情况下,最后一个输出层的节点个数与分类任务的目标数相等。
假设最后的节点数为N,那么对于每一个样例,神经网络可以得到一个N维的数组作为输出结果,数组中每一个维度会对应一个类别的可能性。在最理想的情况下,如果一个样本属于k,那么这个类别所对应的的输出节点的输出值应该为1,而其他节点的输出都为0,即[0,0,1,0,….0,0],这个数组也就是样本的Label,是神经网络最期望的输出结果,交叉熵就是用来判定实际的输出与期望的输出的接近程度。
3.示例

整个样本集合上分类器的对数损失就可以如下定义:


代码示例:
import torch
criterion=nn.CrossEntropyLoss()
criterion(prediction,lable)
input=torch.tensor([[-0.3830,-0.0102,-1.4235,-0.5212,0.9011]])#(batch_size,c)
'''
这里以input中的数据代表神经网络中模型的输出(假设神经网络的输出节点数是c)
则input[i]代表着原数据被划分为第i类的概率
'''
target =torch.tensor([4])#long tensor
'''
target则表示原数据真实的类别
'''
loss= criterion (input, target)
注;input与target的匹配
交叉熵损失函数解析
本文深入探讨了交叉熵损失函数在神经网络分类器中的应用,解释了其如何衡量实际输出与期望输出之间的差距,以及如何通过PyTorch实现交叉熵损失函数的计算。
2586

被折叠的 条评论
为什么被折叠?



