前言:正则化其实是基于代价函数来说的一个概念,主要用于处理过拟合等问题。
吴恩达机器学习笔记(七):代价函数
Regularized linear regression
如前言所述,正则化为了让模型更好地切合数据,同时降低过拟合的可能。
具体形式如下,在常规的J(θ)代价函数的后面增加一部分: λ倍∑j到n的θj^2,此举会用来限制参数的大小,,因为在梯度更新时,有一个2λθ的项。而往往我们将 λ设置的较大,所以θ必须足够小才能完成梯度的更新,这样做便能防止过拟合问阿提。
正则化线性回归的Gradient decent
原来的梯度下降:
正则化后:
在后方插入的λ/(2m) * θ^2 求导后变成了下图中的λ/m * θ
再进一步化简:
1 - α*λ/m<1
但是这个值几乎是靠近与1的,可以看做是0.99.
所以需要一个非常小的θ,这样做是因为在训练的时候,有时候数据特别少特征量却又很多,训练时某些参数受个别样本影响变得特变大,对模型整体影响也就放大,但是又没有足够的多的数据去优化它,所以就出现了过拟合,我们把所有的参数θ的值都放小,是他们尽可能平均亦或者说势均力敌地去决定模型,从而避免过拟合情况。
解决最小二乘法直接求θ时可能矩阵不可逆的情况
样本数量m小于特征量n,此时矩阵X^T*X不可逆
但是如果加上一个λ倍的对角矩阵,变转成了一个可逆矩阵(数学上可证明,我还没去推导,所以这里不展开细说)。
正则化处理Logistic Regression
同样的,在代价函数后面加上一部分对θ做限制的求和多项式。
这里看上去和LInear regression十分相似,但是要记住,因为两者的hypothesis function都是不同的,所以其间不存在什么直接的联系
这里提供一个效率更佳的优化方法;
这是直接call Octave里面的内置函数,直接返回相应的gradient和J(θ)。
具体还是要到Octave里去实践,这里不做过多赘述。
2022.3.6