机器学习损失函数
损失函数旨在表示出logit和label的差异程度,不同的损失函数有不同的表示意义,也就是在最小化损失函数过程中,logit逼近label的方式不同,得到的结果可能也不同。
损失函数(loss function)是用来估量模型的预测值$f(x)$与真实值$Y$的不一致程度,它是一个非负实值函数,通常使用$L(Y, f(x))$来表示,损失函数越小,模型的鲁棒性就越好。损失函数是经验风险函数的核心部分,也是结构风险函数重要组成部分。模型的结构风险函数包括了经验风险项和正则项,通常可以表示成如下式子:
$$
\theta^*=arg min_{\theta}{\frac{1}{N}\sum_{i=1}^{N}L(y_i,f(x_i,\theta))+\lambda\Phi(\theta)}
$$
分类损失
Entropy
Cross Entropy
K-L Divergence
Dice Loss
Focal Loss
Tversky Loss
回归损失
L1 Loss (Mean Absolute Error MAE)
它衡量的是预测值与真实值之间距离的平均误差幅度,作用范围为0到正无穷。
$$
L = \sum_{i=1}^{n}{|Y_i - f(x_i)|}
$$
优点: 收敛速度快,能够对梯度给予合适的惩罚权重,而不是“一视同仁”,使梯度更新的方向可以更加精确。
缺点: 对异常值十分敏感,梯度更新的方向很容易受离群点所主导,不具备鲁棒性。
L2 Loss(Mean Squred Error MSE)
它衡量的是预测值与真实1值之间距离的平方和,作用范围同为0到正无穷。
$$
L=\sum_{i=1}^{n}{(Y_i-f(x_i))^2}
$$
均方误差可用于线性回归的一个原因是:我们假设观测中包含噪声,其中噪声服从正态分布:
$$
y= \boldsymbol{w}^T \boldsymbol{x} + b +\epsilon
$$
其中, $\epsilon ~ N(0,\sigma^2)$。
通过给定的$\boldsymbol{x}$观测到特定$y$的似然(likelihood):
$$
P(y|\boldsymbol{x})=\frac{1}{\sqrt{2\pi\sigma^2}}exp\left( -\frac{1}{2\sigma^2}(y-\boldsymbol{w}^T \boldsymbol{x} - b)^2 \right)
$$
根据最大似然估计法,参数$\boldsymbol{w}$和$b$的最优值是使整个数据集的似然最大的值:
$$
P(\boldsymbol{y}|\boldsymbol{X})=\prod_{i=1}^{n}p(y^{(i)}|\boldsymbol{x}^{(i)})
$$
最小化负对数似然函数有:
$$
-log(P(\boldsymbol{y}|\boldsymbol{X}))=\sum_{i=1}^{n}\frac{1}{2}log(2\pi\sigma^2) + \frac{1}{2\sigma^2}\left(y^{(i)}-\boldsymbol{w}^T\boldsymbol{x}^{i}-b \right)^2
$$
而$\sigma$是某个固定的常数,于是上述公式第二部分与均方差误差一致。因此,在高斯噪声的假设下,最小化均方差等价于对线性模型的极大似然估计。
Smooth L1 Loss
IoU Loss
GloU Loss
DloU Loss
CloU Loss
F-EIoU Loss
CDloU Loss
LogLoss对数损失函数
log损失函数的标准形式
$$
L(Y,P(Y|X)) = - logP(Y|X)
$$
损失函数$L(Y, P(Y|X))$表达的是样本$X$在分类$Y$的情况下,使概率$P(Y|X)$达到最大值(换言之,就是利用已知的样本分布,找到最有可能(即最大概率)导致这种分布的参数值;或者说什么样的参数才能使我们观测到目前这组数据的概率最大。
取对数是为了方便计算极大似然估计,因为在MLE(最大似然估计)中,直接求导比较困难,所以通常都是先取对数再求导找极值点。
todo:
$$
max(L) --> min(-L)
$$
各种损失函数的适用场景