- 损失函数:度量模型的预测结果与真实值之间的差异;通过最小化 loss-> 最大化模型表现
- 代码实现框架:设有 模型预测值 f (x), 真实值y- 方法一: 步骤 1. criterion = torch.nn.某个Loss();步骤 2.loss = criterion(f(x), y)
- 方法二:直接采用 F.某个_loss(f(x), y)
 
- 方法一: 步骤 1. 
回归损失(Regression Loss):希望预测值和真实值接近,即 f(x) = y
- 【torch.nn.L1Loss()】平均绝对值误差MAE(Mean Abs Error): f (x) 和 y 之间差的绝对值的平均值- 具体数学计算公式: Loss = 1 n ∑ i = 0 n ∣ f ( x i ) − y i ∣ \text{Loss}=\frac{1}{n}\sum^n_{i=0} |f(x_i)-y_i| Loss=n1∑i=0n∣f(xi)−yi∣
- 注:L1 损失, 主要用于回归问题和简单的模型,所以很少使用
 
- 【torch.nn.MSELoss()】平均平方误差MSE(Mean Squared Error): f (x) 和 y 之间差的平方的平均值- 具体数学计算公式:  Loss = 1 n ∑ i = 0 n ( f ( x i ) − y i ) 2 \text{Loss}=\frac{1}{n}\sum^n_{i=0} (f(x_i)-y_i)^2 Loss=n1∑i=0n(f(xi)−yi)2: F.mse_loss(f(x), y)
- 注:L2 损失, 很常用
 
- 具体数学计算公式:  Loss = 1 n ∑ i = 0 n ( f ( x i ) − y i ) 2 \text{Loss}=\frac{1}{n}\sum^n_{i=0} (f(x_i)-y_i)^2 Loss=n1∑i=0n(f(xi)−yi)2: 
分类损失(Classification Loss):希望分类准确率高等
- 【torch.nn.CrossEntropyLoss()】分类交叉熵损失CEL(Cross Entropy Loss): 和 KL divergence (衡量两个分布的相似度) 有关- 具体数学计算公式:  − ∑ y i j log  ( f ( x i ) j ) -\sum y_{ij}\log(f(x_i)_j) −∑yijlog(f(xi)j), 注意其中  f ( x i ) f(x_i) f(xi)  表示模型预测出的概率值如 [0.1, 0.7, 0.2]: F.cross_entropy(直接传入 logits (已打包了 softmax))
- 通常和 softmax(soft version of max S ( y i ) = e y i ∑ e y i S(y_i) = \frac{e^{y_i}}{\sum e^{y_i}} S(yi)=∑eyieyi:F.softmax(y)) 搭配使用 (softmax 负责产生上述概率输出)
- logistic regression (按sigmoid输出的概率大小分类) 已被 classification 代替
 
- 具体数学计算公式:  − ∑ y i j log  ( f ( x i ) j ) -\sum y_{ij}\log(f(x_i)_j) −∑yijlog(f(xi)j), 注意其中  f ( x i ) f(x_i) f(xi)  表示模型预测出的概率值如 [0.1, 0.7, 0.2]: 
- B站视频参考资料
- 详细博客参考资料