机器学习--正则化与过拟合
给出过拟合的原因以及解决措施,从贝叶斯以及代数角度来解释正则化能够降低过拟合
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