正则化即为对学习算法的修改,旨在减小泛化偏差而不是训练偏差。web
先来讲一下拟合的概念,拟合并非特指某一种方法,而是指一种数据处理的方式。简单的说就是你有一组数据,觉着这组数据和一个已知的函数很类似,为了获得这个最能表示这组数据特征的函数,经过拟合(具体的方法不少哦)这种方式求得参数。算法
对于拟合的表现,可分为三种状况:
微信
欠拟合编辑器
没法很好的拟合训练集中的数据,预测值和实际值误差很大。特征选少了时易出现这类状况。(相似上课不学习,下课都不会)
函数
优良的拟合 学习
不管是训练集数据仍是不在训练集中的预测数据,都能给出较为正确的结果。spa
过拟合
.net
能很好的拟合训练集中的数据,可是对于不在训练集中的新数据偏差会很大,泛化能力弱。这类状况出现于特征选多了。3d
PS:泛化能力指学习模型对新数据的预测能力。orm
线性模型中的拟合状况:
左图欠拟合。
右图过拟合。
逻辑分类模型中的拟合状况。
左图欠拟合。
右图过拟合。
为了度量拟合表现,有两个概念须要知道:
误差(bias)
值模型的预测值和实际值的偏离程度。误差越大,预测值偏离真实值越厉害。
方差(variance)
指模型预测值的离散程度或变化范围。方差越大,数据的分布越分散,函数波动越大,泛化能力越差。方差低意味着拟合曲线的稳定性高,波动小。
据此,咱们有对同一数据的各种拟合状况以下图:
由上图可知:高误差意味着欠拟合,高方差意味着过拟合。
咱们应尽可能使得拟合模型处于低方差(较好地拟合数据)状态且同时处于低误差(较好地预测新值)的状态。
实际状况中咱们的学习算法常常会用到不少特征,当有这么多特征的时候,咱们的绘图也会变得很困难,经过可视化来决定保留哪些特征变量也更难。好比预测房价,可能有不少不少的特征跟房价都有关系,可是咱们却只有不多的训练数据,就会出现过分拟合的问题。
避免过拟合的方法有:
减小特征的数量
手动选取需保留的特征
使用模型选择算法来选取合适的特征。
PS:减小特征的方式易丢失有用的特征信息。
正则化
可保留全部参数(许多有用的特征都能轻微影响结果)。
减小惩罚各参数大小(magnitude),以减轻各参数对模型的影响程度。
PS:当有不少参数对于模型只有轻微影响时,正则化方法的表现很好
不少时候因为特征数量过多,容易出现过拟合,可是咱们又很难选出不要的特征或者全部特征对咱们都相当重要,这时候应用正则化方法就是个很好的选择啦。
为了保留各个参数的信息,修改代价函数为:
上述公式中咱们在代价函数中加入了θ3和θ4的惩罚项。若是要最小化惩罚函数J(θ),那么势必要减少θ3和θ4的值,从而使得1000*θ3的平方和1000*θ4的平方这两项值很小,能够说这时θ3和θ4的值会变得很是小,能够说近似没有,假设函数变得简单了,从而在保留各个参数的条件下避免了过拟合问题。
经过上面的介绍咱们知道,有时候没法肯定移除哪一个特征时,能够经过更改代价函数J(θ)来避免过拟合,可是决定减小哪一个θ参数也是一个问题,这里咱们能够统一惩罚除θ0以外的全部参数。
PS:这是种约定俗成的作法,和惩罚包括θ0在内的全部参数其实没有任何区别。
改进后的代价函数J(θ):
其中:
λ:正则化参数,相似于学习速率,也须要咱们自行对其选择一个合适的值,λ>0。
不惩罚参数θ0。
是正则化项。
λ在上述公式中起着学习效率的做用。
过大
致使模型欠拟合。(θ1至θj所有近似于0,假设函数可能变成近似等于θ0的一条直线。)
没法正常除去过拟问题。
梯度降低可能没法收敛。
太小
没法避免过拟合。(等于没有)
在全部可能选择的模型中,可以很好地解释已知数据而且十分简单才是最好的模型,也就是应该选择的模型。
正则化是结构风险最小化策略的实现,是去过拟合问题的典型方法,虽然看起来多了个一参数多了一重麻烦,可是有自动选取正则化参数的方法(后文会介绍)。模型越复杂,正则化参数值就越大。
应用正则化的线性回归梯度降低算法:
也能够移项获得更新表达式的另外一种表示形式
至关于θj乘以比1小一点的数(好比0.99),咱们每次都把参数缩小一点,而后进行和以前同样的更新操做。
应用正则化的标准方程法:
这里简单介绍一下标准方程法。
对于一些线性回归的问题,用标准方程法求解参数θ的最优值会更好。
要使得J(θ)最小,即为最低点,则使。
最终公式(特征矩阵X、输出矩阵Y、特征参数矩阵θ带入J(θ)中进行推导便可):
梯度降低缺点:
须要选择学习效率α。(须要不断尝试)
须要迭代不少次。
梯度降低优势:
在特征很是多的时候能很好运行。
标准方程法缺点:
若是特征很是多就会计算很慢。
标准方程法缺点:
不须要学习效率和迭代,更加方便快捷。
吴恩达教授本身的经验:特征一万如下使用标准方程法,一万左右会考虑使用梯度降低法,一万以上使用梯度降低法。
使用计算出来的θ,可使得代价函数J(θ)最小化,这时候的J(θ)是没有通过正则化的。
正则化后的方程:
其中:
λ·L:正则化项。(λ>0)
L:第一行第一列为0的n+1维单位矩阵。
Python表示:
正则化能够解决正规方程法中不可逆的问题,即增长了λ·L正则项后,能够保证XTX+λ·L可逆,即使XTX不可逆。
这里扩展一下正规方程法中公式中(XTX)可能存在不可逆的状况,不可逆矩阵称为奇异矩阵或退化矩阵。
XTX出现不可逆的状况其实不多发生。
若是XTX不可逆,一般有两种最多见的缘由:
因为某种缘由,学习问题包含了多余的特征。
例如:在预测房价时有两个特征,一个是x1以平方英尺为单位的房子的面积,一个是x2以平方米为单位的房子的面积。由于1米等于3.28英尺,x1=3.28的平方*x2。两个特征不能像这样用线性方程联系起来,这样XTX将是不可逆的。
有太多的特征(m<=n,即特征数量大于样本数量)
若是发现XTX是不可逆的,建议看特征中是否有一些多余的特征,相似x1和x2这样线性相关的,能够删除一个没必要要二者都保留,直到没有多余特征为止。若是没有对于特征,咱们要检查一下特征数量,若是特征数量实在太多,少一点又不会影响的话,咱们要删除一些特征或者考虑正则化。
总之出现不可逆矩阵的状况极少发生。
为逻辑回归的代价函数添加正则化项:
从而有应用正则化的逻辑回归梯度降低算法:
本文分享自微信公众号 - 小啦的学习笔记(woshiguolala)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。