理解L1与L2正则化

需要最小化的总的误差函数为 E D ( w ) + λ E W ( w ) E_{D}(w)+\lambda E_{W}(w) 前面的一项是我们一般所说的损失函数,后一项是正则化项。一般有

  1. L1正则化: E W ( w ) = w 1 E_{W}(w)=||w||_{1}
  2. L2正则化: E W ( w ) = w 2 2 E_{W}(w)=||w||_{2}^{2}

首先我们考虑这样一个问题: m i n i = 1 N ( t i w T x i ) 2 min \sum_{i=1}^{N}(t_{i}-w^{T}x_{i})^{2} s . t . w 1 m s.t. ||w||_{1}\leq m 这是一个带约束条件的最优化问题,解空间被限制在以原点为中心旋转了45度的正方形中。转换为拉格朗日函数 i = 1 N ( t i w T x i ) 2 + λ ( w 1 m ) \sum_{i=1}^{N}(t_{i}-w^{T}x_{i})^{2}+\lambda (||w||_{1}-m) 这就对应于带L1正则化的总误差函数。解空间是一个多边形,所以与等高线更容易在尖角出碰撞出稀疏解。同理可知L2的解空间是一个圆形。

也可以用贝叶斯理论来解释
先了解一个概念:实际上,我们可以区分出三种解决回归问题的方法,按照复杂度降低的顺序,依次为:

  1. 首先解决确定联合概率密度 p ( t , x ) p(t,x) 的推断问题**(生成模型)**。之后计算条件概率密度 p ( t x ) p(t|x) ,最后使用 t p ( t x ) d t \int tp(t|x)dt 求出条件均值 E t [ t x ] E_{t}[t|x]
  2. 首先解决确定条件概率密度 p ( t x ) p(t|x) (判别模型),使用 t p ( t x ) d t \int tp(t|x)dt 求出条件均值 E t [ t x ] E_{t}[t|x]
  3. 直接从训练数据中寻找一个回归函数 y ( x ) y(x)

我们一般都是用判别模型(K近邻、SVM、决策树、感知机、线性判别分析(LDA)、线性回归、传统的神经网络、逻辑斯蒂回归、boosting)也就是对 p ( t w ) p(t|w) 取似然函数进行建模(寻找模型参数的最小平方法代表了最大似然的一种特殊情形),而过拟合问题是最大似然的一个通固有问题。因为最大似然方法求解的永远都是现有的样本数据下概率最大的模型参数值(例如多项式拟合情况)。而当我们加入正则项后就能有效地控制模型的复杂度,加入L2正则项我们可以称呼为岭回归,L1称为 Lasso回归,在神经网络中又被称为权重衰减。
我们现在再来对联合概率密度取对数 l n p ( w , t ) = l n p ( t w ) + l n p ( w ) \mathrm{ln}p(w,t)=\mathrm{ln}p(t|w)+\mathrm{ln}p(w) l n p ( t w ) \mathrm{ln}p(t|w) 我们已经很熟悉了。那么对数先验概率 l n p ( w ) \mathrm{ln}p(w) 有什么用处呢。贝叶斯理论的一大特性就是根据已有的经验和知识推断一个先验概率,这个先验概率就是起到了限制模型复杂度正则化的作用。例如假设先验概率符合正态分布(为了方便表示只用了一个参数w)即 p ( w ) = N ( 0 , 1 ) p(w)=N(0,1) ,那么 l n p ( w ) = a w 2 + b \mathrm{ln}p(w)=a|w|^{2}+b 就对应于L2正则项。那么L1正则项的先验分布呢,逆推 l n p ( w ) = w + c \mathrm{ln}p(w)=|w|+c 得到先验分布是一个拉普拉斯分布 p ( x ) = e x p ( w / λ ) 2 λ p(x)=\frac{exp(-|w|/ \lambda) }{2\lambda}
对比拉普拉斯分布和高斯分布曲线后,我们发现拉普拉斯分布在0处的概率更大。

猜你喜欢

转载自blog.csdn.net/Neekity/article/details/87891395