机器学习笔记之主成分分析(PCA)

机器学习笔记之主成分分析(PCA)

主成分分析(principle components analysis ,PCA)是比较基础的机器学习算法,主要是通过保留数据的特征来进行编码与解码。
  假设在 R n \R^n Rn空间中有 m m m个点 { x ( 1 ) , x ( 2 ) , ⋯   , x ( m ) } \{x^{(1)},x^{(2)},\cdots,x^{(m)}\} {x(1),x(2),,x(m)},我们希望对这些点进行压缩。压缩的目的是我们可以使用更少的内存来储存这些数据,但是同时又希望压缩损失的信息(精度)尽可能少。
  编码这些点的一种方式就是使用低维表示。对于每个 x ( i ) ∈ R n x^{(i)}\in\R^n x(i)Rn,会有一个对应的编码向量 c ( i ) ∈ R l c^{(i)}\in\R^l c(i)Rl。如果 l l l n n n小,那么我们就可以使用更少的内存来储存数据。我们希望找到一个编码函数,根据输入返回编码, f ( x ) = c f(x)=c f(x)=c,同时我们也希望找到一个解码函数,给定编码能够重构输入, x ≈ ( f ( x ) ) x\approx(f(x)) x(f(x))
  具体来说,我们可以使用一个矩阵乘法将编码器映射回 R n \R^n Rn,即 g ( c ) = D c g(c)=Dc g(c)=Dc,其中 D ∈ R n × l D\in\R^{n\times l} DRn×l是定义解码的矩阵。但是这存在一个小问题,有可能存在多个解。因为如果我们按比例地缩小所有点对应的编码向量 c ( i ) c^{(i)} c(i),那么只需要按比例放大 D : i D_{:i} D:i,即可以保持结果不变。为了使问题有唯一解,我们限制 D D D中所有列向量都有单位范数。为了简化问题,PCA 限制 D D D的列向量彼此正交。
  那么我们如何选择一个根据每一个输入 x \boldsymbol x x得到最优编码 c ∗ \boldsymbol c^* c?一种最常见的方法就是最小化原始输入向量 x \boldsymbol x x和重构向量 g ( c ∗ ) g(\boldsymbol c^*) g(c)之间的距离,使用范数来衡量它们之间的距离。常用 L 2 L^2 L2范数,即 c ∗ = arg ⁡ min ⁡ c ∥ x − g ( c ∗ ) ∥ 2 \boldsymbol c^*=\arg \min\limits_c\|\boldsymbol x-g(\boldsymbol c^*)\|_2 c=argcminxg(c)2我们可以使用平方 L 2 L^2 L2范数替代 L 2 L^2 L2范数。因为二者在相同的值c上取得最小值。
c ∗ = arg ⁡ min ⁡ c ∥ x − g ( c ∗ ) ∥ 2 2 = arg ⁡ min ⁡ c ( x − g ( c ∗ ) T ( x − g ( c ∗ ) ) = arg ⁡ min ⁡ c x T x − x T g ( c ) − g ( c ) T x ⎵ 标量 + g ( c ) T g ( c ) = arg ⁡ min ⁡ c x T x ⎵ 与c无关 − 2 x T g ( c ) + g ( c ) T g ( c ) ⇒ arg ⁡ min ⁡ c − 2 x T g ( c ) + g ( c ) T g ( c ) = arg ⁡ min ⁡ c − 2 x T D c + c T D T D c = arg ⁡ min ⁡ c − 2 x T D c + c T I l c = − 2 x T D c + c T c \begin{aligned}\boldsymbol c^*&=\arg\min\limits_c\|\boldsymbol x-g(\boldsymbol c^*)\|_2^2=\arg\min\limits_c(\boldsymbol x-g(\boldsymbol c^*)^T(\boldsymbol x-g(\boldsymbol c^*))\\&=\arg\min\limits_c \boldsymbol x^T\boldsymbol x-\boldsymbol x^Tg(\boldsymbol c)-\underbrace{g(\boldsymbol c)^T\boldsymbol x}_{\text{标量}}+g(\boldsymbol c)^Tg(\boldsymbol c)\\&=\arg\min\limits_c\underbrace{\boldsymbol x^T\boldsymbol x}_{\text{与c无关}}-2\boldsymbol x^Tg(\boldsymbol c)+g(\boldsymbol c)^Tg(\boldsymbol c)\\&\Rightarrow\arg\min\limits_c-2\boldsymbol x^Tg(\boldsymbol c)+g(\boldsymbol c)^Tg(\boldsymbol c)\\&=\arg\min\limits_c-2\boldsymbol {x^TDc}+\boldsymbol c^TD^TD\boldsymbol c\\&=\arg\min\limits_c-2\boldsymbol {x^TDc}+\boldsymbol c^TI_l\boldsymbol c\\&=-2\boldsymbol {x^TDc}+\boldsymbol c^T\boldsymbol c\end{aligned} c=argcminxg(c)22=argcmin(xg(c)T(xg(c))=argcminxTxxTg(c)标量 g(c)Tx+g(c)Tg(c)=argcminc无关 xTx2xTg(c)+g(c)Tg(c)argcmin2xTg(c)+g(c)Tg(c)=argcmin2xTDc+cTDTDc=argcmin2xTDc+cTIlc=2xTDc+cTc c c c求导, ∇ ( − 2 x T D c + c T c ) = 0 ⇒ − 2 D T x + 2 c = 0 ⇒ c = D T x ∴ f ( x ) = D T x \nabla(-2\boldsymbol {x^TDc}+\boldsymbol c^T\boldsymbol c)=0\Rightarrow-2\boldsymbol D^Tx+2c=0\Rightarrow\boldsymbol c=\boldsymbol D^Tx\\\therefore f(x)=\boldsymbol D^Tx (2xTDc+cTc)=02DTx+2c=0c=DTxf(x)=DTx
进一步使用矩阵乘法,我们可以定义重构操作: r ( x ) = g ( f ( x ) ) = D D T x r(x)=g(f(x))=\boldsymbol{DD}^Tx r(x)=g(f(x))=DDTx,因为重构要求最小化所有维数和所有点上的误差矩阵的Frobenius范数: D ∗ = arg ⁡ min ⁡ D ∑ i , j ( x j ( i ) − r ( x ( i ) ) j ) 2 s u b j e c t t o D T D = I l \begin{aligned}&\boldsymbol D^*=\arg\min\limits_{D}\sqrt{\sum_{i,j}\Big(x_j^{(i)}-r(x^{(i)})_j\Big)^2}\\&subject\quad to\quad D^TD=I_l\end{aligned} D=argDmini,j(xj(i)r(x(i))j)2 subjecttoDTD=Il
为了简化推导,首先考虑 l = 1 l=1 l=1的情况。此时 D D D简化为一个单一向量 d d d,即 d ∗ = arg ⁡ min ⁡ d ∑ i ∥ x ( i ) − d d T x ( i ) ⎵ 标量 ∥ 2 2 = arg ⁡ min ⁡ d ∑ i ∥ x ( i ) − d T x ( i ) d ∥ 2 2 = a r g min ⁡ d ∑ i ∥ x ( i ) − x ( i ) T d d ∥ 2 2 s u b j e c t t o ∥ d ∥ 2 = 1 \begin{aligned}&\boldsymbol d^*=\arg\min\limits_d\sum_{i}\|\boldsymbol x^{(i)}-\boldsymbol d\underbrace{\boldsymbol d^T\boldsymbol x^{(i)}}_{\text{标量}}\|_2^2\\&=\arg\min\limits_d\sum_{i}\|\boldsymbol x^{(i)}-\boldsymbol d^T\boldsymbol x^{(i)}\boldsymbol d\|_2^2\\&=arg\min\limits_d\sum_{i}\|\boldsymbol x^{(i)}-\boldsymbol x^{(i)T}\boldsymbol d\boldsymbol d\|_2^2\\&subject\quad to\quad \|\boldsymbol d\|_2=1\end{aligned} d=argdminix(i)d标量 dTx(i)22=argdminix(i)dTx(i)d22=argdminix(i)x(i)Tdd22subjecttod2=1将各点的向量写成矩阵形式,记为 X ∈ R m × n X\in\R^{m\times n} XRm×n,其中 X I , : = x ( i ) T X_{I,:}=\boldsymbol x^{(i)T} XI,:=x(i)T
∴ d ∗ = arg ⁡ min ⁡ d ∥ X − X d d T ∥ F 2 , s u b j e c t t o d d T = 1 \therefore\boldsymbol d^*=\arg\min\limits_{d}\|\boldsymbol{X}-\boldsymbol{Xdd}^T\|_F^2,\quad subject\quad to\quad \boldsymbol{dd}^T=1 d=argdminXXddTF2subjecttoddT=1
又 ∵ ∥ A ∥ F = ∑ i , j A i , j 2 , T r ( A ) = ∑ i A i , i , ∥ A ∥ F = T r ( A A T ) 又\begin{aligned}\because\|A\|_F=\sqrt{\sum_{i,j}A^2_{i,j}},Tr(A)=\sum_{i}A_{i,i},\|A\|_F=\sqrt{Tr(AA^T)}\end{aligned} AF=i,jAi,j2 Tr(A)=iAi,i,AF=Tr(AAT)
∴ d ∗ = arg ⁡ min ⁡ d ∥ X − X d d T ∥ F 2 = arg ⁡ min ⁡ d T r ( ( X − X d d T ) T ( X − X d d T ) ) = arg ⁡ min ⁡ d T r ( X T X − X T X d d T − d d T X T X + d d T X T X d d T ) = arg ⁡ min ⁡ d T r ( X T X ⎵ 与 d 无 关 ) − T r ( X T X d d T ) − T r ( d d T X T X ) + T r ( d d T X T X d d T ) ⇒ arg ⁡ min ⁡ d − T r ( X T X d d T ) − T r ( d d T X T X ) + T r ( d d T X T X d d T ) = arg ⁡ min ⁡ d − 2 T r ( X T X d d T ) + + T r ( X T X d d T d ⎵ d T d = 1 d T ) = arg ⁡ min ⁡ d − T r ( X T X d d T ) = arg ⁡ max ⁡ d T r ( X T X d d T ) = arg ⁡ max ⁡ d T r ( d T X T X d ) \therefore\begin{aligned}\boldsymbol d^*&=\arg\min\limits_{d}\|\boldsymbol{X}-\boldsymbol{Xdd}^T\|_F^2=\arg\min\limits_{d}Tr\bigg(\Big(\boldsymbol{X}-\boldsymbol{Xdd}^T\Big)^T\Big(\boldsymbol{X}-\boldsymbol{Xdd}^T\Big)\bigg)\\&=\arg\min\limits_{d}Tr\Big(\boldsymbol{X^TX-X^TXdd^T-dd^TX^TX+dd^TX^TXdd^T}\Big)\\&=\arg\min\limits_{d}\underbrace{Tr\Big(\boldsymbol{X^TX}}_{与d无关}\Big)-Tr\Big(\boldsymbol{X^TXdd^T}\Big)-Tr\Big(\boldsymbol{dd^TX^TX}\Big)+Tr\Big(\boldsymbol{dd^TX^TXdd^T}\Big)\\&\Rightarrow\arg\min\limits_{d}-Tr\Big(\boldsymbol{X^TXdd^T}\Big)-Tr\Big(\boldsymbol{dd^TX^TX}\Big)+Tr\Big(\boldsymbol{dd^TX^TXdd^T}\Big)\\&=\arg\min\limits_{d}-2Tr\Big(\boldsymbol{X^TXdd^T}\Big)++Tr\Big(\boldsymbol{X^TXd\underbrace{d^Td}_{d^Td=1}d^T}\Big)\\&=\arg\min\limits_{d}-Tr(\boldsymbol{X^TXdd^T})=\arg\max\limits_{d}Tr(\boldsymbol{X^TXdd^T})\\&=\arg\max\limits_{d}Tr(\boldsymbol{d^TX^TXd})\end{aligned} d=argdminXXddTF2=argdminTr((XXddT)T(XXddT))=argdminTr(XTXXTXddTddTXTX+ddTXTXddT)=argdmind Tr(XTX)Tr(XTXddT)Tr(ddTXTX)+Tr(ddTXTXddT)argdminTr(XTXddT)Tr(ddTXTX)+Tr(ddTXTXddT)=argdmin2Tr(XTXddT)++Tr(XTXddTd=1 dTddT)=argdminTr(XTXddT)=argdmaxTr(XTXddT)=argdmaxTr(dTXTXd)
∴ \therefore 矩阵 X T X X^TX XTX的最大特征值所对应的特征向量就是 d \boldsymbol{d} d,同理可得矩阵D就是由前 l l l个最大的特征值所对应的特征向量构成。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值