损失函数-MSE-CEE

图像分类任务为什么用CEE不用MSE?

我们想衡量模型输出a和label y的逼近程度,其实这两个Loss都可以。但是为什么Logistic Regression采用的是交叉熵作为损失函数呢?看下这两个Loss function对w的导数,也就是SGD梯度下降时,w的梯度。

sigmoid导函数的取值范围?

F.cross_entropy()

ææ¯å¾ç

F.nll_entropy()

nn.MSELoss()

MSELoss损失函数中文名字就是:均方损失函数,公式如下所示:

这里 loss, x, y 的维度是一样的,可以是向量或者矩阵,i 是下标。

很多的 loss 函数都有 size_average 和 reduce 两个布尔类型的参数。因为一般损失函数都是直接计算 batch 的数据,因此返回的 loss 结果都是维度为 (batch_size, ) 的向量。

一般的使用格式如下所示:

loss_fn = torch.nn.MSELoss(reduce=True, size_average=True)

 这里注意一下两个入参:

  A reduce = False,返回向量形式的 loss 

  B reduce = True, 返回标量形式的loss

       C  size_average = True,返回 loss.mean();

  D  如果 size_average = False,返回 loss.sum()

 默认情况下:两个参数都为True.

nn.CrossEntropyLoss

nn.NLLLoss

### 损失函数MSE的区别 #### 定义上的区别 损失函数,也称为代价函数或误差函数,是机器学习和统计学中的重要概念,用于量化模型预测值与真实值之间的差异[^3]。而均方差损失函数(Mean Squared Error Loss, MSE)则是特定类型的损失函数之一,主要用于回归任务中。 #### 应用场景的不同 MSE作为损失函数的一种具体实现方式,在回归任务中极为常见。其计算方法基于平方差的形式,即通过求取预测值与实际值之间差值的平方平均来衡量模型性能的好坏[^1]。 #### 数学表达式的不同 一般而言,损失函数的具体形式取决于应用场景的需求;而对于MSE来说,则有明确的数学定义: \[ \text{MSE} = \frac{1}{n}\sum_{i=1}^{n}(y_i-\hat{y}_i)^2 \] 其中\( y_i \)代表真实的观测数据点,\(\hat{y}_i\) 表示对应的预测值,\( n \) 是样本数量。 #### 性质对比 相较于其他类型的损失函数,比如绝对误差(MAE),MSE具有独特的性质:当损失接近零时,MSE产生的梯度较小,有助于提高最终模型精度并促进稳定收敛过程。相反,MAE可能会导致较大的恒定梯度,即使在损失已经很小时也是如此,这对某些优化算法不利[^2]。 ```python import numpy as np def mse_loss(y_true, y_pred): """ 计算均方差损失 参数: y_true (numpy array): 实际标签数组 y_pred (numpy array): 预测结果数组 返回: float: 均方差损失值 """ return ((y_true - y_pred)**2).mean() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值