机器学习笔记(七) 正则化
1.过拟合问题
先看一个回归的例子:
第一张图,是一个线性模型,欠拟合(underfit),不能很好的适应训练集;
第二张图,拟合的很合适。
第三张图,四次模型,过度拟合。虽然可以很好的适应训练集,在添加一个新变量后,预测效果可能不太好。
同理,再看一个分类的例子:
和上面的例子相同,第一张图出现欠拟合的问题,第三张图则过度拟合。只有中间的图比较合适。
根据上面的例子,我们能明白什么是过拟合,对于很多的特征,我们可以学习到的假设可以很好的拟合,但新添加一个特征后,预测效果不是特别好,泛化能力很差。
那么怎么解决过拟合的问题?过拟合的产生一般是由于自身的特征太多,所以我们想避免可以有两种方式。一是丢弃一些不能帮助我们正确预测的特征,可以手动也可以使用一些算法。二是归一化,保留所有的特征,但是降低参数的值。
2.归一化代价函数
依然是房价预测的例子,首先合适的拟合:
过拟合:
根据上述两图,我们想解决过拟合问题,就要解决x^3和x^4的影响,对θ3和θ4进行惩罚,让其变小。一个简单的方法就是在原有的代价函数上增加两个惩罚项。
这样代价函数选择出来的θ3和θ4对预测结果的影响会比之前小许多。
特征如果过多的话,我们就不知道对哪个特征项进行惩罚,所以对所有的特征进行惩罚,代价函数如下图所示:
λ被称为归一化参数,这里注意,我们不对θ0进行惩罚。
经过归一化处理的模型和原模型的对比:
3.线性回归的正则化
归一化线性回归代价函数:
用梯度下降算法对代价函数进行最小化。
这里对参数θ,梯度下降算法需要分辨θ0和其它θ值。
第二个式子可以更新:
(1-α*λ/m)<1,所以每次在算法更新规则的基础上令θ值减少一个额外值。
用正规方程求解线性回归模型,假设:
这里X是m*(n+1)维矩阵,有m个样本,每个样本有n+1个特征。y是一个(m+1)*1的向量, 表示训练样本的标签。
正规化后的线性回归的正规方程的公式:
假设样本数m小于特征数x,若没有正规化,线性回归正规方程如下:
如果XTX不可逆,之前的方法是删掉一些冗余特征,但是线性回归正规化后,λ>0时,之前公式依然有效。
(括号中的矩阵是可逆的)
4.逻辑回归的正则化
与线性回归相似,逻辑回归的代价函数也需要添加惩罚项,梯度下降算法也需要区别对待参数θ。
代价函数:
梯度下降算法:
公式看上去和线性回归一样,但是由于hθ(x)不同,所以与线性回归还是有区别的。