正则化(regularization)技术是机器学习中十分常用的技术,它在不同的模型或者情景中以不同的名字出现,比如以L2正则化为例,如果将L2正则化用于linear regression,那么这就对应了ridge regression;如果将L2正则化用于神经网络(neural network),那么L2对应为权重衰减(weight decay)。
正则化的作用实际上就是防止模型过拟合,提高模型的泛化能力。正则化的种类有很多,这里主要介绍在工程中用得较多的两类正则化,一个是L1正则化,另一个则是L2正则化。为了配合阐述,本文用linear regression的正则化作为例子来贯穿全文。
当我们用linear regression在训练数据集上训练模型时,我们定义一个最优化目标函数:
(1)
式中(x(i), y(i))为训练数据,w为线性模型的参数向量,为了使得模型能够充分拟合训练样本点,我们希望上述目标函数的值尽可能小,即:
(2)
但是由于实际中的训练数据量往往并不大,如果让模型完美拟合训练数据的话,很可能造成模型过拟合,从而使得模型的泛化能力较差。这一点可以从得到的模型参数向量w的各个分量中看出,其中大部分分量的绝对值都非常大,这种现象直观表现在图上就是曲线(曲面)不光滑,凹凸不平,很复杂;相反,如果w的各个分量的绝对值都很小,在0附近,那么曲线(曲面)就会显得很平滑。很显然,在机器学习中,我们更希望拟合出的曲线(曲面)更为平滑,因为这样的曲线(曲面)是具有较好的泛化能力的。那么如何将w各个分量的绝对值降低呢&