上节咱们讲到了线性回归,那么思考这么一个问题:算法
若是数据特征比样本点还多怎么办? 是否还可使用线性回归和以前的方法来作预测?
答案是:否认的。由于此时输入数据的矩阵不是满秩矩阵,非满秩矩阵在求逆时会出现问题。编程
为了解决这个问题,引入了岭回归(Ridge Regression)的概念。网络
缩减方法能够去掉不重要的参数,所以能更好地理解数据。此外,与简单的线性回归相比,缩减法能取得更好的预测效果。函数
除了Ridge,还有一种正则化的线性回归是Lasso。与岭回归相同,使用Lasso也是约束系数使其接近于0。优化
Ridge回归经过对系数的大小进行惩罚来解决普通最小二乘的一些问题 。公式以下:3d
岭回归是加了二阶正则项的最小二乘,主要适用于过拟合严重或各变量之间存在多重共线性的时候,岭回归是有bias的,这里的bias是为了让variance更小。code
岭回归没法剔除变量,而LASSO回归模型,将惩罚项由L2范数变为L1范数,能够将一些不重要的回归系数缩减为0,达到剔除变量的目的。blog
Lasso回归做用:所以它的效果就是让w往0靠,使网络中的权重尽量为0,也就至关于减少了网络复杂度,防止过拟合。ci
过拟合(over-fitting): 在训练数据不够时,或者over-training时,经常会致使over-fitting(过拟合)。会使得对于训练数据准确率高,对于新数据准确率低。it
避免过拟合的方法有不少:early stopping、数据集扩增(Data augmentation)、正则化(Regularization)包括L一、L2(L2 regularization也叫weight decay),dropout。
为何叫L1正则化?
由于后面加上了||w||的一次幂。
比原始的更新规则多出了η * λ * sgn(w)/n这一项。当w为正时,更新后的w变小。当w为负时,更新后的w变大。
另外,上面没有提到一个问题,当w为0时怎么办?当w等于0时,|W|是不可导的,因此咱们只能按照原始的未经正则化的方法去更新w,这就至关于去掉ηλsgn(w)/n这一项,因此咱们能够规定sgn(0)=0,这样就把w=0的状况也统一进来了。(在编程的时候,令sgn(0)=0,sgn(w>0)=1,sgn(w<0)=-1)
为何叫L2正则化?
由于后面加上了||w||的平方
C0表明原始的代价函数,后面那一项就是L2正则化项,它是这样来的:全部参数w的平方的和,除以训练集的样本大小n。λ就是正则项系数,权衡正则项与C0项的比重。另外还有一个系数1/2,1/2常常会看到,主要是为了后面求导的结果方便,后面那一项求导会产生一个2,与1/2相乘恰好凑整。
对比上面w的更新公式,能够发现后面那一项变了,变成全部导数加和,乘以η再除以m,m是一个mini-batch中样本的个数。
以下图所示,过拟合,就是拟合函数须要顾忌每个点,最终造成的拟合函数波动很大。
在某些很小的区间里,函数值的变化很剧烈。这就意味着函数在某些小区间里的导数值(绝对值)很是大,因为自变量值可大可小,因此只有系数足够大,才能保证导数值很大。
-岭回归:L2正则化
缩减系数,防止过拟合。若是线性回归出现过拟合,使用岭回归进行优化。
即便没有出现过拟合,也会尝试使用岭回归。
加入误差,获得更好地结果
岭回归是数据处理的一种方式
-套索回归:L1正则化
适用于方程的解是稀疏矩阵,当属性特别多时,能够采用Lasso去尝试。
在矩阵中,若数值为0的元素数目远远多于非0元素的数目,而且非0元素分布没有规律时,则称该矩阵为稀疏矩阵;