交叉熵的简单理解

1 篇文章 0 订阅
1 篇文章 0 订阅

交叉熵损失计算示例

交叉熵损失公式

单个指标损失
其中y为label,p^为预测的正类别概率,即在二分类中通过sigmoid函数得出的正类别概率大小。
二分类
多分类
举例:

criterion = nn.CrossEntropyLoss()
input = torch.randn(3, 5, requires_grad=True)
target = torch.empty(3, dtype=torch.long).random_(5)
loss = criterion(input, target)

上述代码即为求交叉熵损失的示例,输入为随机生成的三个具有5个标签的样本,目标标签为同样随机生成的3个具有唯一正确标签的样本,loss即为函数torch.nn.CrossEntropyLoss()求得的交叉熵损失。

torch.nn.CrossEntropyLoss()内的核心代码如下:

batch_loss = 0.
for i in range(input.shape[0]):   # 遍历样本数
    numerator = np.exp(input[i, target[i]])	  # 对每个目标标签求指数
    denominator = np.sum(np.exp(input[i, :])) 	 # 每个目标标签所在样本总体指数之和			   
    loss = -np.log(numerator / denominator)    # 损失函数对数公式
    batch_loss += loss  # 所有样本损失之和

其中,公式中损失函数只有对数log(numerator / denominator)原因是,其他标签默认系数为0,因此代码中省略,因此代码也可写成如下:

for i in range(input.shape[0]):
	Loss[i]=-input[i, target[i]+sum(math.exp(input[i][:]))
loss = sum(Loss)

单个损失

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值