在深度学习任务中,根据loss的设计可以简单的分为线性回归、逻辑回归和softmax回归。
一、线性回归loss
其中线性回归是指拟合一个线性函数,通常用mse、mae来评价模型的拟合效果,此外mse、mae还可以作为loss训练模型。需要格外注意的是loss值的大小毫无意义,只有梯度值才是决定模型学习的方向。只是,一般情况下loss与梯度呈现正相关,loss大,则梯度也大。在线性回归中,y_pred的shape与y_true是一模一样的。需要注意pytorch的系统函数中在线性回归中对label的的数值类型没有限制。
1.1 mse的使用
当用mse为评价指标时,才用考虑异常值取平方的影响。做loss时,其导数是2*w,对于梯度的影响并没有像loss那样离谱。
梯度大的时候对异常值敏感,(1000-100)=900mse loss=(1000-10)^2=8100
mse loss下梯度值为 2*1000-2*10=1980,可以看出离群点影响大【可以检出异常值,低漏检高误检】,或许会导致梯度爆炸
当离群点是本身就存在异常数据,是可取的(过度关注异常点数据)
梯度值大于x的本身值,容易梯度下降过程中导致震荡(需要吧学习率调小)
import torch
from torch import nn
torch.manual_seed(50) #随机种子确保每次input tensor值是一样的
preds = torch.randn((4,), dtype=torc