正则化、线性回归、逻辑回归

 0、引出

正则化、线性回归、逻辑回归_第1张图片

正则化、线性回归、逻辑回归_第2张图片

最左边的模型最高次项为一次,此时模型是一条直线;直观的观察样本点(红色×)的趋势,我们发现该模型并不能很好的拟合两者的关系(事实上,随着房子面积增大,住房价格的变化趋于稳定或者说越往右越平缓,而不是无限递增)。此类情况称为欠拟合。

最右边的模型最高次项为四次,此时模型从表面看上去很好的拟合了样本点,但实际上这是一条非常难看的曲线,不断的波动。可以想象得到,当一个新的样本需要预测时,该模型的结果也不准确,这类情况叫做过拟合。

中间的模型,参数不多不少,刚好能反应面积Size和价格Price之间的真实关系,而它的最高次项是二次。

这也就引出了一个问题,该怎么控制多项式的最高次幂?(也就是特征的个数)。对于这个问题其实我们只需要这两个特征,而x^{3},x^{4}是不需要的。所以尽可能的降低x^{3},x^{4}的权重,也就是让其系数 x^{3},x^{4}尽可能的小。最好趋近于零,这样就ok了。

一、利用正则化解决过拟合问题

造成过拟合的可能原因:

  • 1、特征数量太多(对应上例中就是特征值过多,即\Theta参数数量过多);
  • 2、训练样本太少。

所以针对过拟合问题,通常会考虑两种途径来解决:

1、减少特征的数量:

  • 人工的选择保留哪些特征,即保留哪些权重大的特征;
  • 模型选择

2、正则化:

  • 保留所有的特征,但降低参数的量/值(就是上面我们分析的,使系数 x^{3},x^{4}尽可能的小,最好趋近于零)。

二、正则化

现有一代价函数,使其最小化,即这是我们要优化的目标: 

要最小化这个均方误差代价函数。现在对它进行一些修改,新增参数并施以惩戒,即加上了 ,为:

其中1000只是随便选的一个比较大的数。现在要使这个修改后的函数尽可能小的方法只有一个,那就是\Theta _{3},\Theta _{4}要尽可能的小,因为它们的系数1000有点大,这样就导致这个函数的值变得很大。当 时,相当于这两项去掉了,结果目标函数就是一个二次函数加上一个很小的数。

模型参数越小,那么就可以得到一个更简单的假设模型。但是对于一个模型,并不知道该选哪些参数去缩小。所以在代价函数的后面添加一个新的项: 

  ,这就是正则化代价函数

等号右边的第二项就是正则化代价函数,\lambda是正则化参数。

至于为什么加了惩戒项后参数会变小,甚至接近于0。可以根据拉格朗日乘法算子求出来,至于怎么求,那是搞数学来想的,我们只管怎么用。

\lambda作用:控制两个不同目标之间的取舍,第一个目标与目标函数的第一项有关,就是我们想去训练,想更好的训练、拟合数据;第二个目标就是我们要保持参数尽量的小,与正则化目标有关。\lambda就是平衡这两个目标之间的关系,使之更好的去拟合训练集的目的,同时将参数控制得更小,使函数模型更简单,防止过拟合的情况。

但是也需要注意另一种情况:就是对所有的参数惩戒力度太大,每个参数都约等于0,那么 最后代价函数就变成了一条平行于x轴的直线,这样就变成了欠拟合了。

三、线性回归的正则化

线性回归参数更新推导:

正则化、线性回归、逻辑回归_第3张图片

 编程实现的话和前面的差不多。

 还有一种方法,利用矩阵:将J(\theta)\theta_{j}求导,使其偏导值为0。

正则化、线性回归、逻辑回归_第4张图片

对于纯粹的线性回归,可以得到:\theta = (X^{T}X)^{-1}X^{T}y

加入正则项后,结果为: 

现给出参数:M(样本数)、 N(即特征数)。

学过线性代数的都知道,如果有效方程数小于未知数时(M < N),方程有无穷多个解的。对应于模型就是说无法确定单一\Theta值。但加入了正则项后,只需要\lambda >0,那么矩阵 X^{T}X+\lambda I 是可逆的, 有唯一解。正则化解决了矩阵不可逆的问题。

四、Logistic回归的正则化

正则化、线性回归、逻辑回归_第5张图片

 

同样的,在Logistic回归代价函数中加入正则化代价函数,这样就可以避免过拟合的现象。

正则化、线性回归、逻辑回归_第6张图片

上图就是加入正则化后的参数更新公式,蓝色方括号中的就是新的代价函数J(\theta)\theta_{j}的偏导(和线性回归一样,不过逻辑回归与线性回归的表达式不同,不清楚点击这里)

下图展示了前几个的正则化后的代价函数,由于对于\lambda而言下标是从1开始的,也可以这么理解,那就是是常数,所以并不需要施加惩戒。

正则化、线性回归、逻辑回归_第7张图片

 

你可能感兴趣的:(Machine,Learning,机器学习)