$L_1,L_2$正则化

在很多场景都遇到\(L_1,L_2\)正则化,但是一直不知道这二者具体是什么原理,最近看了相关教程,记录一下。希望也能帮到还不懂的朋友😬。

前置技能

范数

数(norm)是数学中的一种基本概念。在泛函分析中,它定义在赋范线性空间中,并满足一定的条件,即①非负性;②齐次性;③三角不等式。它常常被用来度量某个向量空间(或矩阵)中的每个向量的长度或大小。

我们从向量范数开始。

向量范数

1-范数为向量各元素绝对值之和。

\[||X||_1 = \sum_{i=1}^n |x_i| \]

2-范数为各元素平方和开根号。

\[||X||_2 = \sqrt{\sum_{i=1}^n x_i^2} \]

\(\infty-\)范数为最大元素。

\[||X||_{\infty} = \max_{1 \leq i \leq n} |x_i| \]

\(p-\)范数。

\[||X||_p = (\sum_{i=1}^n |x_i|^p)^{\frac{1}{p}} \]

对比上面的几种情况,满足\(p-\)范数向1和无穷的推广。

矩阵范数

\(L_0\)范数,定义为矩阵中的非零元素个数。

\[L_0 = \sum_{i,j} [a_{ij} \neq 0] \]

\(L_1\)范数,矩阵中的每个元素绝对值之和,它是\(L_0\)范数的最优凸近似,因此它也可以近似表示稀疏。

\[L_1 = \sum_{i,j}|a_{ij}| \]

\(F\)范数,矩阵的各个元素平方之和再开平方根,它通常也叫做矩阵的\(L_2\)范数。

\[L_2 = \sqrt{\sum_{i,j}a_{ij}^2} \]

矩阵1-范数,矩阵的每一列上的元素绝对值先求和,再从中取个最大的(列和最大)。

\[||A||_1 = \max_{1 \leq j \leq n} \sum_{i=1}^m |a_{ij}| \]

矩阵2-范数,协方差矩阵的特征值的绝对值最大值开根号。

\[||A||_2 = \sqrt{\max_{1 \leq i \leq n} |\lambda_i|} \]

其中\(\lambda\)\(A^T A\)的特征值。

矩阵无穷范数,矩阵的每一行上的元素绝对值先求和,再从中取个最大的(行和最大)。

\[||A||_{\infty} = \max_{1 \leq i \leq n} \sum_{j=1}^{m} |a_{ij}| \]

样本分布

高斯分布

高斯分布又称正态分布,其概率密度函数表示如下。

\[f(x) = \frac{1}{\sigma \sqrt{2 \pi} } e^{- \frac{(x-\mu)^2}{2 \sigma ^2}} \]

可以用\(x \sim N(\mu, \sigma ^2)\)来表示,其中\(\mu, \sigma\)分别是均值和标准差。

当均值为0,方差为1时,称其为标准正态分布。

拉普拉斯分布

Laplace分布的概率密度函数的形式如下。

\[p(x) = \frac{1}{2 \lambda} e ^{- \frac{|x-\mu|}{\lambda}} \tag{1} \]

它是由两个指数函数组成的,所以又叫做双指数函数分布。式中均值为\(\mu\),方差为\(2 \lambda ^2\)

Hessian矩阵

一元函数的泰勒展开为

\[f(x) = f(x_0) + \frac{f'(x_0)}{1!}(x - x_0) + \frac{f '' (x_0)}{2!}(x-x_0)^2 + ... + \frac{f^{(n)}(x_0)}{n!}(x-x_0)^n\\ = \sum_{i=0}^{n} \frac{f^{(i)}(x_0)}{i!} (x-x_0)^i \]

如果将其扩展到多元函数,我们只要用偏导就可以,\(i\)次幂的系数是从\(m\)个参量中选出\(i\)个求偏导。

下面我们主要研究在多元参数的情况下二阶泰勒展开是什么样的。二元函数\(f\)\(x^*\)处展开的二次项为

\[\frac{1}{2}((x_1-x_1^{*})^2 g_{x_1,x_1}(x^*) + (x_2 - x_2^*)^2 g_{x_2,x_2}(x^*) \\+ (x_1 - x_1^*)(x_2 - x_2^*) g_{x_1,x_2}(x^*) + (x_2 - x_2^*)(x_1-x_1^*)g_{x_2,x_1}(x^*) ) \]

其中,\(x_1^*\)\(x^*\)的参数\(x_1\)\(x_2^*\)\(x^*\)的参数\(x_2\)\(g_{x_i,x_j}\)\(\frac{\partial ^2 f}{\partial x_i \partial x_j}\)。上式写为矩阵形式为

\[\frac{1}{2}(x - x^*)^T \begin{bmatrix} \frac{\partial ^2 f}{\partial x_1^2} & \frac{\partial ^2 f}{\partial x_1 \partial x_2}\\ \frac{\partial ^2 f}{\partial x_2 \partial x_1} & \frac{\partial ^2 f}{\partial x_2^2} \end{bmatrix} (x-x^*)\\ = \frac{1}{2}(x-x^*)^T H (x - x^*) \]

其中\(H\)为Hessian矩阵。多元Hessian矩阵定义如下:

\[H(f) = \begin{bmatrix} \frac{\partial ^2 f}{\partial x_1^2} & \frac{\partial ^2 f}{\partial x_1 \partial x_2} & ...& \frac{\partial ^2 f}{\partial x_1 \partial x_n}\\ \frac{\partial ^2 f}{\partial x_2 \partial x_1} & \frac{\partial ^2 f}{\partial x_2^2} & ...& \frac{\partial ^2 f}{\partial x_2 \partial x_n}\\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial ^2 f}{\partial x_n \partial x_1} & \frac{\partial ^2 f}{\partial x_n \partial x_2} & \cdots & \frac{\partial ^2 f}{\partial x_n^2} \end{bmatrix} \tag{2} \]

对于任意多元函数,在\(x^*\)处二阶可导,我们作二阶泰勒展开可以得到

\[f(x) = f(x^{*}) + \frac{1}{2!}(x - x^{*})^T H (x - x^*) \tag{3} \]

正则化

机器学习中,有一个常见的问题就是由于模型太复杂而引发的过拟合,大大降低了模型对未知数据的泛化能力,而解决过拟合的方法其实很多,比如dropout等。

正则化也是用来解决过拟合的,它会控制模型复杂度,基本方法是在原目标函数中加入一个惩罚项,目的是在最值化目标函数的同时减小模型复杂度,从而降低过拟合的程度。

\[\tilde{J}(w;X,y) = J(w; X,y) + \alpha \Omega(w) \tag{4} \]

\(J\)为原目标函数,\(X,y\)分别是数据输入和数据标签,\(w\)为权重,\(\alpha\)系数用来控制在目标函数种惩罚项的比重,\(\tilde J\)为改进后的目标函数。根据\(\Omega\)函数选择不同,有\(L_1\)正则化、\(L_2\)正则化两种。

\(L_1\)正则化:

\[\Omega(w) = ||w||_1 = \sum_i |w_i| \]

\(L_2\)正则化:

\[\Omega(w) = ||w||_2 = \sqrt{ \sum_i |w_i|^2} \]

两种解释

基于约束条件的最优化

根据上述说法,我们希望在原本目标函数\(J\)最小化的同时也最小化模型复杂度。加入约束条件后:

\[\min_w J(w; X,y)\\ s.t.||w||_0 \leq C \]

用来表示惩罚项的\(\Omega\)函数选择\(L_0\)范数是非常合适的,但是实际我们的权重很少会有0,我们应当将一些足够小的数字作0处理,可以使用\(L_1,L_2\)范数。为了方便,后面计算\(L_2\)正则化的时候将采用\(L_2^2\)

\[\min_w J(w; X, y)\\ s.t.||w||_1 \leq C \]

或者

\[\min_w J(w;X,y)\\ s.t. ||w||_2^2 \leq C \]

利用拉格朗日乘子法构造拉格朗日函数。

\[L(w, \alpha) = J(w;X,y) + \alpha (||w||_1 - C) \]

\[L(w, \alpha) = J(w;X,y) + \alpha (||w||_2^2 - C) \]

要最小化\(L(w, \alpha)\),就等同于下面式子:

\[\min _w J(w; X,y) + \alpha^{*} ||w||_1 \]

\[\min _w J(w; X,y) + \alpha^{*} ||w||_2^2 \]

其中\(\alpha^{*}\)\(\alpha\)的最优解。

最大后验概率估计

假设权重系数\(w\)是未知参数,\(y\)服从高斯分布,\(y^i \sim N(w^T x^i, \sigma ^2)\),那么

\[P(y|X,w) = \prod_i p(y^i|x^i,w) = \prod_i \frac{1}{\sigma \sqrt{2 \pi}}e^{- \frac{(y^i - w^T x^i)^2}{2 \sigma ^2}} \]

求得对数似然函数

\[l(w) = \log P(y|X,w) = - \sum_i \frac{1}{2 \sigma ^2} (y^i - w^T x^i)^2 + C \]

因为\(C\)为常数项,所以这一部分最小化\(-l(w)\),也就是原始的目标函数,最小平方差。

在最大后验概率中(MAP),将\(w\)看作随机变量。

\[P(w|X,y) = \frac{P(w, X, y)}{P(X,y)} = \frac{P(y|X,w) P(w)}{P(X,y)} \propto P(y|X,w)P(w) \]

取对数后

\[MAP = \log P(y|X,w) + \log P(w) \]

其中第一项已经计算出,我们对权重系数\(w\)作不同的分布假设可以得到不一样的正则化公式。

假设\(w\)服从正态分布

假设\(w\)服从正态分布,均值为0,方差为\(\sigma ^2\)

\[P(w) = \prod_j p(w_j) = \prod_j \frac{1}{\sigma \sqrt{2 \pi}} e^{-\frac{w_j^2}{2 \sigma ^2}} \]

取对数后

\[\log P(w) = - \frac{1}{2 \sigma^2} \sum_j w_j^2 + C' \]

那么最大化MAP等同于

\[\min_w l(w) + \frac{1}{2 \sigma^2} \sum_j w_j^2 \]

这是符合我们平方后的\(L_2\)范数形式的。

假设\(w\)服从拉普拉斯分布

若假设\(w\)服从均值为0、方差为\(2 \lambda^2\)的拉普拉斯分布。

\[p(w_j) = \frac{1}{2 \lambda} e ^{- \frac{|w_j|}{\lambda}} \]

\[\log P(w) = \log \prod_j \frac{1}{2 \lambda} e^{- \frac{|w_j|}{\lambda}} = - \frac{1}{\lambda} \sum_j |w_j| + C' \]

最大化MAP等同于

\[\min_w l(w) + \alpha \sum_j |w_j| \]

理论推导

假设原目标函数\(J(w)\)具有最有的权重系数解为\(w^{*}\),其该点处二阶可导,在这里泰勒展开,且一阶导为0,所以有

\[\hat J(w) = J(w^{*}) + \frac{1}{2!}(w - w^{*})^T H (w - w^*) \tag{5} \]

加入惩罚项之后对\(w\)求导,得

\[\triangledown _w \tilde J(w) = \triangledown _w \hat J(w) + \triangledown _w \Omega(w) = H(w-w^*) + \alpha \triangledown _w \Omega (w) \tag{6} \]

\(L_1\)正则推导

\((6)\)式及\(L_1\)正则化

\[\triangledown _w \tilde J(w) = H(w - w^*) + \alpha sign(w) \]

其中

\[sign(x) = \left \{ \begin{matrix} 1 & x \geq 0 \\ -1 & x < 0 \end{matrix} \right . \]

假设\(\tilde w\)\(\tilde J\)得最优解,那么有

\[H (\tilde w - w^*) + \alpha sign(\tilde w) = 0 \tag{7} \]

为了简化讨论,下面我们假设\(w\)的各参数间没有相关性,\(H\)为一个对角阵(可以由PCA得到),此时我们新的目标函数为

\[\tilde J(w) = J(w) + \sum_i [\frac{1}{2} H_{ii} ( \tilde w_i - w_i^*)^2 + \alpha |\tilde w_i| ] \tag{8} \]

\((8)\)式我们可以得到:

  • 和式中第一项是关于\(w_i^*\)对称的,第二项递增,所以最小化\(\tilde J(w)\)要求\(\tilde w_i < w_i^*\)
  • \(|\tilde w_i|\)不变,\(sign(\tilde w_i) = sign(w_i^*)\)的情况下和式的前一部分会比较小。

所以我们求解\((7)\)式可以得到

\[H_{ii}(\tilde w_i - w_i ^*) + \alpha sign(w_i^*) = 0 \]

\[\tilde w_i = - \frac{\alpha sign(w_i^*)}{H_{ii}} + w_i^*\\ = sign(w_i^*)(|w_i^*| - \frac{\alpha}{H_{ii}}) \]

\(|w_i^{\ast}| - \frac{\alpha}{H_{ii} } < 0\),发现\(sign(\tilde w_i) \neq sign(w_i^*)\),与我们的推论相悖。所以

\[\tilde w_i = sign(w_i^*) \max \{ |w_i^*| - \frac{\alpha}{H_{ii}}, 0 \} \tag{9} \]

由上面的计算可以发现,\(L_1\)正则化是原来最优解的基础上产生一个偏移,是某些元素变为0,从而产生稀疏性。

\(L_2\)正则推导

\(L_2\)正则化中,\((6)\)式变为

\[\triangledown _w \tilde J(w) = H(w-w^*) + \alpha w \]

设目标函数\(\tilde J\)的最优解为\(\tilde w\),那么

\[H(\tilde w - w ^*) + \alpha \tilde w = 0 \tag{10} \]

考虑将\(H\)作特征值分解\(H = P \Lambda P ^T\),其中\(P\)为正交矩阵,求得

\[\tilde w = (H + \alpha I) ^{-1} H w^*\\ = (P \Lambda P^T + \alpha I)^{-1} P \Lambda P^T w ^*\\ = [P^{-1}(P \Lambda P^T + \alpha I)]^{-1} \Lambda P^T w^*\\ = P(\Lambda + \alpha I) ^{-1} \Lambda P^T w^* \]

\[\tilde w = P(\Lambda + \alpha I)^{-1} \Lambda P^T w ^* \tag{11} \]

由上式可以得出,\(\tilde w_i = \frac{\lambda_i}{\lambda_i + \alpha} w_i^*\),即\(L_2\)正则化是在原最优解上作缩放。当\(\lambda_i \ll \alpha\),缩放效果会很明显。

参考

向量与矩阵的范数

拉普拉斯分布

深入理解L1、L2正则化

L1正则化及其推导

Ian Goodfellow, Yoshua Bengio and Aaron Courville. Deep Learning.

posted @ 2020-04-25 18:08  TABball  阅读(451)  评论(0编辑  收藏  举报