推导pca的降维损失_机器学习算法——PCA降维方法公式推导

451ee1e73e0112a2839ddb9d8fdffa3a.png

最近在学习一些降维方法,想从最基本的PCA开始复习。看了西瓜书上的推导公式后,觉得跳跃性有点大,可能是我本人数学较渣,有些公式的推导总是犯迷糊。所以想着把有些关键公式的推导过程记录下来,数学大佬可以不用看这篇文章了哈,哈哈哈哈哈哈开个玩笑哈。希望这些推导过程能对同样看到这一步有疑惑的同学有帮助。当然了,如果有同样对数学感兴趣,或者就是数学专业的朋友,请一定一定私信我,我真的对数学很感兴趣,我渴望找一位志同道合的朋友沟通问题。

好了,废话不多说了,直接看公式。

8fb0e3a15601e7114c570feedeb09b5e.png

其实就是这两步,包括上面投影坐标

equation?tex=Z_%7Bij%7D 与原始向量
equation?tex=%5Cchi_%7Bi%7D 的互换。此处我还得感谢另外一位数学专业的朋友,感谢她提供的帮助。下面我先附上她的推到手稿,感谢感谢。

a8228517693f53d79e4e0e549964f64f.png

下面我想就两处地方做重要解释。

1 投影向量与原始向量的互相转换

上文公式有:

equation?tex=z_%7Bij%7D+%3D+w_%7Bi%7D%5E%7B%5Ctau%7D%5Ccdot+x_%7Bi%7D++%EF%BC%881%EF%BC%89++

其中

equation?tex=z_%7Bij%7D 表示原始向量
equation?tex=x_%7Bi%7D 在低维坐标第j维上的投影的坐标,而样本点
equation?tex=x_%7Bi%7D在低维坐标系中的投影是
equation?tex=z_%7Bi%7D+%3D%5Cleft%5C%7B+z_%7Bi1%7D+%2C+z_%7Bi2%7D%2C+%5Ccdot%5Ccdot%5Ccdot%2C+z_%7Bid%7D%5Cright%5C%7D 。另外,我们也不难看到,
equation?tex=z_%7Bij%7D 其实就是一个常数,我们可以通过公式(1)就可以得到以下等式变换:

equation?tex=z_%7Bij%7D%3Dz_%7Bij%7D%5E%7B%5Ctau%7D%3D%5Cleft%28+w_%7Bj%7D%5E%7B%5Ctau%7D+%5Ccdot+x_%7Bi%7D+%5Cright%29%5E%7B%5Ctau%7D%3Dx_%7Bi%7D%5E%7B%5Ctau%7D+%5Ccdot+w_%7Bj%7D

也就有:

equation?tex=z_%7Bi%7D+%3D+w%5E%7B%5Ctau%7D+%5Ccdot+x_%7Bi%7D+%3D+x_%7Bi%7D%5E%7B%5Ctau%7D+%5Ccdot+w+%EF%BC%882%EF%BC%89

请各位一定要记住这个公式(2),它将会在后面的推导中发挥着重要的作用,很重要很重要。接下来我们要理解的就是如何通过投影

equation?tex=z_%7Bi%7D 以及基向量矩阵w来重构出原始向量
equation?tex=x_%7Bi%7D ,这一步我真的是卡了好久好久的时间了,我之前想的一直是能不能直接通过公式(1)来推导出书上所给的公式(3):

equation?tex=%5Ctilde%7Bx%7D_%7Bi%7D+%3D+%5Csum_%7Bj%3D1%7D%5E%7Bd%7D%7Bz_%7Bij%7D+%5Ccdot+w_%7Bj%7D%7D+%3D+w+%5Ccdot+z_%7Bi%7D+%EF%BC%883%EF%BC%89

我这儿会给出两种方法来解答。首先看以下这幅图片:

e82c544970523d0ac99b434c62727f22.png

这是很简单的向量加法,即:

equation?tex=c+%3D+a+%2B+b . 我们其实可以将向量a看作是原始向量c在x轴上的投影向量,同理,向量b看作是原始向量c在y轴上的投影向量。所以,我们可以得出结论:
原始向量等于所有低维坐标轴上投影向量之和。而
equation?tex=z_%7Bij%7D 表示原始向量
equation?tex=x_%7Bi%7D 在低维坐标第j维上的投影的坐标,又
equation?tex=w_%7Bi%7D又表示第j维上的基向量。所以
equation?tex=z_%7Bij%7D+%5Ccdot+w_%7Bj%7D 其实就是表示低维坐标第j维上的投影向量,故而我们得到公式(3).

另外一种方法是将公式(2)等式左右两边分别左乘基向量矩阵w,即:

equation?tex=w+%5Ccdot+z_%7Bi%7D+%3D+w+%5Ccdot+w%5E%7B%5Ctau%7D+%5Ccdot+x_%7Bi%7D+%3D+E+%5Ccdot+x_%7Bi%7D+%3D+x_%7Bi%7D+

好了,我们接着往下看。下面才是PCA方法的核心部分。PCA方法的核心是:原始样本点在一组基向量矩阵中表示的新样本应比较分散,即所有点之间的方差较大。书本上是求原始样本点

equation?tex=x_%7Bi%7D与基于投影重构的样本点
equation?tex=%5Ctilde%7Bx%7D_%7Bi%7D 之间的距离,可以表示为:

equation?tex=D+%3D+%5Csum_%7Bi%3D1%7D%5E%7Bm%7D%7B%5Cleft%7C+%5Csum_%7Bj%3D1%7D%5E%7Bd%7D%7Bz_%7Bij%7D+%5Ccdot+w_%7Bj%7D+-+x_%7Bi%7D%7D+%5Cright%7C_%7B2%7D%5E%7B2%7D%7D+%3D+%5Csum_%7Bi%3D1%7D%5E%7Bm%7D%7B%5Cleft%7C+%5Ctilde%7Bx%7D_%7Bi%7D+-+x_%7Bi%7D+%5Cright%7C_%7B2%7D%5E%7B2%7D%7D+%3D++%5Csum_%7Bi%3D1%7D%5E%7Bm%7D%7B%5Cleft%28+%5Ctilde%7Bx%7D_%7Bi%7D+-+x_%7Bi%7D+%5Cright%29%5E%7B%5Ctau%7D+%5Ccdot+%5Cleft%28+%5Ctilde%7Bx%7D_%7Bi%7D+-+x_%7Bi%7D+%5Cright%29%7D+

我们展开就是:

equation?tex=D+%3D+%5Csum_%7Bi%3D1%7D%5E%7Bm%7D%7B%5Cleft%28+%5Ctilde%7Bx%7D_%7Bi%7D%5E%7B%5Ctau%7D+%5Ccdot+%5Ctilde%7Bx%7D_%7Bi%7D+-+x_%7Bi%7D%5E%7B%5Ctau%7D+%5Ccdot+%5Ctilde%7Bx%7D_%7Bi%7D+-++%5Ctilde%7Bx%7D_%7Bi%7D%5E%7B%5Ctau%7D+%5Ccdot+x_%7Bi%7D+%2B+%7Bx%7D_%7Bi%7D%5E%7B%5Ctau%7D+%5Ccdot+x_%7Bi%7D%5Cright%29%7D+%EF%BC%884%EF%BC%89

好,每一项表示出来了,我们接下来只要把这里面的四个乘法公式给转换一下结果就出来了。

计算

equation?tex=%5Ctilde%7Bx%7D_%7Bi%7D%5E%7B%5Ctau%7D+%5Ccdot+%5Ctilde%7Bx%7D_%7Bi%7D 得借助公式(3),可得:

equation?tex=%5Ctilde%7Bx%7D_%7Bi%7D%5E%7B%5Ctau%7D+%5Ccdot+%5Ctilde%7Bx%7D_%7Bi%7D+%3D+%5Cleft%28+w+%5Ccdot+z_%7Bi%7D+%5Cright%29%5E%7B%5Ctau%7D+%5Ccdot+%5Cleft%28+w+%5Ccdot+z_%7Bi%7D+%5Cright%29+%3D+z_%7Bi%7D%5E%7B%5Ctau%7D+%5Ccdot+w%5E%7B%5Ctau%7D+%5Ccdot+w+%5Ccdot+z_%7Bi%7D+%3D+z_%7Bi%7D%5E%7B%5Ctau%7D+%5Ccdot+z_%7Bi%7D

易知:

equation?tex=x_%7Bi%7D%5E%7B%5Ctau%7D+%5Ccdot+%5Ctilde%7Bx%7D_%7Bi%7D+%EF%BC%8C++%5Ctilde%7Bx%7D_%7Bi%7D%5E%7B%5Ctau%7D+%5Ccdot+x_%7Bi%7D 这两个公式的结果为一常量,所以可知:

equation?tex=x_%7Bi%7D%5E%7B%5Ctau%7D+%5Ccdot+%5Ctilde%7Bx%7D_%7Bi%7D+%3D++%5Ctilde%7Bx%7D_%7Bi%7D%5E%7B%5Ctau%7D+%5Ccdot+x_%7Bi%7D+%3D+%5Cleft%28+w+%5Ccdot+z_%7Bi%7D+%5Cright%29%5E%7B%5Ctau%7D+%5Ccdot+x_%7Bi%7D+%3D+z_%7Bi%7D%5E%7B%5Ctau%7D+%5Ccdot+w%5E%7B%5Ctau%7D+%5Ccdot+x_%7Bi%7D+%EF%BC%885%EF%BC%89

equation?tex=%7Bx%7D_%7Bi%7D%5E%7B%5Ctau%7D+%5Ccdot+x_%7Bi%7D 也是一常量,书中所以用const常量来表示。

故原式可表示为:

equation?tex=D+%3D+%5Csum_%7Bi%3D1%7D%5E%7Bm%7D%7Bz_%7Bi%7D%5E%7B%5Ctau%7D+%5Ccdot+z_%7Bi%7D%7D+-+2%5Ccdot+%5Csum_%7Bi%3D1%7D%5E%7Bm%7D%7Bz_%7Bi%7D%5E%7B%5Ctau%7D%5Ccdot+w%5E%7B%5Ctau%7D+%5Ccdot+x_%7Bi%7D%7D+%2B+const+%EF%BC%886%EF%BC%89

我们要令方差最大,其实就是令D的值最大,也就是令

equation?tex=%5Csum_%7Bi%3D1%7D%5E%7Bm%7D%7Bz_%7Bi%7D%5E%7B%5Ctau%7D%5Ccdot+w%5E%7B%5Ctau%7D+%5Ccdot+x_%7Bi%7D%7D 的值最小。下面的转换过程我还是按照书本上的格式来,这里面也是借用了公式(2)的转换:

equation?tex=min+%5Csim+tr%5Cleft%28+%5Csum_%7Bi%3D1%7D%5E%7Bm%7D%7Bz_%7Bi%7D%5E%7B%5Ctau%7D%5Ccdot+w%5E%7B%5Ctau%7D+%5Ccdot+x_%7Bi%7D%7D+%5Cright%29+%3D+tr%5Cleft%28+%5Csum_%7Bi%3D1%7D%5E%7Bm%7D%7Bz_%7Bi%7D%5E%7B%5Ctau%7D%5Ccdot+z_%7Bi%7D%7D+%5Cright%29+%3D+tr%5Cleft%28+%5Csum_%7Bi%3D1%7D%5E%7Bm%7D%7B%5Cleft%28+x_%7Bi%7D%5E%7B%5Ctau%7D+%5Ccdot+w+%5Cright%29+%5E%7B%5Ctau%7D+%5Ccdot+%5Cleft%28+x_%7Bi%7D%5E%7B%5Ctau%7D+%5Ccdot+w+%5Cright%29%7D+%5Cright%29

所以最终可以表示为:

equation?tex=min%5Csim+tr%28w%5E%7B%5Ctau%7D+%5Ccdot+%5Csum_%7Bi%3D1%7D%5E%7Bm%7D%7Bx_%7Bi%7D+%5Ccdot+x_%7Bi%7D%5E%7B%5Ctau%7D+%5Ccdot+w%7D%29+%3D+tr%28w%5E%7B%5Ctau%7D+%5Ccdot+X+%5Ccdot+X%5E%7B%5Ctau%7D+%5Ccdot+w%29+%EF%BC%887%EF%BC%89

到这一步就很舒服了,后面的求解过程就很好理解了。我们要求的就是w基向量矩阵,其实发现它就是原始样本矩阵X的特征向量组合,至于原理什么的我就不讲啦,网上很多资料,我这里推荐一位博主的文章,写的很通俗易懂啦!:)其实是我写到这儿实在是不想写啦!!!最后附上我的手稿小小沉醉一下哈哈哈哈哈哈哈。

64c27385887225a858ae410f63dd450a.png

推导过程中如果有不对的地方还望不吝指出!!!


2019/12/4 补充

书上后面还给了拉格朗日乘子法来求最大值,这一步我以为我懂了,今天在推算的时候才发现还是不懂。于是今天查阅了一些资料才终于弄懂了,此处要着重感谢Datawhale公众号整理的文章,真的很详细,太棒了的一项工作。解释一下:这个不是我的公众号哈:)

关于拉格朗日乘子法的介绍,我看到了另一篇马同学写的文章,也是写的很棒,推荐给大家看,我就不班门弄斧了。

直接来构建拉格朗日函数,如下所示:

equation?tex=L%28w%2C+%5Ctheta%29+%3D+-tr%28w%5E%7B%5Ctau%7D+%5Ccdot+x+%5Ccdot+x%5E%7B%5Ctau%7D+%5Ccdot+w%29+%2B+tr%28%5Ctheta%5E%7B%5Ctau%7D+%5Ccdot+%28w%5E%7B%5Ctau%7D+%5Ccdot+w+-+I%29%29%EF%BC%8C%5Ctheta%5Cin+R%5E%7Bd%5Ctimes+d%7D+%EF%BC%881%EF%BC%89

其中,

equation?tex=%5Ctheta 为构建的拉格朗日乘子阵。若仅考虑约束
equation?tex=w_%7Bi%7D%5E%7B%5Ctau%7D+%5Ccdot+w_%7Bi%7D+%3D+I ,则可将矩阵
equation?tex=%5Ctheta 简化成向量
equation?tex=%5Clambda , 可表示为:
equation?tex=%5Clambda+%3D+%28%5Clambda_%7B1%7D%2C+%5Clambda_%7B2%7D%2C+%5Ccdot+%5Ccdot+%5Ccdot%2C+%5Clambda_%7Bd%7D%29 .

公式(1)则可以表示为:

equation?tex=L%28w%2C+%5Ctheta%29+%3D+-tr%28w%5E%7B%5Ctau%7D+%5Ccdot+x+%5Ccdot+x%5E%7B%5Ctau%7D+%5Ccdot+w%29+%2B+tr%28%5Clambda%5E%7B%5Ctau%7D+%5Ccdot+%28w%5E%7B%5Ctau%7D+%5Ccdot+w+-+I%29%29%EF%BC%882%EF%BC%89

接着拉格朗日函数对w求导可得:

equation?tex=%5Cfrac%7B%5Cdelta+L%28w%2C+%5Clambda%29%7D%7B%5Cdelta+w%7D+%3D+%5Cfrac%7B%5Cdelta%7D%7B%5Cdelta+w%7D+%5B-tr%28w%5E%7B%5Ctau%7D+%5Ccdot+x+%5Ccdot+x%5E%7B%5Ctau%7D+%5Ccdot+w%29%5D+%2B+%5Cfrac%7B%5Cdelta%7D%7B%5Cdelta+w%7D%5Btr%28%5Clambda%5E%7B%5Ctau%7D+%5Ccdot+%28w%5E%7B%5Ctau%7D+%5Ccdot+w+-+I%29%29%5D+%EF%BC%883%EF%BC%89

由公式(3)还可简化,因为

equation?tex=%5Clambda%EF%BC%8CI 这两个向量均与w无关,所以求导时直接去掉。

equation?tex=%5Cfrac%7B%5Cdelta+L%28w%2C+%5Clambda%29%7D%7B%5Cdelta+w%7D+%3D+%5Cfrac%7B%5Cdelta%7D%7B%5Cdelta+w%7D+%5B-tr%28w%5E%7B%5Ctau%7D+%5Ccdot+x+%5Ccdot+x%5E%7B%5Ctau%7D+%5Ccdot+w%29%5D+%2B+%5Cfrac%7B%5Cdelta%7D%7B%5Cdelta+w%7D%5Btr%28%5Clambda%5E%7B%5Ctau%7D+%5Ccdot+w%5E%7B%5Ctau%7D+%5Ccdot+w+%29%5D+%EF%BC%884%EF%BC%89

其实此处的难点是矩阵微分运算了,我们要把公式(4)内的两个表达式给化简。矩阵微分运算中有两步很常用的求导公式很实用。

equation?tex=%5Cfrac%7B%5Cdelta+X%5E%7B%5Ctau%7D+%5Ccdot+A+%5Ccdot+X%7D%7B%5Cdelta+X%7D+%3D+%28A+%2B+A%5E%7B%5Ctau%7D%29+%5Ccdot+X+++%EF%BC%885%EF%BC%89+

equation?tex=%5Cfrac%7B%5Cdelta+tr%28A+%5Ccdot+X%5E%7B%5Ctau%7D+%5Ccdot+X+%5Ccdot+C%29%7D%7B%5Cdelta+X%7D+%3D+C+%5Ccdot+A+%5Ccdot+X%5E%7B%5Ctau%7D+%2B+A%5E%7B%5Ctau%7D+%5Ccdot+C%5E%7B%5Ctau%7D+%5Ccdot+X%5E%7B%5Ctau%7D+%EF%BC%886%EF%BC%89

由公式(5)和(6)就可对公式(4)化简了,即:

equation?tex=%5Cfrac%7B%5Cdelta+L%28w%2C+%5Clambda%29%7D%7B%5Cdelta+w%7D+%3D-2+%5Ccdot+X+%5Ccdot+X%5E%7B%5Ctau%7D+%5Ccdot+w+%2B+w+%5Ccdot+%28%5Clambda+%2B+%5Clambda%5E%7B%5Ctau%7D%29+%3D+-2+%5Ccdot+X+%5Ccdot+X%5E%7B%5Ctau%7D+%5Ccdot+w+%2B+2+%5Ccdot+w+%5Ccdot+%5Clambda+%EF%BC%887%EF%BC%89

令公式(7)等于0,我们很容易得到以下不等式:

equation?tex=+X+%5Ccdot+X%5E%7B%5Ctau%7D+%5Ccdot+w+%3D+w+%5Ccdot+%5Clambda

将w和

equation?tex=%5Clambda 向量都拆开,即可得书本上的等式:

equation?tex=+X+%5Ccdot+X%5E%7B%5Ctau%7D+%5Ccdot+w_%7Bi%7D+%3D+%5Clambda+%5Ccdot+w_%7Bi%7D%EF%BC%8Ci%3D1%2C+2%2C+%5Ccdot%5Ccdot%5Ccdot%2C+d

以上证毕,最后还是要附上手稿小小得意以下,嘻嘻。

234a3992c8f0a1913a9a110ef38adcb8.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值