L1,L2正则化

Posted tabball

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了L1,L2正则化相关的知识,希望对你有一定的参考价值。

(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} eq 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}} ]

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

正则化

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

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

[ ilde{J}(w;X,y) = J(w; X,y) + alpha Omega(w) ]

(J)为原目标函数,(X,y)分别是数据输入和数据标签,(w)为权重,(alpha)系数用来控制在目标函数种惩罚项的比重,( ilde 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| ]

理论推导

实在抱歉由于我数学功底不够,还不能理解这一部分,暂且搁置,以后一定补??。?

参考

向量与矩阵的范数

拉普拉斯分布

深入理解L1、L2正则化

深入理解L1,L2正则化(Regularization)

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

以上是关于L1,L2正则化的主要内容,如果未能解决你的问题,请参考以下文章

L1正则化和L2正则化

L1/L2正则化方法

L1、L2正则化知识详解

L1,L2正则化本质

正则化项L1和L2

L1与L2正则化