损失函数s

本篇内容总结问题:有那些损失函数,损失函数用法,原理,优缺点和适用范围?

损失函数:

基于距离度量的损失函数

基于距离度量的损失函数通常将输入数据映射到基于距离度量的特征空间上,将映射后的样本看作空间上的点,采用合适的损失函数度量特征空间上样本真实值和模型预测值之间的距离。特征上的两个点的距离越小,模型的预测性能越好。例如线性模型。

n组数据,\hat{y}预测值,y真实值。

均方误差损失函数(MSE)

L= \frac{1}{n}\sum_{i=1}^{n}(\hat{y_{i}}-y_{i})^{2}

在回归问题中,MSE用于度量样本点到回归曲线的距离,优点:由于无参数、计算成本低和具有明确的物理意义。

在回归问题中MSE常被作为模型的经验损失或算法的性能指标。

代码实现:

import numpy as np
# 自定义实现
def MSELoss(x,y):
    '''x:list 预测值
       y:list 真实值
'''
    x=np.array(x)
    y=np.array(y)
    loss = np.sum(np.square(x-y))/len(x)
    return loss

# 计算过程
x = [1,2]
y = [0,1]
loss = ((1-0)**2 + (2-1)**2)

# pytorch版本
y_true = torch.tensor(y)
y_pred = torch.tensor(x)
mse_fc = torch.nn.MSELoss()
mse_loss = mse_fc(y_pred,y_true)

基于概率分布度量的损失函数

基于概率分布度量的损失函数是样本间的相似性转化为随机事件出现的可能性,即通过度量样本的真实分布与它估量的分布之间的距离,分类问题尤为常用。

交叉熵损失函数

L=-\sum_{i=1}^{n}y_{i}log\hat{y_{i}}

交叉熵:

交叉熵是信息论中的一个重要概念,它的大小表示两个概率分布之间的差异

代码实现:

# 自定义实现
def CrossEntropy_loss(y_pred,y_true):
    '''y_true:list 真实的概率分布
       y_pred:list 预测的概率分布
'''
    loss = 0
    for y,fx in zip(y_true, y_pred):
        loss+=-y * np.log(fx)
    return loss

# pytorch实现
y_true=torch.tensor(y)
y_pred=torch.tensor(x)
loss_function = nn.CrossEntropyLoss()
loss = loss_function(y_pred, y_true)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值