作者:董文辉
本文长度为4500字,建议阅读10+分钟
本文为你总结常见损失函数和评价指标。
注:本文采用markdown进行编写,用markdown打开可得更佳展示效果~
## 1. 损失函数:
### 1.1 回归问题:
#### 1. 平方损失函数(最小二乘法):
$$L(Y,f(x)) = \sum_{i=1}^n(Y-f(X))^2$$
回归问题中常用的损失函数,在线性回归中,可以通过极大似然估计(MLE)推导。计算的是预测值与真实值之间距离的平方和。实际更常用的是**均方误差(MSE)**:
$$L(Y,f(x)) = \frac{1}{m}\sum_{i=1}^n(Y-f(X))^2$$
#### 2 平均绝对值误差(L1)-- MAE:
$$L(Y,f(x)) = \sum_{i=1}^n|Y-f(X)|$$
MAE是目标值和预测值之差的**绝对值之和**,可以用来衡量预测值和真实值的距离。**但是它不能给出,模型的预测值是比真实值小还是大。**
#### 3 MAE(L1) VS MSE(L2):
* **MSE计算简便,但MAE对异常点有更好的鲁棒性:**
当数据中存在异常点时,用RMSE计算损失的模型会以牺牲了其他样本的误差为代价,朝着减小异常点误差的方向更新。然而这就会降低模型的整体性能。
>直观上可以这样理解:如果我们最小化MSE来对所有的样本点只给出一个预测值,那么这个值一定是所有目标值的平均值。但如果是最小化MAE,那么这个值,则会是所有样本点目标值的中位数。众所周知,对异常值而言,中位数比均值更加鲁棒,因此MAE对于异常值也比MSE更稳定。
* **NN中MAE更新梯度始终相同,而MSE则不同**:
MSE损失的梯度随损失增大而增大,而损失趋于0时则会减小。
* **Loss选择建议:**
* **MSE:** 如果异常点代表在商业中很重要的异常情况,并且需要被检测出来。
* **MAE:** 如果只把异常值当作受损数据。
#### 4. Huber损失:
$$
L_{\delta}(y, f(x))=\left\{\begin{array}{ll}{\frac{1}{2}(y-f(x))^{2}} & {\text { for }|y-f(x)| \leq \delta} \\ {\delta|y-f(x)|-\frac{1}{2} \delta^{2}} & {\text { otherwise }}\end{array}\right.
$$
Huber损失是绝对误差,只是在误差很小时,就变为平方误差。当Huber损失在$[0-\delta,0+\delta]$之间时,等价为MSE,而在$[-∞,\delta]$和$[\delta,+∞]$时为MAE。
### 1.2 分类问题:
#### 1. LogLoss:
$$
J(\theta)=-\frac{1}{m} \sum_{i=1}^{m}\left[y^{(i)} \log h_{\theta}\left(x^{(i)}\right)+\left(1-y^{(i)}\right) \log \left(1-h_{\theta}\left(x^{(i)}\right)\right)\right]
$$
**