本文记录了我在学习正则化模型(主要是Ridge Regression)时的一些困惑和思考。困惑主要有三点:

  1. 正则化模型中为什么需要把特征x中心化(centering)或者标准化(standardization)?有什么好处?参数估计结果有哪些差异?
  2. 为什么对y一般只需要中心化而不需要标准化?
  3. 为什么不对bias项进行惩罚?

下面以Ridge Regression为例尝试对以上三个问题进行解释。基本设定如下:假设 $\mathbf{x}_i \in \mathbb{R}^p$ , , 为一组训练样本,我们希望找到 使得 ridge regression 的目标函数

最小,其中 为事先给定的正则化系数。

困惑一:为什么需要把特征x中心化或标准化?

对变量 中心化是指去掉它的均值,而标准化则还要除上它的标准差。

中心化

为什么要进行中心化?其实在看 The Elements of Statistical Learning 的 Ridge Regression (P63) 之前我对中心化也并不了解,平常听得和用得更多的是标准化。但是,看完书并做了对应的课后习题(Exercise 3.5)后我发现中心化不仅在理论推导上很有用,并且提供了估计正则化模型参数的一般方法。通常,为了把上面的函数 写成矩阵形式,我们会人工加入一列 作为 bias 项所对应的列,从而得到 的设计矩阵 ,然后再把 加入到 中得到 。这样可以把 写成矩阵形式:

可以看到,由于我们没有将 bias 项加入到正则化项中(不加的原因在困惑三中说明),使得目标函数的矩阵形式是比较复杂的(既有 又包含 ),不能通过简单的对 求导来求最优解。但是,将特征 中心化之后,我们将看到参数 的最优解都会有一个显示表达式

另外,如果我们对 关于 求偏导并令其为0,则有:

其中, 的均值, 为特征的均值向量。可以看到,如果 为0,则 可以简单的用 的均值 进行估计,而将 中心化以后再求它的均值向量 刚好会得到0! 这也是对特征 进行中心化的一个原因:bias 项 可以用 的均值 估计!

下面推导将特征 中心化以后参数 的最优解。

首先,将目标函数 作恒等变换转换成新的函数

其中,。于是,最小化函数 等价于最小化函数

其次,因为中心化之后的均值向量变为 ,根据之前的说明, 关于 求导得到 的估计为 ,代入 中得到:

其中,

若令

则可以将 写成矩阵形式:

上式类似 Ridge Regression 在教科书上通常定义的目标函数。对 求偏导并令结果为0可以得到:

同时,原来的 bias 项

因此,在训练正则化模型时我们可以首先把特征 和标签 中心化(相当于把坐标原点移动到均值点,这样在拟合模型时就不需要截距项了),然后忽略 bias 项,解一个最优化问题得出权重,最后再根据权重 、标签均值和特征均值 计算 bias 项

标准化

为什么要进行标准化?这就要回到正则化的目的是什么。从统计的角度看,正则化是为了进行变量选择:加入正则化项后,一些对被解释变量 影响较小(系数较小)的变量 就被剔除掉了,只保留系数较大的变量。而为了保证变量之间比较的公平性,所有变量都必须是同一尺度。如果一个变量是以万为单位,而另一个变量只有可怜的零点几,则第二个变量在正则化模型中几乎不可能被选出来(它要对 产生影响的话必须乘上一个很大的系数但是这样反过来会极大地增加惩罚项)。因此需要对所有变量进行标准化处理。接下来我们想知道将 标准化后参数的估计有哪些变化。

将变量 标准化,我们要最小化目标函数 :

其中, 对角矩阵 为第 个变量的标准差。若令 ,则上式可进一步化简为:

对比函数 的表达式,可以发现它们的结构是类似的,因此可以得到 的估计为 。如果我们再令 矩阵

那么仿照求解 的过程就可以得到 的估计为 ,即

又因为 ,所以

对比 的表达式

可以发现虽然它们的表达式不同,但 也只是多了将 中心化后再除上标准差这一步。

在实际建模中,如果特征之间的尺度差异不大,则一般只需要进行中心化(特征、标签都要),分两步求得权重 和 bias 项 ;而如果特征之间的尺度相差很大,则需要把特征标准化,标签中心化,也分两步求得权重 和 bias 项 。注意,这里我们得到的是关于 的两个不同的估计式,也就是两个不同的模型!

困惑二:为什么对y一般只需要中心化而不需要标准化?

前面已经说明了将标签 中心化后可以配合特征的中心化分两步求解各参数的估计。至于不需要对 标准化的原因,目前为止我的想法是:中心化是为了进行公平比较,而这里我们并没有拿 和其它变量去比,因此也就没有标准化的必要。

困惑三:为什么不对bias项进行惩罚?

因为进行正则化的目的是为了减少参数个数,也就是让我们的损失函数更加平滑(直线相比曲线更平滑),而 bias 项对函数的平滑程度没有影响,它只是进行上下平移!因此也就没有惩罚的必要了。