A pure L1-norm principal component analysis

@

A pure L1-norm principal component analysis

虽然没有完全弄清楚其中的数学内涵,但是觉得有趣,记录一下.

问题

众所周知,一般的PCA(论文中以L2PCA表示)利用二范数构造损失函数并求解,但是有一个问题就是会对异常值非常敏感. 所以,已经有许多的PCA开始往1范数上靠了,不过我所知道的和这篇论文的有些不同.

像是Zou 06年的那篇SPCA中:
在这里插入图片描述
注意到,1作用在β上,以此来获得稀疏化.

这篇论文似乎有些不同,从回归的角度考虑, 一般的回归问题是最小化下列损失函数:

i=1n(yi(β0+βTxi))2.

为了减小异常值的影响,改用:

i=1n|yi(β0+βTxi)|.

而作者指出,上面的问题可以利用线性规划求解:
在这里插入图片描述
回到PCA上,我们希望找到一个方向,样本点到此方向上的1距离之和最短(可能理解有误的).

细节

L1PCA的损失函数

首先,假设输入的数据xiRm, 并构成数据矩阵XRn×m. 首先,作者希望找到一个m1维的子空间,而样本点到此子空间的1距离和最短. 在此之前,需要先讨论距离的计算.

在这里插入图片描述
从上图可以看到,一个点到一个超平面S1距离并不像普通的欧氏距离一样,实际上,可以这么定义点到子空间的距离:

d(x,S)=inf{xz|zS}.

假设超平面S由βTx=0刻画(假设其经过原点), 则:
首先,对于一个样本点xi, 选择一个j, 令yi=zi,i=, 而yj定义为(假设βj=0):

i=βixiβj

于是容易证明βTy=0, 也就是yS.

下面证明, 如果这个j使得|βj||βi|,i=, 那么|xy|就是x1距离. 首先证明,在只改变一个坐标的情况下是最小的, 此时:

|xy|=|xj+i=βixiβj|=|iβixiβj|=|βTx||βj|.

因为分子是固定的,所以分母越大的距离越短,所以在只改变一个坐标的情况下是如此,下面再利用数学归纳法证明,如果距离最短,那么必须至多只有一个坐标被改变.
m=2的时候容易证明,假设m=k1的时候已经成立,证明m=k也成立:
如果x,y已经存在一个坐标相同,那么根据前面的假设可以推得m=k成立,所以x,y必须每个坐标都完全不同. 不失一般性,选取β1,β2,且假设均不为0, 且|β1||β2|.
y1=x1,y2=y2β1(x1y1)β2,其余部分于y保持相同.则距离产生变化的部分为:

|x1y1|+|x2y2|=|y2x2β1(x1y1)β2||y2x2|+|x1y1|

所以,新的y有一个坐标相同,而且距离更短了,所以m=k也成立.

所以,我们的工作只需要找到最大|βj|所对应的j即可.

所以,我们的损失函数为:

i|βTxi||βj|.

因为比例的关系,我们可以让βj=1而结果不变:

i|xijk=βkxik|.

xij看成是y,那么上面就变成了一个1回归问题了. 当然我们并不知道j,所以需要进行m次运算,来找到j使得损失函数最小. 这样,我们就找到了一个m1维的子空间.

算法如下:
在这里插入图片描述

L1PCA算法

在这里插入图片描述

因为PCA的目的是寻找一个方向,而不是一个子空间,所以需要不断重复寻找子空间的操作,这个地方我没怎么弄懂,不知是否是这样:

  1. 找到了一个子空间
  2. 将数据点投影到子空间上
  3. 寻找新的坐标系,则数据会从k-->k1
  4. 在新的数据中重复上面的操作直至k=1.

有几个问题:

投影

对应算法的第4步,其中
在这里插入图片描述
需要一提的是,这里应该是作者的笔误,应当为:

(Ijj)m=βm,=,

理由有二:

首先,投影,那么至少要满足投影后的应当在子空间中才行,以3维样本为例:x=(x1,x2,x3)T,j=2,
按照修改后的为:

z=(x1,β1x1+β3x3,x3)

于是βTz=0, 而按照原先则不成立,
其次,再后续作者给出的例子中也可以发现,作者实际上也是按照修改后的公式进行计算的.

另外,提出一点对于这个投影方式的质疑. 因为找不到其理论部分,所以猜想作者是想按照1的方式进行投影,但是正如之前讲的,1的最短距离的投影是要选择|βj|最大的j,而之前选择的j并不能保证这一点.

坐标系

论文中也有这么一段话.

在这里插入图片描述

既然1范数不具备旋转不变性,那么如何保证这种坐标系的选择是合适的呢,还有,这似乎也说明,我们最后选出来的方向应该不是全局最优的吧.

载荷向量

αk是第k个子空间的载荷向量,所以,所以和SPCA很大的一个区别是它并不是稀疏的.
另外,它还有一个性质,和由Vk张成的子空间正交,这点很好证明,因为Zkβ=0.

总的来说,我觉得这个思想还是蛮有意思的,但是总觉得缺乏一点合理的解释,想当然的感觉...

posted @   馒头and花卷  阅读(251)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示