赞
踩
对于过拟合现象,这里采用线性回归中预测房价的例子来进行阐述。具体如下图所示:
然后我们分别来评价者三个图对于数据的拟合效果。
概括地说,过拟合的定义:如果我们拥有过多的特征,在训练出的假设函数中能够很好地拟合训练集(代价函数接近于0),但是得到的曲线无法泛化到新样本中。
同样地,过拟合问题也可能会出现在逻辑回归中,如下图所示
关于如何解决过拟合现象,我们上面用到的方法似乎是进行可视化,然后判断是否出现了过拟合现象。但是当训练集中的特征有很多的时候,我们是没有办法进行可视化的。因此对于过拟合现象的解决办法主要有以下几种:
因为我们在进行拟合的时候,与代价函数是息息相关的。
对于正则化方法,就是通过减小θj的值来更好地拟合,例如第一部分提到的房价数据的第三幅图中,如果我们尽可能令θ3、θ4 尽可能小也可以拟合出一个和二次函数类似的函数,可以比较好地进行拟合,这就是正则化的思想。如下图所示:
基于上述例子,我们提出一般的正则化方法:
首先,假设在预测房价的例子中,我们拥有100个特征,如下所示:
因为在实际的例子中,我们无法知道要缩小哪一个θj的参数,因此我们很难挑选出哪一个特征相关度比较低,因此我们要做的就是缩小所有的参数,如下图所示:
需要注意的是,第二个求和参数是从θ1开始的,我们通常不会对θ0进行惩罚,这是约定俗成的。
λ的作用其实就是用来平衡两个目标之间的关系,即更好去拟合训练集的目标和将参数值控制得更小的目标,从而避免出现过拟合现象。
并且在我们进行实际应用中,我们也不能将λ设置的太大,如果设置的太大,就会造成惩罚程度太大,从而θ1、θ2,…,θn都约等于0,使拟合函数编程一条水平直线,如下图所示:
在线性回归中,我们要获取最优的θ值,通常会有两种方法:梯度下降和正规方程。
在梯度下降中应用正则化,我们只需要将第二部分中新的代价函数代入到原来的梯度下降算法中就可以了,如下图所示:
并且对于第二项,我们进行整理,还可以得到简化的式子,如下图所示:
我们可以注意到,(1-αλ/m)是一个稍微小于1的数,因此这里也就可以体现了缩小θj的思想了。
在正规方程中应用正则化,只需要对所求的矩阵进行稍微的修改即可,如下图所示:
需要注意的是,λ后面的矩阵是一个(n+1)*(n+1)的矩阵。
并且通过在正规方程中使用正则化,可以直接消除矩阵不可逆的情况,如下图所示:
在逻辑回归中,为了求得最优的θ,我们使用的两种方法是:梯度下降法和更高级的优化算法。
在梯度下降中应用正则化,首先我们需要重新定义逻辑回归中的代价函数,如下图所示:
然后我们就需要更新梯度下降的算法了,具体如下图所示:
对于在更高级算法中使用正则化,后续学习之后再进行补充。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。