对码当歌,猿生几何?

机器学习算法--正则化与过拟合

给出过拟合的原因以及解决措施,从贝叶斯以及代数角度来解释正则化能够降低过拟合

1.过拟合产生的原因:

在训练过程中,由于样本数量有限,模型学习能力过强,导致模型泛化性能不高。

第一种方式利用一次函数来模拟,则该函数没有很好的拟合所有点,出现高方差的现象,称为欠拟合

第三种方式,增加函数的次数,该函数拟合了所有点,但是函数泛化能力不强,出现高偏差,即过拟合。

过拟合出现的原因:

1.训练数据过少,数据量与数据噪声是成反比的,少量数据导致噪声很大

2.特征数目过多导致模型过于复杂

当特征数量过多,导致模型过于复杂,能够很好的拟合所有样本点,然而同时导致模型泛化能力不够,因此产生了过拟合。

2.过拟合的解决方法

1) 控制特征的数目,可以通过特征组合,或者模型选择算法

2)正则化 Regularization,保持所有特征,但是减小每个特征的参数向量θ的大小,使其对分类y所做的共享很小

3.理论准备

1.向量范数:

L0范数:度量向量中非零元素的个数

L1范数:表示非零元素的绝对值之和  曼哈顿距离

L2范数:欧式距离

L无穷范数:度量向量中元素绝对值的最大值

2.拉普拉斯分布

        

3.高斯分布

                         

4.贝叶斯解释正则化

       从贝叶斯的角度来分析, 正则化是为模型参数估计增加一个先验知识,先验知识会引导损失函数最小值过程朝着约束方向迭代。整个最优化问题可以看做是一个最大后验估计,其中正则化项对应后验估计中的先验信息,损失函数对应后验估计中的似然函数,两者的乘积即对应贝叶斯最大后验估计。

从最大后验估计推导最小二乘:

线性模型如下:

假设误差服从高斯分布:

由最大似然函数:

取对数:

即:

假设误差服从高斯分布,从最大后验估计角度出发,导出的最小方差函数,此时并没有对于参数W引入任何先验分布。此时当样本数很少而特征数很多时,会导致函数拟合过于复杂从而能导致过拟合。

对于参数w引入高斯先验:

取对数:

即:

相当于加入了L2正则化,给影响大的特征赋予高的权重。

对于参数w引入拉普拉斯先验:

化简有:

相当于加入了L1正则化,产生稀疏解,即W中分量出现大量0。

综合起来,假设w服从以下先验分布:

化简有:

正则化参数等价于对参数引入 先验分布,使得 模型复杂度 变小(缩小解空间),对于噪声以及 outliers 的鲁棒性增强(泛化能力)。整个最优化问题从贝叶斯观点来看是一种贝叶斯最大后验估计,其中 正则化项 对应后验估计中的 先验信息,损失函数对应后验估计中的似然函数,两者的乘积即对应贝叶斯最大后验估计的形式。

5.代数角度解析正则化

由之前可知,要优化的目标是均值方差最小,即

从代数角度讲,方差最小,即函数hx过所有样本点即可,

这样会导致函数复杂度增高,函数波动较大,即函数导数变化剧烈,由于样本值x一定,因此导数变化很大是由于参数过大引起的,即参数3,4过大引起的。

当引入正则项时有:

当控制变量参数兰姆达很大时,若想求J()最小值,则会减小权重参数的值,趋近于零。从而会减小函数导数值,会使函数曲线趋向于光滑,从而缓解过拟合的问题。

 

参考链接:

http://www.cnblogs.com/ooon/p/4964441.html

https://blog.csdn.net/maxiao1204/article/details/70245662

https://www.jianshu.com/p/a47c46153326

https://www.zhihu.com/question/23536142