《Machine Learning》第四讲 正则化(regularization)

1.过拟合问题(overfitting)

《Machine Learning》第四讲 正则化(regularization)
       过拟合问题出现的原因是,我们在进行线性回归时,选取的特征值过多,而训练样本较少时,最终所得出的代价函数J(θ) 会越来越小,甚至出现近似于0的情况。代价为0不见得是一件好事,这样训练出来的模型只是能良好的拟合训练样本数据,而我们进行线性回归的目的是预测,我们需要得到的是一个泛化能力强的模型,图中从左至右依次是欠拟合、拟合、过拟合的情况。
       上述例子,是通过一个多项式的例子,来让我们直观地感受如何解决过拟合问题,我们不难发现到,θ3,θ4所对应的特征量,影响了我们的预测模型,我们希望这两个值越小越好,甚至接近于0,从而达到中间的模型。那我们可以推广到一般情况(x1, x2 , x3 , … , xn),我们要做的就是让那些无关紧要的特征量所对应的参数θ尽可能的小。


《Machine Learning》第四讲 正则化(regularization)

       如上图所示,逻辑回归也会出现类似的过拟合问题,分析思路和线性回归类似,此处不再赘述。


       在上面简单提到,为了解决过拟合问题,我们需要调整特征量前面的参数,下面给出了两种解决方案,一个是直接减少特征量的数目(人工决策或模型选择算法),一个是用到正则化方法。
《Machine Learning》第四讲 正则化(regularization)


**2017-11-14补充:**
《Machine Learning》第四讲 正则化(regularization)

       如图所示,假设A,B是得到的两个不同的模型,即两组不同的参数集 θ,但是两个模型的召回率都是90%。A中的θ分布是浮动较大的,中间的直线假设为 0,B的θ分布是比较均匀的,我们认为B的模型泛化能力是优于A的,因此我们在原有的cost/loss 基础上加入正则项,其中有两种形式,L1是 |θ|(θ的绝对值),L2是 1/2 *θ^2(二分之一θ的平方),实际计算中在L1、L2之前加上 λ,作为惩罚力度


2. Cost function in Linear Regression

《Machine Learning》第四讲 正则化(regularization)

       在上文中已经提到可以用正则化方法来解决过拟合问题,上图给出了具体的解决思路,我们得到图中底部的关于J(θ)定义的公式。下面来进行分析。
       我们有一个共识,那就是“简单的,平滑的曲线,就是我们所寻找的适合的函数模型h(x)。”基于这个共识,我们可以推测要尽可能的使列向量θ各个维度的值变小。因此,我们在线性回归代价函数J(θ)的定义式中加上一项 《Machine Learning》第四讲 正则化(regularization),用这一项来约束θ的值,使其尽可能小。


《Machine Learning》第四讲 正则化(regularization)

       上图给出了,正则化的实现思路,我们可以将表达式拆成两个部分,第一部分是线性回归的代价函数,这个值越低,所得到的θ就越拟合数据,第二部分就是正则化项,λ 称作正则化参数,我们希望正则化项尽可能小,从而生成的函数模型也就越简单,曲线越平滑。
       我们不妨认为这个表达式中的两项代表着两个不同的目标,第一个的目标是尽可能地拟合数据,第二个的目标是让θ尽可能地小。那我们不难发现,λ 实际的作用是调节两个目标的平衡关系,即一个合适的 λ 能够让最终的模型又拟合数据,且 θ 值也比较小。

3.正则化求解

3.1梯度下降法
《Machine Learning》第四讲 正则化(regularization)
       梯度下降的常规思路是,J(θ)对θi (i = 0 ,1 , 2 ,…, n)逐个求偏导,我们刚才提到的正则化项是从 i = 1开始的,故这里θ的下降过程分 i = 0 和 i = 1 , 2 , 3 , … , n 两种情况讨论。i = 0 时,θ0的偏导数没有正则项,形式和之前线性回归一样; i = 1 , 2 , 3 , … , n时,偏导项多了一个对《Machine Learning》第四讲 正则化(regularization)求偏导,不难得到偏导数为 2 λ* θj ,最终式子可以合并成底部的形式。


接下来重点对比梯度下降的θj的更新式进行分析:
       常规的线性回归梯度下降:
《Machine Learning》第四讲 正则化(regularization)
       正则化的梯度下降:
《Machine Learning》第四讲 正则化(regularization)
       不难发现,二个式子除了θj的系数不一样以外,后面的一项都是一样的。接下来我们分析一下θj的系数《Machine Learning》第四讲 正则化(regularization) 。 α > 0 , λ > 0 ,m > 0 显然这个因式是一个正值,所以1减去这个式子的值是小于1的。
       而事实上这整个式子的值是接近于1的,不妨假设为0.99,所以我们不妨理解正则化的θj的更新操作实际上是将θj稍微缩小一点的梯度下降算法。这也是这个算法的目的,即得到一个拟合训练数据的模型,并且减小θj的值,避免出现过拟合的问题。

3.2正规方程法
《Machine Learning》第四讲 正则化(regularization)
       计算方法和之前一样,首先要注意的是X 矩阵是如何组成的,X的每一个行向量是由一个列向量样本数据x转置得到,同样是通过矩阵的方法直接计算出θ的值,只是这个表达式加上了正则项,λ 乘上一个(n+1)维的方阵,注意其中 1 的数量是n。

4. Cost function in Logistic Regression

《Machine Learning》第四讲 正则化(regularization)
       正则化后的逻辑回归的代价函数的表达式,跟前面分析的线性回归一样,在后面加上一项 《Machine Learning》第四讲 正则化(regularization),通过这个正则项来尽可能地减小θ的取值,λ也是起到一个平衡拟合数据与减小θ向量的目的。


       下图给出实现梯度下降的流程,注意所得到的θj的更新规则,看起来和线性回归正则化的更新规则一致,但二者是不同的,再次记住,逻辑回归中,用到的《Machine Learning》第四讲 正则化(regularization)是一个sigmoid函数,函数图像是一个S型曲线,是非线性的。
《Machine Learning》第四讲 正则化(regularization)


       总结:学完这一章不难发现,正则化的思路,其实就是增加了一个正则化项,至于这个正则项表达式为什么是这样,在之后的学习中探究。无论是线性回归还是逻辑回归,我们都是在原本的代价函数表达式中增加了一个 正则化项,然后通过设置正则化参数λ来平衡我们既希望 h(x) 能够很好的拟合训练数据又希望尽量减小一些无关紧要的特征量的权重,从而获得一个拟合而不是过拟合的判断模型!