栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

[损失函数]:损失函数的整理

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

[损失函数]:损失函数的整理

1、交叉熵损失函数

交叉熵损失函数:

在二分类问题中,该函数通常对应:

其中 y i y_{i} yi​表示样本i的标签,正确为1,错误为0. p i p_{i} pi​表示样本i预测为正确的概率。

交叉熵损失函数常被用于分类任务中,由于交叉熵涉及到计算每个类别的概率,所以交叉熵几乎每次都和sigmoid(或softmax)函数一起出现。将神经网络最后一层的输出通过Softmax方法转换为概率分布再与真实类别的 one-hot 形式进行交叉熵的计算。

使用pytorch来计算:

import torch
import torch.nn as nn

batch = 2
num_class = 4

logits = torch.randn(batch,num_class)
target = torch.randint(num_class,size=(batch,))
print(logits)
print('target',target)
ce_loss_fn = torch.nn.CrossEntropyLoss()
ce_loss_fn(logits,target)
tensor([[ 0.0500, -0.6461,  0.9130, -0.0553],
        [-0.3201,  1.5033,  0.2070,  1.8456]])
target tensor([0, 0])
tensor(2.2152)

手算:

m =  nn.Softmax(dim=1)
logits2 = m(logits)
logits2 #tensor([[0.2097, 0.1045, 0.4970, 0.1887],
        #[0.0568, 0.3517, 0.0962, 0.4953]])
(-torch.log(torch.tensor([0.2097]))-torch.log(torch.tensor([0.0568])))/2  #tensor([2.2151])

随即生成2个batch的数据,共有4类标签,对应的标签都是0这个类别,将最后一层的输出进行softmax转换,得到的概率分布为logits2,由于对应的都是类别0,所以取第一个的概率计算即可。

2、负对数似然函数

在概率论中,概率是一个事件发生的可能性,而似然指的是影响概率的未知参数。也就是说,概率是在该未知参数已知的情况下所得到的结果;而似然是该参数未知,我们需要根据观察结果,来估计概率模型的参数。
最大似然估计就是要使得根据目前已经有的数据X,来估计参数,使得在这个参数下出现X的概率值最大。通常似然函数具有如下这个形式:

通过取对数的方式可以将连续的乘法转换为加法:

之后就是寻找一个合适的 θ theta θ来使得上面这个式子取到最大值,由于上面的每一项都是小于0的,可以再添加一个负号,就得到了负对数似然函数:

与上面的交叉熵损失函数相比,这一损失函数在每一项前面少了一个p,但是因为这些都是已经发生的观测样本,所以事实上p都是1.

m =  nn.Softmax(dim=1)
loss = torch.nn.NLLLoss()
input = torch.tensor([[ 0.1076, -1.4376, -0.6307,  0.6451, -1.5122],
        [ 1.5105,  0.7662, -1.7587, -1.4581,  1.1357],
        [-1.4673, -0.5111, -0.0779, -0.7404,  1.4447]], requires_grad=True)
target = torch.tensor([1, 0, 4])

output = loss(m(input), target) #tensor(1.3537)

torch.log(m(input))
#tensor([[-1.2812, -2.8264, -2.0195, -0.7437, -2.9010],
        #[-0.8118, -1.5561, -4.0810, -3.7804, -1.1866],
        #[-3.3349, -2.3787, -1.9455, -2.6080, -0.4229]], grad_fn=)

按照target给出的索引选取

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/958787.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号