本文共 2741 字,大约阅读时间需要 9 分钟。
在机器学习任务中,常用损失函数(loss function)来衡量模型输出值 f ( x ) f(x) f(x)和真实值Y之间的差异,如下面定义的损失函数: L ( Y , f ( x ) ) = ( Y − f ( x ) ) 2 L(Y, f(x)) = (Y - f(x))^{2} L(Y,f(x))=(Y−f(x))2若数据 ( X , Y ) (X,Y) (X,Y)是服从联合分布 D D D,则其损失函数的期望值为 E [ L ( Y , f ( x ) ) ] E[L(Y, f(x))] E[L(Y,f(x))],也称为模型的真实风险,记作 R r e a l = E [ L ( Y , f ( x ) ) ] R_{real}=E[L(Y, f(x))] Rreal=E[L(Y,f(x))]。我们的目标即是找到最优的模型或者概念来最小化真实风险,即: f ∗ = a r g m i n f ∈ F R r e a l ( f ) f^{*} = arg\mathop{min}\limits_{f \in F}R_{real}(f) f∗=argf∈FminRreal(f)由于数据的分布 D D D是未知的,所以我们我们只能通过历史数据训练得到的模型在训练集上的平均损失来代替这个真实风险,此时 f ( x ) f(x) f(x)在训练集上的平均损失称为经验风险(empirical risk),记作 R e m p R_{emp} Remp,其中 R e m p = 1 N ∑ i = 1 N L ( y i , f ( x i ) ) R_{emp} = \frac{1}{N}\sum_{i=1}^{N}L(y_{i}, f(x_{i})) Remp=N1i=1∑NL(yi,f(xi))即我们的目标是通过训练集上的数据最小化经验风险以获取最优模型或者最优概念: f ^ = a r g m i n f ∈ F R e m p ( f ) \hat{f} = arg\mathop{min}\limits_{f \in F}R_{emp}(f) f^=argf∈FminRemp(f)
通常情况下,损失函数的值越小,就说明模型拟合的效果就越好。 但在实际应用中,我们的目标不仅仅是让loss function越小越好就可以了,在最极端的境况下,我们训练的模型 f ( x ) f(x) f(x)拟合出了训练集上所有样本的值,如上图中的第三个模型(图片来自Andrew Ng Machine Learning公开课视频),这种现象就是过拟合(over-fitting),即模型的泛化能力变弱,无法在未见过的数据样本上产生较好的效果。 过拟合同时也意味着此时模型的结构复杂性特别高,这也即是结构风险(structural risk) 所带来的弊端。因此,除了降低模型的经验风险外,还需要降低它的结构风险。而下面介绍的正则化项的作用就是降低模型的复杂性,也即是降低它的结构风险。正则化项(regularization)也称作惩罚项,常将其添加到损失函数中,用于组成我们的目标函数(object function)。正则化项的目的是为了对模型训练的参数进行一些限制,常用的正则化项包括L1正则化,L2正则化,其分别常表示为 λ ∣ ∣ w ∣ ∣ 1 \lambda||w||_{1} λ∣∣w∣∣1和 λ ∣ ∣ w ∣ ∣ 2 \lambda||w||_{2} λ∣∣w∣∣2。其中, w w w表示模型训练的参数或者系数, ∣ ∣ . ∣ ∣ ||.|| ∣∣.∣∣则是求范数的计算操作。通常模型越复杂,惩罚项越大,模型越简单,惩罚项越小。
L1和L2的计算分别对应如下,其中 λ \lambda λ表示调整的步长大小,其值越大,越会使得模型参数为0时取得最优解:另外,除了L1和L2正则化项之外,还有L0正则化项,表示为 λ ∣ ∣ w ∣ ∣ 0 \lambda||w||_{0} λ∣∣w∣∣0,计算方式是 λ ∣ ∣ w ∣ ∣ 0 = λ ∑ i = 1 n w i \lambda||w||_{0} = \lambda\sum_{i=1}^{n}w_{i} λ∣∣w∣∣0=λ∑i=1nwi其中 w ! = 0 w!=0 w!=0,它的意义即是求非零参数的个数。则Lp正则化就表示为 λ ∣ ∣ w ∣ ∣ p = λ ( ∑ i = 1 n ∣ w i ∣ p ) 1 / p \lambda||w||_{p} =\lambda (\sum_{i=1}^{n}|w_{i}|^{p})^{1/p} λ∣∣w∣∣p=λ(∑i=1n∣wi∣p)1/p。
首先,关于L1和L2正则化的作用如下:
L1正则化可以得到稀疏解,所以可以用于模型特征选择。以线性回归的模型为例,很多特征的参数为0就意味着它们对于预测结果的贡献为零,所以就可以保留不为零的特征,以此进行特征选择。关于L1正则化可以得到稀疏解,具体可以参考知乎:
L2正则化可以防止模型过拟合,原因是在加入了L2正则化的目标函数中,参数优化的时会倾向于使得参数尽可能小,最后得到一个参数都比较小的模型。相比于参数很大的模型,样本特征发生很小的变化就会导致模型的输出发生很大的变化,如前面图中的第三个模型,其中含有 x 4 x^{4} x4项,可想其对应的参数很大,其结果必然会有很大的变化。而如果参数很小,参数变化对于模型的输出的影响就会很小,以此增强模型的泛化能力。
关于为什么L2正则化可以获得很小的参数,可以参考转载地址:http://jzklf.baihongyu.com/