深度学习中常用的损失函数(一) —— MSELoss()

 nn.MSELoss() 

        该函数叫做平均平方误差,简称均方误差。它的英文名是mean squared error,该损失函数是挨个元素计算的。该元素的公式如下:

                                loss(x_{i},x_{j})=(x_{i}-x_{j})^2

其连个输入参数,第一个参数是输出的参数,第二个参数是与之对比的参数。

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

       1、 如果reduce = False,返回向量形式的 loss 

  2、如果reduce = True, 返回标量形式的loss

       3、如果size_average = True,返回 loss.mean();

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

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

### 关于深度学习损失函数的实际应用 在实际应用场景中,不同的任务类型决定了不同类型的损失函数的选择。对于分类问题而言,交叉熵损失函数是最常用种形式[^2]。 #### 二分类问题中的交叉熵损失函数实例 在个简单的二分类神经网络模型里,假设目标是区分猫和狗的照片。此时可以采用`nn.BCELoss()`作为损失函数,在PyTorch框架下的实现如下: ```python import torch.nn as nn criterion = nn.BCELoss() output = model(input_data) # 假定model已经定义好, input_data为输入特征向量 loss = criterion(output, target_label) # target_label应为0或1表示类别 ``` 这段代码展示了如何利用二元交叉熵来评估单个样本属于某类别的概率预测准确性[^3]。 #### 多分类问题中的交叉熵损失函数实例 当面对多个离散类别时,则应该考虑使用多分类版本的交叉熵——即softmax加log loss组合而成的形式。比如手写数字识别MNIST数据集上构建卷积神经网络CNN来进行十进制数位(0~9)辨识工作: ```python import torch.optim as optim import torch.nn.functional as F class Net(nn.Module): def __init__(self): super(Net, self).__init__() ... def train(model, device, train_loader, optimizer, epoch): ... output = model(data) loss = F.cross_entropy(output, target) optimizer = optim.SGD(net.parameters(), lr=0.01, momentum=0.5) for epoch in range(1, epochs + 1): train(net, 'cpu', loader, optimizer, epoch) ``` 这里采用了内置方法F.cross_entropy()自动完成了Softmax层与NLL(Negative Log Likelihood) Loss的体化操作[^4]。 #### 回归问题中的均方误差(MSE)损失函数实例 如果处理的是连续数值型变量间的映射关系建模任务,那么MSE就成为了首选方案之。例如房价预测项目可基于线性回归或其他复杂结构设计相应算法并配合此准则训练权重参数: ```python from sklearn.metrics import mean_squared_error mse_loss_fn = nn.MSELoss() predictions = net(inputs).view(-1) actuals = targets.view(-1) loss_value = mse_loss_fn(predictions, actuals) print(f'Mean Squared Error: {mean_squared_error(actuals.detach().numpy(), predictions.detach().numpy())}') ``` 上述片段说明了怎样计算两组维张量间元素级差平方平均值得到最终得分情况,并且还额外调用了sklearn库辅助验证结果合理性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值