[数学基础]线性代数
学习内容源于深度之眼公众号的花书训练营课程
1. 从特殊矩阵的对角化到矩阵压缩
假设 BBB 是一个方阵,如果存在一个单位正交矩阵 PPP 使得 A=PBP−1A = PBP^{-1}A=PBP−1 ,其中 AAA 是一个对角阵,则称 AAA 是 BBB 的对角化。单位正交矩阵 PPP 有这么一个性质:PPT=PTP=IPP^{T}=P^{T}P=IPPT=PTP=I ,再结合逆矩阵的性质可知 PT=P−1P^T=P^{-1}PT=P−1 ,从而有
B=P−1AP=PTAP
B=P^{-1}AP=P^TAP
B=P−1AP=PTAP
然而并不是所有的方阵都可以进行对角化的,根据定理可知,对称矩阵一定可以对角化,其中如果是对称正定矩阵则对角阵 AAA 的元素 λi\lambda_iλi 均为正数。
我们令单位正交矩阵 PT=[u1,u2,⋯ ,un]P^T = [\boldsymbol{ u_1,u_2,\cdots,u_n}]PT=[u1,u2,⋯,un] ,其中 ui\boldsymbol{u_i}ui 是一个 nnn 维的列向量,则 BBB 可以这样表示
B=[u1,u2,⋯ ,un][λ1λ2⋱λn][u1Tu2T⋮unT]=[λ1u1,λ2u2,⋯ ,λnun][u1Tu2T⋮unT]=λ1u1u1T+λ2u2u2T+⋯+λnununT
\begin{aligned}
B &= [\boldsymbol{ u_1,u_2,\cdots,u_n}]
\begin{bmatrix}
\lambda_1& & & \\
&\lambda_2 & &\\
& & \ddots & \\
& & & \lambda_n
\end{bmatrix}
\begin{bmatrix}
\boldsymbol{u_1}^T \\
\boldsymbol{u_2}^T\\
\vdots \\
\boldsymbol{u_n}^T
\end{bmatrix} \\
& = [\lambda_1\boldsymbol{u_1},\lambda_2\boldsymbol{u_2},\cdots,\lambda_n\boldsymbol{u_n}]
\begin{bmatrix}
\boldsymbol{u_1}^T \\
\boldsymbol{u_2}^T\\
\vdots \\
\boldsymbol{u_n}^T
\end{bmatrix} \\
& = \lambda_1\boldsymbol{u_1}\boldsymbol{u_1}^T + \lambda_2\boldsymbol{u_2}\boldsymbol{u_2}^T + \cdots + \lambda_n\boldsymbol{u_n}\boldsymbol{u_n}^T
\end{aligned}
B=[u1,u2,⋯,un]⎣⎢⎢⎡λ1λ2⋱λn⎦⎥⎥⎤⎣⎢⎢⎢⎡u1Tu2T⋮unT⎦⎥⎥⎥⎤=[λ1u1,λ2u2,⋯,λnun]⎣⎢⎢⎢⎡u1Tu2T⋮unT⎦⎥⎥⎥⎤=λ1u1u1T+λ2u2u2T+⋯+λnununT
其中,uiuiT\boldsymbol{u_i}\boldsymbol{u_i}^TuiuiT 是一个 n×nn \times nn×n 的矩阵。因此矩阵 BBB 可以看作是 nnn 个特别矩阵的加权和。根据存储条件或者误差限可以适当的进行近似替代,将对角阵 AAA 的元素 λi\lambda_iλi 进行降序排列,取前几项的和去近似矩阵 BBB ,λi\lambda_iλi 在这里就是信息占比权重,比如,取前 kkk 个 λ\lambdaλ 做矩阵 BBB 的近似:
B^=λ1u1u1T+λ2u2u2T+⋯+λnukukT
\hat{B} = \lambda_1\boldsymbol{u_1}\boldsymbol{u_1}^T + \lambda_2\boldsymbol{u_2}\boldsymbol{u_2}^T + \cdots + \lambda_n\boldsymbol{u_k}\boldsymbol{u_k}^T
B^=λ1u1u1T+λ2u2u2T+⋯+λnukukT
此时矩阵 B^\hat{B}B^ 包含了 BBB 的信息的 η=∑i=1kλi∑i=1nλi\eta = \frac{\displaystyle \sum_{i=1}^k\lambda_i}{\displaystyle \sum_{i=1}^n\lambda_i}η=i=1∑nλii=1∑kλi 。这个过程就是矩阵压缩的技术。
2. 从特殊矩阵的分解到一般矩阵的SVD分解
矩阵对角化的条件还是蛮苛刻的,必须满足两个条件:方阵以及对称。可见一般情况下一个矩阵 Am×nA_{m\times n}Am×n 是不能进行对角化的。那么有没有其他的分解方法呢?
对于任意一个矩阵 Am×nA_{m \times n}Am×n ,我们可以推导出 (ATA)n×n(A^TA)_{n\times n}(ATA)n×n 是一个对称半正定矩阵。
对称性:
(ATA)T=AT(AT)T=ATA(A^TA)^T=A^T(A^T)^T=A^TA(ATA)T=AT(AT)T=ATA
半正定性:
∀x∈Rn,xT(ATA)x=(xTAT)(Ax)=(Ax)T(Ax)≥0\forall {\boldsymbol x} \in \R^n,{\boldsymbol x}^T(A^TA){\boldsymbol x} = ({\boldsymbol x}^TA^T)(A{\boldsymbol x})=(A{\boldsymbol x})^T(A\boldsymbol x)\ge0∀x∈Rn,xT(ATA)x=(xTAT)(Ax)=(Ax)T(Ax)≥0
同理,可知 (AAT)m×m(AA^T)_{m\times m}(AAT)m×m 也是一个对称半正定矩阵。因此两者都可以对角化:
ATA=UTD1UAAT=VTD2V
\begin{aligned}
A^TA = U^TD_1U\\
AA^T = V^TD_2V
\end{aligned}
ATA=UTD1UAAT=VTD2V
其中,U∈Rn×n,V∈Rm×mU \in \R^{n\times n},V \in \R^{m\times m}U∈Rn×n,V∈Rm×m 都是单位正交矩阵,D1∈Rn×n,D2∈Rm×mD_1\in \R^{n\times n},D_2 \in \R^{m\times m}D1∈Rn×n,D2∈Rm×m 都是对角矩阵,而且 D1,D2D_1,D_2D1,D2 对角线上的非零元素是一样的。不妨设 D1,D2D_1,D_2D1,D2 对角线上的非零元素为前 kkk 个,分别为 λ1,λ2,⋯ ,λk\lambda_1,\lambda_2,\cdots,\lambda_kλ1,λ2,⋯,λk 。
则矩阵 Am×nA_{m\times n}Am×n 的SVD分解为以下形式:
Am×n=Vm×mT[λ112λ212⋱λk120⋱]m×nUn×n
A_{m\times n} = V^T_{m\times m}
\begin{bmatrix}
\lambda_1^{\frac{1}{2}} & & & \\
& \lambda_2^{\frac{1}{2}} & & \\
& & \ddots & \\
& & & \lambda_k^{\frac{1}{2}} \\
& & & & 0 \\
& & & & & \ddots
\end{bmatrix}_{m\times n}
U_{n\times n}
Am×n=Vm×mT⎣⎢⎢⎢⎢⎢⎢⎢⎡λ121λ221⋱λk210⋱⎦⎥⎥⎥⎥⎥⎥⎥⎤m×nUn×n
令 VT=[v1,v2,⋯ ,vm],vi∈Rm.UT=[u1,u2,⋯ ,un],ui∈RnV^T = [\boldsymbol {v_1,v_2,\cdots,v_m}],{\boldsymbol v_i}\in \R^m.U^T =[\boldsymbol {u_1,u_2,\cdots,u_n}],{\boldsymbol u_i} \in \R^nVT=[v1,v2,⋯,vm],vi∈Rm.UT=[u1,u2,⋯,un],ui∈Rn ,有
Am×n=[v1,v2,⋯ ,vm][λ112λ212⋱λk120⋱][u1Tu2T⋮unT]=[λ112v1,λ212v2,⋯ ,λk12vk,0,⋯ ,0][u1Tu2T⋮unT]=λ112v1u1T+λ212v2u2T+⋯+λk12vkukT
\begin{aligned}
A_{m\times n} &=
[\boldsymbol {v_1,v_2,\cdots,v_m}]
\begin{bmatrix}
\lambda_1^{\frac{1}{2}} & & & \\
& \lambda_2^{\frac{1}{2}} & & \\
& & \ddots & \\
& & & \lambda_k^{\frac{1}{2}} \\
& & & & 0 \\
& & & & & \ddots
\end{bmatrix}
\begin{bmatrix}
\boldsymbol{u_1}^T \\
\boldsymbol{u_2}^T \\
\vdots \\
\boldsymbol{u_n}^T \\
\end{bmatrix}\\
&= [\lambda_1^{\frac{1}{2}} {\boldsymbol v_1},\lambda_2^{\frac{1}{2}} {\boldsymbol v_2},\cdots,\lambda_k^{\frac{1}{2}} {\boldsymbol v_k},0,\cdots,0]
\begin{bmatrix}
\boldsymbol{u_1}^T \\
\boldsymbol{u_2}^T \\
\vdots \\
\boldsymbol{u_n}^T \\
\end{bmatrix}\\
&= \lambda_1^{\frac{1}{2}} {\boldsymbol v_1} \boldsymbol{u_1}^T + \lambda_2^{\frac{1}{2}} {\boldsymbol v_2} \boldsymbol{u_2}^T + \cdots +\lambda_k^{\frac{1}{2}} {\boldsymbol v_k} \boldsymbol{u_k}^T
\end{aligned}
Am×n=[v1,v2,⋯,vm]⎣⎢⎢⎢⎢⎢⎢⎢⎡λ121λ221⋱λk210⋱⎦⎥⎥⎥⎥⎥⎥⎥⎤⎣⎢⎢⎢⎡u1Tu2T⋮unT⎦⎥⎥⎥⎤=[λ121v1,λ221v2,⋯,λk21vk,0,⋯,0]⎣⎢⎢⎢⎡u1Tu2T⋮unT⎦⎥⎥⎥⎤=λ121v1u1T+λ221v2u2T+⋯+λk21vkukT
对于矩阵 Am×nA_{m\times n}Am×n 的存储需要 (m+n+1)×k(m+n+1)\times k(m+n+1)×k 个参数。如若想要在一定的存储条件和误差限范围内进行存前 ppp 项近似,则误差为
Error=1−∑i=1pλi∑i=1min(m,n)λi
Error= 1 -\frac{\displaystyle \sum_{i=1}^p\lambda_i}{\displaystyle \sum_{i=1}^{min(m,n)}\lambda_i}
Error=1−i=1∑min(m,n)λii=1∑pλi
3. 从逆矩阵到最小二乘法再到伪逆矩阵和最小范数
背景来源:
已知向量 x1,x2,⋯ ,xN,xi∈Rn{\boldsymbol x_1},{\boldsymbol x_2},\cdots,{\boldsymbol x_N},{\boldsymbol x_i} \in\R^nx1,x2,⋯,xN,xi∈Rn 和 y1,y2,⋯ ,yN,yi∈R1{\boldsymbol y_1},{\boldsymbol y_2},\cdots,{\boldsymbol y_N},{\boldsymbol y_i} \in \R^1y1,y2,⋯,yN,yi∈R1 ,有线性方程组
[y1y2⋮yN]=[x11x12⋯x1nx21x22⋯x2n⋮⋮⋱⋮xN1xN2⋯xNn][a1a2⋮an]
\begin{aligned}
\begin{bmatrix}
{\boldsymbol y_1} \\
{\boldsymbol y_2} \\
\vdots \\
{\boldsymbol y_N}
\end{bmatrix}=
\begin{bmatrix}
x_{11} & x_{12} & \cdots &x_{1n} \\
x_{21} & x_{22} & \cdots &x_{2n} \\
\vdots & \vdots & \ddots &\vdots \\
x_{N1} & x_{N2} & \cdots &x_{Nn} \\
\end{bmatrix}
\begin{bmatrix}
{a_1} \\
{a_2} \\
\vdots \\
{a_n}
\end{bmatrix}
\end{aligned}
⎣⎢⎢⎢⎡y1y2⋮yN⎦⎥⎥⎥⎤=⎣⎢⎢⎢⎡x11x21⋮xN1x12x22⋮xN2⋯⋯⋱⋯x1nx2n⋮xNn⎦⎥⎥⎥⎤⎣⎢⎢⎢⎡a1a2⋮an⎦⎥⎥⎥⎤
待求 a=[a1,a2,⋯ ,an]T{\boldsymbol a} = [a_1,a_2,\cdots,a_n]^Ta=[a1,a2,⋯,an]T 。用矩阵形式表示为
XN×nan×1=yN×1
X_{N \times n} {\boldsymbol a}_{n\times1} = {\boldsymbol y}_{N\times1}
XN×nan×1=yN×1
如果上式中 N=nN=nN=n 并且 XXX 可逆,则有唯一解
a=X−1y
{\boldsymbol a} = X^{-1}{\boldsymbol y}
a=X−1y
但是上述求解的条件也是很苛刻,因为可逆这个条件使得矩阵 XXX 必须是方阵,即需要数据的个数和数据的维度相等,并且还得满足其正定性。
一般情况下 N≠nN \neq nN=n ,因此公式(5)(5)(5) 难以直接求精确解,但是我们可以求取它的近似解,使得近似解尽可能地接近精确解。即
mina∣∣Xa−y∣∣2
\min_a ||X {\boldsymbol a} - {\boldsymbol y}||^2
amin∣∣Xa−y∣∣2
令
J=∣∣Xa−y∣∣2=(Xa−y)T(Xa−y)=(aTXT−yT)(Xa−y)=aTXTXa−aTXTy−yTXa+yTy=aTXTXa−2yTXa+yTy
\begin{aligned}
J &=||X {\boldsymbol a} - {\boldsymbol y}||^2 \\
&= (X {\boldsymbol a} - {\boldsymbol y})^T(X {\boldsymbol a} - {\boldsymbol y})\\
&= ({\boldsymbol a}^TX^T-{\boldsymbol y^T})(X {\boldsymbol a} - {\boldsymbol y})\\
&= {\boldsymbol a}^TX^TX{\boldsymbol a} - {\boldsymbol a}^TX^T {\boldsymbol y} - {\boldsymbol y}^T X {\boldsymbol a} + {\boldsymbol y}^T{\boldsymbol y} \\
& = {\boldsymbol a}^TX^TX{\boldsymbol a} - 2{\boldsymbol y}^T X {\boldsymbol a} + {\boldsymbol y}^T{\boldsymbol y}
\end{aligned}
J=∣∣Xa−y∣∣2=(Xa−y)T(Xa−y)=(aTXT−yT)(Xa−y)=aTXTXa−aTXTy−yTXa+yTy=aTXTXa−2yTXa+yTy
其极小值需要满足一个必要条件
∂J∂a=02XTXa−2XTy=0XTXa=XTy
\begin{aligned}
\frac{\partial J}{\partial {\boldsymbol a}} &= 0 \\
2 X^TX{\boldsymbol a} -2X^T{\boldsymbol y} &= 0 \\
X^TX{\boldsymbol a} &= X^T{\boldsymbol y} \\
\end{aligned}
∂a∂J2XTXa−2XTyXTXa=0=0=XTy
这个时候有一个问题出现了, XTXX^TXXTX 可逆吗?尽管我们知道 XTXX^TXXTX 是一个对称半正定矩阵,但他并不能保证一定是可逆的,因此需要分情况讨论。
-
当 N>nN>nN>n 时
此时 (XTX)(X^TX)(XTX) 是一个 n×n{n \times n}n×n 的矩阵,一般情况下它是可逆的,因此有
a=(XTX)−1XTy {\boldsymbol a} = (X^TX)^{-1}X^T{\boldsymbol y} a=(XTX)−1XTy
其中 (XTX)−1XT(X^TX)^{-1}X^T(XTX)−1XT 被称为 XXX 的伪逆。这个时候公式(8)(8)(8) 就被称为最小二乘法。 -
当 N<nN< nN<n 时
此时 (XTX)(X^TX)(XTX) 是一个 n×n{n \times n}n×n 的矩阵,由于 R(XTX)≤R(X)≤NR(X^TX)\le R(X) \le NR(XTX)≤R(X)≤N 进而 R(XTX)≠nR(X^TX)\neq nR(XTX)=n 因此它是不可逆的。
当遇见第2种情况时,我们该怎么办呢?这里给大家提供一种正则化的方法,即令
J=∣∣Xa−y∣∣2+λ∣∣a∣∣2=(Xa−y)T(Xa−y)+λaTa=(aTXT−yT)(Xa−y)+λaTa=aTXTXa−aTXTy−yTXa+yTy+λaTa=aTXTXa−2yTXa+yTy+λaTa \begin{aligned} J &=||X {\boldsymbol a} - {\boldsymbol y}||^2 + \lambda|| {\boldsymbol a}||^2\\ &= (X {\boldsymbol a} - {\boldsymbol y})^T(X {\boldsymbol a} - {\boldsymbol y}) + \lambda {\boldsymbol a}^T {\boldsymbol a}\\ &= ({\boldsymbol a}^TX^T-{\boldsymbol y^T})(X {\boldsymbol a} - {\boldsymbol y}) + \lambda {\boldsymbol a}^T {\boldsymbol a} \\ &= {\boldsymbol a}^TX^TX{\boldsymbol a} - {\boldsymbol a}^TX^T {\boldsymbol y} - {\boldsymbol y}^T X {\boldsymbol a} + {\boldsymbol y}^T{\boldsymbol y} + \lambda {\boldsymbol a}^T {\boldsymbol a} \\ & = {\boldsymbol a}^TX^TX{\boldsymbol a} - 2{\boldsymbol y}^T X {\boldsymbol a} + {\boldsymbol y}^T{\boldsymbol y} + \lambda {\boldsymbol a}^T {\boldsymbol a} \end{aligned} J=∣∣Xa−y∣∣2+λ∣∣a∣∣2=(Xa−y)T(Xa−y)+λaTa=(aTXT−yT)(Xa−y)+λaTa=aTXTXa−aTXTy−yTXa+yTy+λaTa=aTXTXa−2yTXa+yTy+λaTa
此时再令
∂J∂a=02XTXa−2XTy+λa=0XTXa+λa=XTy(XTX+λI)a=XTy \begin{aligned} \frac{\partial J}{\partial {\boldsymbol a}} &= 0 \\ 2 X^TX{\boldsymbol a} -2X^T{\boldsymbol y} + \lambda {\boldsymbol a}&= 0 \\ X^TX{\boldsymbol a} + \lambda {\boldsymbol a} &= X^T{\boldsymbol y} \\ (X^TX+\lambda I){\boldsymbol a} &= X^T {\boldsymbol y}\\ \end{aligned} ∂a∂J2XTXa−2XTy+λaXTXa+λa(XTX+λI)a=0=0=XTy=XTy
在上面的式子里,(XTX+λI)(X^TX+\lambda I)(XTX+λI) 一定是可逆的。∀y∈Rn,y≠0\forall {\boldsymbol y} \in \R^n,{\boldsymbol y}\neq {\boldsymbol 0}∀y∈Rn,y=0 ,有
yT(XTX+λI)y=yTXTXy+λyTy=(Xy)T(Xy)+λyTy=∣∣Xy∣∣2+λ∣∣y∣∣2>0 \begin{aligned} {\boldsymbol y}^T(X^TX+\lambda I){\boldsymbol y} &={\boldsymbol y}^TX^TX{\boldsymbol y} + \lambda {\boldsymbol y}^T{\boldsymbol y}\\ &=(X{\boldsymbol y})^T(X{\boldsymbol y}) + \lambda {\boldsymbol y}^T{\boldsymbol y} \\ &= ||X{\boldsymbol y}||^2+\lambda ||{\boldsymbol y}||^2 > 0 \end{aligned} yT(XTX+λI)y=yTXTXy+λyTy=(Xy)T(Xy)+λyTy=∣∣Xy∣∣2+λ∣∣y∣∣2>0
因此(XTX+λI)(X^TX+\lambda I)(XTX+λI) 是对称正定的,所以可逆。因此有
a=(XTX+λI)−1XTy {\boldsymbol a} = (X^TX+\lambda I)^{-1} X^T {\boldsymbol y} a=(XTX+λI)−1XTy
这种求解方法称之为最小范数法,也是机器学习中的岭回归。
4. PCA原理和推导
原理
PCA实质上还是一种数据压缩的技术,如上图所示,已知 NNN 个样本点(‘+’标记),每一个样本点需要两个参数来表述,那么所有样本点共需要 2∗N2*N2∗N 个参数。现在我们想找一个方向如图中 u⃗\vec{u}u ,使得每一个样本点向这个方向做投影,使得 u⃗\vec{u}u 成为新的坐标轴,此时样本点在新坐标轴上的位置只需要一个参数就可以表示,那么所有投影点共需要 N+2N+2N+2 个参数来表示,从而达到了数据降维的目的。
但是这种用投影点替代真实样本点的方法,必然会带来误差,也就是A和A’之间的距离。因此我们需要找到一个投影方向,使得所有样本点与投影点之间的误差和最小,即最小重构误差。
做PCA前,需要将样本进行中心化操作,这样可以使得误差更小。
推导
首先我们需要知道一个原始点与投影点之间的误差是多少?如图所示,假定 ∣∣u⃗∣∣=1||\vec{u}||=1∣∣u∣∣=1 ,已知有一点 x⃗\vec{x}x ,在未知的 u⃗\vec{u}u 方向上的投影点为 <x⃗,u⃗>u⃗<\vec{x},\vec{u}>\vec{u}<x,u>u ,此时误差为
E=x⃗−<x⃗,u⃗>u⃗=x−(xTu)u
\begin{aligned}
E &= \vec{x} - <\vec{x},\vec{u}>\vec{u}\\
&= x - (x^Tu)u
\end{aligned}
E=x−<x,u>u=x−(xTu)u
其中,x,u∈Rn,且uTu=1x,u\in \R^n,且u^Tu=1x,u∈Rn,且uTu=1
我们的目的就是求取误差 JJJ 取最小值时的 u⃗\vec{u}u,即
minu⃗∣∣E∣∣2=∣∣x−(xTu)u∣∣2=[x−(xTu)u]T[x−(xTu)u]=[xT−(xTu)uT][x−(xTu)u]=xTx−(xTu)2−(xTu)2+(xTu)2=xTx−(xTu)2=∣∣x∣∣2−(xTu)2
\begin{aligned}
\min_{\vec{u}}||E||^2
&= ||x - (x^Tu)u||^2 \\
&= [x - (x^Tu)u]^T[x - (x^Tu)u] \\
&= [x^T - (x^Tu)u^T][x - (x^Tu)u]\\
&= x^Tx - (x^Tu)^2 - (x^Tu)^2 + (x^Tu)^2\\
&= x^Tx- (x^Tu)^2\\
&= ||x||^2 - (x^Tu)^2
\end{aligned}
umin∣∣E∣∣2=∣∣x−(xTu)u∣∣2=[x−(xTu)u]T[x−(xTu)u]=[xT−(xTu)uT][x−(xTu)u]=xTx−(xTu)2−(xTu)2+(xTu)2=xTx−(xTu)2=∣∣x∣∣2−(xTu)2
从而就是
maxu⃗(xTu)2⇒maxu⃗(xTu)(xTu)⇒maxu⃗(uTx)(xTu)⇒maxu⃗uT(xxT)u
\max_{\vec{u}} (x^Tu)^2 \Rightarrow \max_{\vec{u}} (x^Tu)(x^Tu) \Rightarrow \max_{\vec{u}} (u^Tx) (x^Tu) \Rightarrow \max_{\vec{u} }u^T(xx^T)u
umax(xTu)2⇒umax(xTu)(xTu)⇒umax(uTx)(xTu)⇒umaxuT(xxT)u
以上推导是针对使得一个样本的重构误差最小,那么如果给了 NNN 个样本点,我们就需要找到一个 u⃗\vec{u}u 使得所有样本点的重构误差和最小,即
maxu⃗uT∑i=1N(xixiT)u
\max_{\vec{u}} u^T \displaystyle \sum_{i=1}^N (x_ix_i^T)u
umaxuTi=1∑N(xixiT)u
令 X=∑i=1N(xixiT)X = \displaystyle \sum_{i=1}^N (x_ix_i^T)X=i=1∑N(xixiT) ,此时 XXX 一般是对称正定矩阵,则有最优化公式
{maxu⃗uTXust.∣∣u∣∣=1
\left\{
\begin{aligned}
\max_{\vec{u}} u^T Xu \\
st. ||u||=1
\end{aligned}
\right.
⎩⎨⎧umaxuTXust.∣∣u∣∣=1
上面是一个有约束条件的最优化公式,我们使用拉格朗日乘子法进行求解,令
L(u,λ)=uTXu+λ(1−uTu)
\begin{aligned}
L(u,\lambda) = u^TXu + \lambda(1-u^Tu)
\end{aligned}
L(u,λ)=uTXu+λ(1−uTu)
然后对 u,λu,\lambdau,λ 进行求导,使得
∂L∂u=0⇒Xu=λu∂L∂λ=0⇒uTu=1
\frac{\partial L}{\partial u} = 0 \Rightarrow Xu=\lambda u\\
\frac{\partial L}{\partial \lambda} = 0 \Rightarrow u^Tu=1\\
∂u∂L=0⇒Xu=λu∂λ∂L=0⇒uTu=1
根据公式(12)(12)(12),我们只需要对 XXX 进行特征分解,找到其特征向量,然后对其特征向量做单位化即可。由于 XXX 是对称正定矩阵,因此它有 nnn 个 特征值和其对应的特征向量,这里的特征向量就是我们想要的投影主方向,其中特征值的大小是反映了该主方向的重要程度。