目录
零、简介
机器学习监督算法的基本思路是 让拟合的模型尽量接近真实数据, 换句更通俗的话, 要让我们的模型尽量简单又能很好的反应已知数据之间关系。但是,如果模型参数过多,模型过于复杂,容易造成过拟合(overfit)。即模型在训练样本数据上表现的很好,但在实际测试样本上表现的较差,不具备良好的泛化能力。为了避免过拟合,最常用的一种方法是使用使用正则化,例如 L1 和 L2 正则化。
一、数学基础
1. 范数
范数是衡量某个向量空间(或矩阵)中的每个向量以长度或大小。范数的一般化定义:对实数p>=1, 范数定义如下:
当p=1时,为L1范数,表示某个向量中所有元素的绝对值的和。
当p=2时,为L2范数,表示某个向量中所有元素的平方和再开平方根,即欧式距离。
特别说一下L0范数
L0范数表示某个向量中非0元素的个数。
2.拉普拉斯分布
如果随机变量的概率密度函数分布为:
那么它就是拉普拉斯分布。其中,μ 是数学期望,b > 0 是振幅。如果 μ = 0,那么,正半部分恰好是尺度为 1/2 的指数分布。
3.高斯分布
又叫正态分布,若随机变量X服从一个数学期望为μ、标准方差为σ2的高斯分布,记为:
X∼N(μ,σ2),
则其概率密度函数为:
其概率密度函数为正态分布的期望值μ决定了其位置,其标准差σ决定了分布的幅度。当μ = 0,σ = 1时的正态分布是标准正态分布。
二、正则化的理论基础
1.基于约束条件的最优化
开篇已经说了,为了使模型的复杂度降低,我们要限制模型中参数的个数,换句话说就是减少模型的权重向量(ω)中非零元素的个数,防止过拟合。那么最小化目标函数可以写为下面的带约束形式:
约束条件为L0范数,这就不好办了,让哪些元素为零,我们很难给出一个有效的策略,为了解决这个问题,将约束条件‘放松’一下,换为L1或L2范数,虽然不能保证某些元素为0,但可以使得某些元素接近0,那么最小化目标函数可以写为下面的带约束形式:
或者
可能有人要问,为什么L1和L2范数可以使得某些权重向量中的元素很小,我们可以这样理解,无论是L1范数,还是L2范数,它们都是将元素的范围约束到以原点为中心的一个封闭区域内。当某一个维度很大时,就会出现另外一个维度变得很小,比如轴上的点。还有一种情况就是都比较小。
2.最大后验概率估计
在最大似然估计中,是假设权重 是未知的参数,从而求得对数似然函数:
通过假设 的不同概率分布,即可得到不同的模型。例如若假设 的高斯分布,则有:
式中 为常数项,由于常数项和系数项不影响 的解,因而可令 即可得到线性回归的代价函数。
在最大后验概率估计中,则将权重 看作随机变量,也具有某种分布,从而有:
同样取对数有:
可以看出后验概率函数为在似然函数的基础上增加了一项 。 的意义是对权重系数 的概率分布的先验假设,在收集到训练样本 后,则可根据 在 下的后验概率对 进行修正,从而做出对 更好地估计。
若假设 的先验分布为0均值的高斯分布,即 ,则有:
可以看到,在高斯分布下 的效果等价于在代价函数中增加 正则项。
若假设 服从均值为0、参数为 的拉普拉斯分布,即:
则有:
可以看到,在拉普拉斯分布下 的效果等价于在代价函数中增加 正则项。
故此,我们得到对于 、 正则化的第二种理解:
- 正则化可通过假设权重 的先验分布为拉普拉斯分布,由最大后验概率估计导出;
- 正则化可通过假设权重 的先验分布为高斯分布,由最大后验概率估计导出。
三、正则化的直观理解
1.L1正则化和特征选择
前文提到,加了L1正则化的损失函数先当于在原损失函数的基础上加上了一个约束条件,那么使用等值线法求解这个问题,如下图,黑色矩形框表示约束的区域,彩色的线是损失函数的等值线,彩色的等值线首次与矩形框区域相交的点就是我们要求的解。很明显,损失函数的等值线与正则项的约束区域的突出的角有很大的几率率先相交(二维的有4个角,高维的角有更多),而在这些角上,很多特征向量的元素都是0,这就是为什么L1正则化可以产生稀疏模型,进而可以用于特征选择。
同样的道理,我们考虑L2正则化,正则项的约束区域不存在这样的角,从而也就没有了使得元素高概率为0的能力,也就是说L2正则项不具备特征选择的能力。
2.L2正则化和过拟合
拟合过程中通常都倾向于让权值尽可能小,最后构造一个所有参数都比较小的模型。因为一般认为参数值小的模型比较简单,能适应不同的数据集,也在一定程度上避免了过拟合现象。可以设想一下对于一个线性回归方程,若参数很大,那么只要数据偏移一点点,就会对结果造成很大的影响;但如果参数足够小,数据偏移得多一点也不会对结果造成什么影响。
我们考虑梯度下降法求损失函数的最优解,相比加入L2正则项前,我们得到的导函数多了一项(权重向量的比例函数)。
多了这么一项
那我们在更新权重的时候,就会每次都多减去一部分,使得权重变小。这样就可以防止过拟合。
3.正则化参数λ
正则化是结构风险最小化的一种策略实现,能够有效降低过拟合。损失函数实际上包含了两个方面:一个是训练样本误差。一个是正则化项。其中,参数 λ 起到了权衡的作用。
以 L2 为例,若 λ 很小,对应上文中的 C 值就很大。这时候,圆形区域很大,能够让 w 更接近 Ein 最优解的位置。若 λ 近似为 0,相当于圆形区域覆盖了最优解位置,这时候,正则化失效,容易造成过拟合。相反,若 λ 很大,对应上文中的 C 值就很小。这时候,圆形区域很小,w 离 Ein 最优解的位置较远。w 被限制在一个很小的区域内变化,w 普遍较小且接近 0,起到了正则化的效果。但是,λ 过大容易造成欠拟合。欠拟合和过拟合是两种对立的状态。
参考
https://blog.csdn.net/jinping_shi/article/details/52433975
https://blog.csdn.net/red_stone1/article/details/80755144