均方误差(Mean Squared Error,简称MSE)是用于衡量预测值与真实值之间差异的一种指标。它是实际观察值与预测值之差的平方和的平均值。
假设有n个样本,真实值分别为y?, y?, ……, y?,预测值分别为??, ??, ……, ??。
首先,我们可以定义误差(error)为预测值与真实值之间的差:
e? = y? - ??
则第i个样本的误差平方为:
e?2 = (y? - ??)2
我们希望得到所有样本误差平方的平均数,即均方误差。因此,我们可以计算所有样本误差平方的和,再除以样本数n:
MSE = (1/n) * Σ(y? - ??)2 (i=1,2,…,n)
?
均方误差越小,说明预测值与真实值越接近;均方误差越大,说明预测值与真实值之间的差异越大。
MSELoss(均方误差损失)是PyTorch中用于计算预测值与真实值之间均方误差的损失函数。它主要用于回归问题,即预测连续值。
# 首先导入所需的库
import torch
import torch.nn as nn
# 创建MSELoss对象
mse_loss = nn.MSELoss()
# 定义预测值和真实值:
predictions = torch.randn(3, 5) # 随机生成一个3x5的张量作为预测值
targets = torch.randn(3, 5) # 随机生成一个3x5的张量作为真实值
print('predictions:', predictions)
print('targets:', targets)
# 计算MSELoss
loss = mse_loss(predictions, targets)
print(loss)