l1正则化的稀疏表示和l2正则化的协同表示

这些天一直在看稀疏表示和协同表示的相关论文,特此做一个记录:
这篇文章将主要讨论以下的问题:
1.稀疏表示是什么?
2.l1正则化对于稀疏表示的帮助是什么,l0,l1,l2,无穷范数的作用?
3.稀疏表示的robust为什么好?
4.l2正则化的协同表示是不是比稀疏表示更好?

好的,内容开始。

稀疏表示是什么?

稀疏表示的基本思想来自压缩感知,即我们能用最少的样本来代表测试数据。同时,更主要的源头来自:一个样本可以被其他同类样本线性表示
这里写图片描述
Naseem I, Togneri R, Bennamoun M. Linear regression for face recognition[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2010, 32(11):2106-2112.

那我们现在尝试一下,我们不单单是同类的训练样本来进行线性表示,而是用全部的训练样本来线性表示。
我们用公式化的语言表示出来就是:

y=αi,1vi,1+αi,2vi,2+...+αi,nivi,ni,(6) (6) y = α i , 1 v i , 1 + α i , 2 v i , 2 + . . . + α i , n i v i , n i ,

i表示第i类,n表示一共有n类
简化一下
A=[A1,A2,...,Ak]=[vi,1,vi,1,...,vk,nk](7) (7) A = [ A 1 , A 2 , . . . , A k ] = [ v i , 1 , v i , 1 , . . . , v k , n k ]

y=Ax0(8) (8) y = A x 0

所得到的向量x就是我们的稀疏表示的字典,根据我们上面提到的一个样本可以被其他同类样本线性表示。那么,其他不同类样本所对应字典里面的值应该为0。同时,根据我们压缩感知的原理,我们应该用更少的样本来代表测试样本,这就要我们所获得的字典 x0 x 0 中的值更可能多的为0,也就是更可能稀疏,这也就是我们稀疏表示的基本思想。
具体的算法流程为:
这里写图片描述

l1正则化对于稀疏表示的帮助是什么,l0,l1,l2,无穷范数的作用?

刚刚说到我们要让得到的稀疏表示的字典尽量多的值为0,那显然正则化的操作可以满足我们,要想所有值尽可能为0,最理想的肯定是L0正则化哦,我们先把目标函数写出:
这里写图片描述
为什么这里说明L0正则化湿最理想的约束方式,请看下面几张关于l0,l1,l2,无穷范数在几何上的表示:

这里写图片描述
From:https://www.zhihu.com/people/CharelsLiu/activities
这里的q的值就相当正则化的值,虽然这里没有说明q=0的情况,我相信有心的读者一定推断出来,在q=0的时候,绿线几乎靠近坐标系,当q接近正无穷的时候,绿线的范围就接近方形,再来一张随处都能找到的图:
这里写图片描述
橙色的范围就是的正则约束,圆圈就是我们的解空间,相交的地方就是我们的解,由于l0正则化的范围近乎在坐标轴上,相交得到的解就会近可能为0,所有所得的解是稀疏的,甚至能够得到人脸的pose,光照之类的关键维度。但是由于求解l_0正则化是一个NP-hard问题。所有一般不解l0正则化,我们通常用l1正则化来代替l0正则化,其实在上图也可以看到,l0正则化一般的到的点也大多在坐标系上,所以得到的解也是稀疏的。接下来,我们也用同样的公式将l1-norm表示出来:
这里写图片描述

稀疏表示的robust为什么好?

对于人脸识别问题来说,人脸图像出现遮挡或者噪音是一件很普通的时间。我们的稀疏表示则可以增加人脸识别算法的鲁棒性。
这里写图片描述
正如这张图所示,每张遮挡的人脸可以看做是原来的人脸的线性表示+遮挡的误差项,即用式子表示出来为:

y=y0+e0=Ax0+e0(9) (9) y = y 0 + e 0 = A x 0 + e 0

我们在原来的稀疏表示的基础上加入了误差项来解决我们遮挡和噪音问题,由于加入了误差项,我们的目标函数,以及我们的原来的矩阵都要进行修改,修改为:
y=[A,I][x0e0](10) (10) y = [ A , I ] [ x 0 e 0 ]

我们最后进行分类的残差项也要进行修改,修改得到的结果为:
这里写图片描述
有了误差项的帮助,我们的稀疏表示便能增加其的鲁棒性。
下面是一张在出现遮挡的情况选择对应训练集顶点的示意图:
这里写图片描述

l2正则化的协同表示是不是比稀疏表示更好?

关于l1正则化是不是稀疏表示效果好的主要原因,还是如果用l2正则化的效果会不会更好的讨论,主要来自这篇论文:
Sparse Representation or Collaborative Representation: Which Helps Face Recognition?
从实验的角度来说明了,即使我们使用了l2-norm的正则化的协同表示,在人脸的识别精度而言依旧不输于l1-norm的稀疏表示。其实,l1-norm正则化有两个主要的缺点:
一. l1-norm 所得到的字典必须是over-complete.这就要求我们的训练样本数量要尽可能的大。但是,在实际做人脸识别的时候,不具备这么完备的训练样本数据。
二. l1-norm过于严格,不够平滑。导致l1-norm往往只关注到了跟自己同类样本的相关性,但是却忽略了不同类样本的人脸数据的共性。
针对于问题一,由于同为人脸数据,即使为不同类的样本也具有共性,比如鼻子、眼睛等共性特征。在训练样本不够的情况下完全可以利用其他不同类样本的特征,也就是这就要求我们应该使用l2-norm更加平滑的约束来获取不同类样本的共性。
同时,由于l2-norm的目标函数如下:
这里写图片描述
这是一个明显的最小二乘问题,我们可以很快的得到解析解为:
这里写图片描述
我们可以完全采用相同准确率,并且计算复杂度更低的l2-norm

l2-norm的协同表示代码如下:
这里写图片描述

Reference:
Sparse Representation or Collaborative Representation: Which Helps Face Recognition?
Linear Regression for Face Recognition
Robust Face Recognition via Sparse Representation

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页