量化百科

损失函数——MSE

由ypyu创建,最终由ypyu 被浏览 19 用户

本来主要介绍机器学习中常见的损失函数MSE的定义以及它的求导特性。


数理统计中均方误差是指参数估计值与参数值之差平方的期望值,记为MSE。MSE是衡量“平均误差”的一种较方便的方法,MSE可以评价数据的变化程度,MSE的值越小,说明预测模型描述实验数据具有更好的精确度。

SSE(和方差)

在统计学中,该参数计算的是拟合数据和原始对应点的误差的平方和,计算公式为:

SSE =sum{i=1}^mwi(yi-hat{yi})^2

其中 y_i 是真实数据, hat{y_i} 是拟合的数据, w_i>0 ,从这里可以看出SSE接近于0,说明模型选择和拟合更好,数据预测也越成功。

MSE(均方方差)

该统计参数是预测数据和原始数据对应点误差的平方和的均值,也就是 frac{SSE}{n} ,和SSE没有太大的区别,计算公式为:

MSE=frac{SSE}{n}=frac{1}{n}sum{i=1}^mwi(yi-hat{yi})^2

其中,n为样本的个数。

RMSE

该统计参数,也叫回归系统的拟合标准差,是MSE的平方根,计算公式为:

RMSE=sqrt{MSE}=sqrt{frac{SSE}{n}}=sqrt{frac{1}{n}sum{i=1}^mwi(yi-hat{yi})^2}

Mean-Squared Loss的概率解释

假设我们的模型是二维平面的线性回归模型: h_{theta}(x_i)=theta_0+theta_1x ,对于这个模型,我们定义损失函数为MSE,将得到如下的表达式:

J = frac{1}{N}sum_{i=1}^N(yi-h_{theta}(x_i))^2

下面我们试着通过概率的角度,推导出上述的MSE损失函数表达式。

在线性回归模型中,我们最终希望对于输入 X 进行线性组合得到值Y,考虑到输入带有噪声的情况的表达式如下:

Y=theta_0+theta_1x+eta

为了使模型更合理,我们假设 eta 服从均值为0,方差为1的高斯分布,即 etasim N(0,1) 。所以有:

EY=Etheta_0+theta_1x+eta=theta_0+theta_1x

VarY=Vartheta_0+theta_1x+eta=1

所以,Y服从均值为 theta_0+theta_1x ,方差为1的高斯分布,则样本点$(x_i,y_i)$的概率为:

p(y_i|x_i)=e^{-frac{(yi-(theta_0+theta_1x_i))^2}{2}}

有了单个样本的概率,我们就可以计算样本集的似然概率,我们假设每个样本是独立的:

L(x,y)=prod_{i=1}^Ne^{-frac{(y_i-(theta_0+theta_1x_i))^2}{2}}

对似然函数取对数,得到对数似然函数:

l(x,y)=-frac{1}{2}sum_{i=1}^N(y_i-(theta_0+theta_1x_i))^2

这个对数似然函数的形式和我们的MSE损失函数的定义是一样的。所以,使用MSE损失函数意味着,我们假设我们的模型是对噪声的输入做估计,该噪声服从高斯分布。

损失函数效果

缺点

使用MSE的一个缺点就是其偏导值在输出概率值接近0或者接近1的时候非常小,这可能会造成模型刚开始训练时,偏导值几乎消失。

假设我们的MSE损失函数为: J = frac{1}{2}(y_i - hat{y_i})^2 ,偏导为: frac{dJ}{dW} = (y_i - hat{y_i})sigma'(Wx_i + b)x_i ,其中 sigma'(Wx_i + b) sigma(Wx_i + b)(1 - sigma(Wx_i + b)) 。可以看出来,在 sigma(Wx_i + b) 值接近0或者1的时候, frac{dJ}{dW} 的值都会接近于0,其函数图像如下:

这导致模型在一开始学习的时候速率非常慢,而使用交叉熵作为损失函数则不会导致这样的情况发生。

参考

[1]. Picking Loss Functions - A comparison between MSE, Cross Entropy, and Hinge Loss

标签

损失函数函数