机器学习入门(九)——正则化:L1正则、L2正则

        在系列(八)中提到了机器学习最重要就是降低模型的方差,即解决过拟合的问题,其中最重要的一种方法就是模型正则化,通常有L1正则和L2正则。

演示代码见:https://github.com/eqdward/ML_Algorithms/blob/master/L1_L2_Regulation)

1.0 模型正则化

        模型正则化(Regularization),就是通过对算法模型的修正(即降低复杂度),限制参数(即自变量)的规模(数量和幂次数),减少泛化误差(方差)而不是训练误差(偏差)。例如当使用比较复杂的模型比如神经网络,去拟合数据时,很容易出现过拟合现象(训练集表现很好,测试集表现较差),这会导致模型的泛化能力下降,这时候就需要使用正则化,降低模型的复杂度。

        实践中,过于复杂的模型不一定能够模拟结果的真实生成过程,甚至也不包括近似过程。这意味着在建模时就控制模型的复杂程度并不是一个有效的方法,或者说不能很好的找到合适的模型,所以通常做法是构建一个适当正则化的大型(复杂)模型

      正则化的策略包括:通过对模型建立约束和惩罚,使模型偏好与简单化的表达(奥卡姆剃刀原理的应用),即模型复杂则对其处罚。其他形式的正则化如集成的方法,即结合多个假说解释训练数据。

2.0 L1正则化和LASSO回归

        L1正则化就是在损失函数中加了L1范数这一项,而使用L1正则化的模型叫做LASSO回归,中文常叫套索回归。

2.1 LASSO回归

        以线性回归为例:线性回归中为了确定最终的模型参数采用的是求损失函数最小,为了避免数据数量增加带来的方差增大选择了均方差MSE作为损失函数,如下式:

        由于数据集本身的大小是固定的,那么当模型过于复杂时,会导致的绝对值变大,因此为了限制的增大,在损失函数后加入正则化(惩罚项),如下所示:

       这样的话,要使损失函数尽可能小就要综合考虑两项,第一项就是均方差MSE,第二项是系数的绝对值,这样就要求在二者之间寻求一个平衡,这就是一种模型正则化的基本原理。该种形式的正则化就是L1正则化,而这也的回归模型被称为“LASSO回归”(Least Absolute Shrinkage and Selection Operator Regression)。

        在这里有几个细节需要注意:

        (1)系数的取值范围是1~n,即不包含。这是因为不是任何一个参数的系数,只是截距。反映到图形上就是反映了曲线的高低位置,而不决定曲线的趋势,所以模型正则化时不需要考虑。

        (2)正则化项前面的系数叫做超参数,含义是让系数尽可能小的程度占整个优化损失函数程度的多少,也可以理解为惩罚项的惩罚力度。

2.2 LASSO回归与稀疏性

         LASSO回归的全称是Least Absolute Shrinkage and Selection Operator Regression。这里的selection operator说明LASSO回归包含了特征选择功能。具体来说,就是LASSO回归可以使得模型系数具有稀疏性,即得到的系数矩阵是一个稀疏矩阵。

        (注:稀疏性和稀疏矩阵,简单说就是存在很多0。系数结果为系数矩阵,表明只有少数特征(系数为非0)对模型有作用,其他(系数为0)特征即使去掉可以认为对模型没有影响,此时就可以只关注系数是非零值的特征。)

        LASSO回归相当于对模型进行了一次特征选择,只留下一些比较重要的特征,提高模型的泛化能力,降低过拟合的可能。

3.0 L2正则化和RIDGE回归

        L1正则化的惩罚项采用了求绝对值加和的形式,其实可以看做是系数矩阵距离空间原点的曼哈顿距离。既然有曼哈顿距离,自然也有欧式距离,这就是L2正则化的形式。使用L2正则化的模型叫做RIDGE回归,中文名叫岭回归。L2正则化形式如下:

        需要注意的是,L2与L1的差异性在于不会使系数矩阵稀疏化L2正则化能够让系数比较小(接近0),但是比较平滑(不等于0),因此不具有稀疏性。

你可能感兴趣的:(机器学习入门(九)——正则化:L1正则、L2正则)