目录
1.2 L1 正则化 = Lasso Regression 拉索回归
1.2.1 L2正则化=Ridge Regression 岭回归
1.3 Lasso and Ridge model comparison
1. 正则化
正则化(Regularization) 是机器学习中对原始损失函数引入额外信息--引入惩罚项,以便防止过拟合和提高模型泛化性能的一类方法的统称。
图1 欠拟合和过拟合
从图中可以看出,最右边的属于一种过拟合,过拟合的问题通常发生在变量(特征)过多的时候,这种情况下训练出的方程总是能很好的拟合训练数据,也就是损失函数可能非常接近于 0 或者就为 0。 但是,这样的曲线会导致它无法泛化到新的数据样本中。
在图1中,可以看出最右边的是过拟合的,但是不想抛弃变量自带的信息,因此加上惩罚项,使得
足够小。
优化目标为:
------------原有的loss 损失函数
在优化目标的基础上,添加一些项(惩罚项),如下:
-------------------新的损失函数,新的损失函数
1 L1范数 (Manhattan distance)
L1 范数(曼哈顿距离):计算路径长度之和,即各坐标轴上的绝对距离之和。
曼哈顿距离,也称为 L1 范数,是指在一个坐标系中,从一点到另一点的路径长度之和。这种距离度量方法可以想象为在城市的街道网格上行走,因此得名曼哈顿距离。它的定义如下:
对于两个点 𝑥=(𝑥1,𝑥2,…,𝑥𝑛) 和 𝑦=(𝑦1,𝑦2,…,𝑦𝑛),它们之间的曼哈顿距离计算公式为:
假设有两个点 𝑥=(1,2)和 𝑦=(4,6),
- L1 norm = 曼哈顿距离:
- L2 norm = 欧几里得距离
1.2 L1 正则化 = Lasso Regression 拉索回归
- L1正则化:权重向量Wij中各个元素的绝对值之和
Lasso是Least Absolute Shrinkage and Selection Operator的简称,是一种采用了L1正则化(L1-regularization)的线性回归方法,采用了L1正则会使得部分学习到的特征权值为0,从而达到稀疏化和特征选择的目的。
Lasso(Least absolute shrinkage and selection operator)方法是以缩小变量集(降阶)为思想的压缩估计方法。它通过构造一个惩罚函数,可以将变量的系数进行压缩并使某些回归系数变为0,进而达到变量选择的目的。
一般来说,回归问题是一个函数拟合的过程,那么我们希望模型不要太复杂,否则很容易发生过拟合现象,所以我加入正则化项,而不同的正则化项就产生了不同的回归方法,其中以Ridge Regression(岭回归)和Lasso最为经典,前者是加入了L2正则化项,后者加入的是L1正则化项。
1.2 L2范数 (Euclidean distance)
L2 范数(欧式距离):计算直线距离,即各坐标轴上的差值的平方和的平方根
欧式距离是我们通常所指的距离度量方式,它代表两个点之间的直线距离。对于两个点 𝑥=(𝑥1,𝑥2,…,𝑥𝑛) 和 𝑦=(𝑦1,𝑦2,…,𝑦𝑛),它们之间的欧式距离计算公式为:
1.2.1 L2正则化=Ridge Regression 岭回归
- L2正则化是指权重向量W中各个元素的平方和然后再求平方根.
正则化(Regularization)是机器学习中一种常用的技术,其主要目的是控制模型复杂度,减小过拟合。--->应先看Lasso 回归Regression
最基本的正则化方法是在原目标(代价)函数 中添加惩罚项,对复杂度高的模型进行“惩罚”。其数学表达形式为:
式中X、y 为训练样本和相应标签,w为权重系数向量;J()为目标函数,即为惩罚项,可理解为模型“规模”的某种度量;参数
控制正则化强弱。不同的
函数对权重w的最优解有不同的偏好,因而会产生不同的正则化效果。最常用的
函数有两种,即
范数和
范数,相应称之为
正则化(绝对值)和
正则化(平方)。此时有:
==>NP问题:
P:算起来很快的问题
NP:算起来不一定快,但对于任何答案我们都可以快速的验证这个答案对不对
NP-hard:比所有的NP问题都难的问题
NP-complete:满足两点:
1. 是NP hard的问题
2. 是NP问题[什么是NP完全问题 https://www.jianshu.com/p/dcb0b52f4935], [什么是NP问题, 什么是NP问题_非np问题-CSDN博客]
为了达到近似效果,我们不严格要求某些权重w为0,而是要求权重w应接近于0,即尽量小。从而可用 、
范数来近似
范数,即:
1.3 Lasso and Ridge model comparison
为什么Lasso Regression可以做降维?
图2
以二维数据空间为例,说明Lasso和Ridge两种方法的差异,左图对应于Lasso方法,右图对应于Ridge方法。
如上图所示,两个图是对应于两种方法的等高线与约束域。红色的椭圆代表的是随着λ的变化所得到的残差平方和,βˆ为椭圆的中心点,为对应普通线性模型的最小二乘估计。
2. 回归问题中的损失函数
2.1 平方损失函数:MSE- L2 Loss
, Square
平方损失函数是光滑函数,能够用梯度下降法进行优化。然而,预测值距离真实值越远,平方损失的惩罚力度越大,因此,它对异常点比较敏感。为了解决该问题,可以采用绝对损失函数。
2.2 绝对值损失函数:MAE - L1 Loss
, Average
MAE相比MSE的优点:
MAE相当于在做中值回归,相比做均值回归的MSE,MAE对异常点的鲁棒性更好。(中值回归与均值回归的介绍详见“补充信息”)
MAE的不足:
1. MAE在 处无法求导数。针对这种情况,平衡MSE的可导性和MAE的鲁棒性,可以采用Huber损失函数(在第3部分介绍)。
2. MAE更新的梯度始终相同,那么在接近最优值处可能仍维持着较大的梯度而错过最优值。
针对这种情况,可以使用变化的学习率,在接近最优值时降低学习率。
而MSE在这种情况下表现较好,即使使用固定的的学习率也可以有效收敛。MSE损失的梯度随损失增大而增大,在损失趋于0时则减小,这使得在训练结束时,MSE模型的结果往往会更精确。
那么什么时候用MSE,什么时候用MAE呢?
MSE:如果异常点代表在商业中很重要的异常情况,并且需要被检测出来,则应选用MSE损失函数。
MAE:相反,如果只把异常值当作受损数据,则应选用MAE损失函数。
总而言之,处理异常点时,MAE更稳定,但它的导数不连续,因此求解效率较低。MSE对异常点更敏感,但通过令其导数为0,可以得到更稳定的封闭解。
MSE与MAE都不能很好解决的问题:
二者兼有的问题是:在某些情况下,上述两种损失函数都不能满足需求。例如,若数据中90%的样本对应的目标值为150,剩下10%在0到30之间。
那么使用MAE作为损失函数的模型可能会忽视10%的异常点,而对所有样本的预测值都为150。 这是因为模型会按中位数来预测。
而使用MSE的模型则会给出很多介于0到30的预测值,因为模型会向异常点偏移。均值回归
上述两种结果在许多商业场景中都是不可取的。
这些情况下应该怎么办呢?最简单的办法是对目标变量进行变换。
而另一种办法则是换一个损失函数,这就引出了下面要讲的第三种损失函数,即Huber损失函数。
补充信息:
1. 中值回归就是我们优化的目标是使目标值趋于样本点值的中位数,直观理解就是大于 与 小于 目标值的样本点数尽量相等。
2. 均值回归的目标则是使目标值趋于样本点值的均值。
3. 为什么MSE是均值回归,而MAE是中值回归呢?
我在StackExchange找到一条很好的解释。
2.3 Huber损失函数
Huber损失函数在|y - f(x)|较小时为平方损失,在 |y - f(x)| 较大时为线性损失。并且处处可导。
这里超参数δ的选择非常重要,因为这决定了你对与异常点的定义。当残差大于δ,应当采用L1(对较大的异常值不那么敏感)来最小化,而残差小于超参数,则用L2来最小化。
由上图可知,超参数δ 越大,对异常点越敏感,因为δ 越大,huber损失函数接近于MSE。
为什么使用Huber?
在离最优值较远时,即|y - f(x)|较大时,Huber损失相当于MAE,对异常点有更好的鲁棒性;
当离最优值较近时,即|y - f(x)|较小时,Huber损失相当于MSE,随着损失的减小梯度也在逐渐减小,可以更好的逼近最优值,可以避免MAE中始终维持大梯度而错过最优值的问题。
使用MAE训练神经网络最大的一个问题就是不变的大梯度,这可能导致在使用梯度下降快要结束时,错过了最小点。
而对于MSE,梯度会随着损失的减小而减小,使结果更加精确。
在这种情况下,Huber损失就非常有用。它会由于梯度的减小而落在最小值附近。比起MSE,它对异常点更加鲁棒。因此,Huber损失结合了MSE和MAE的优点。但是,Huber损失的问题是我们可能需要不断调整超参数delta。