〖机器学习白板推导1〗样本均值&样本方差&PCA! |
- 本文整理自b站大神【机器学习】【白板推导系列】
- 首先假设样本集 X N × p = ( x 1 , … , x n ) ⊤ \boldsymbol X_{N \times p}=(\boldsymbol x_{1}, \ldots, \boldsymbol x_{n})^{\top} XN×p=(x1,…,xn)⊤,其中 N N N 为样本个数, p p p 为样本维度。
一. 样本均值
- 样本均值
x
ˉ
\bar{\boldsymbol x}
xˉ 为:
x ˉ = 1 N ∑ i = 1 N x i = 1 N ( x 1 , … , x N ) ( 1 , … , 1 ) ⊤ = 1 N X ⊤ I (1) \bar{\boldsymbol x}=\frac{1}{N} \sum_{i=1}^{N} x_{i} =\frac{1}{N} (\boldsymbol x_{1}, \ldots, \boldsymbol x_{N}) (1, \ldots, 1)^{\top}= \frac{1}{N} \boldsymbol X^{\top} \boldsymbol I \tag{1} xˉ=N1i=1∑Nxi=N1(x1,…,xN)(1,…,1)⊤=N1X⊤I(1) 其中: I = ( 1 , … , 1 ) N × 1 ⊤ \boldsymbol I=(1, \ldots, 1)^{\top}_{N \times 1} I=(1,…,1)N×1⊤ 为列向量。
二. 样本方差
- 样本方差
S
\boldsymbol S
S 为:
S = 1 N ∑ i = 1 N ( x i − x ˉ ) ( x i − x ˉ ) ⊤ = 1 N ( x 1 − x ˉ , … , x N − x ˉ ) ( x 1 − x ˉ , … , x N − x ˉ ) ⊤ = 1 N [ ( x 1 , … , x N ) − ( x ˉ , … , x ˉ ) ] [ ( x 1 , … , x N ) − ( x ˉ , … , x ˉ ) ] ⊤ = 1 N ( X ⊤ − x ˉ ( 1 , … , 1 ) ) ( X ⊤ − x ˉ ( 1 , … , 1 ) ) ⊤ = 1 N ( X ⊤ − x ˉ I ⊤ ) ( X ⊤ − x ˉ I ⊤ ) ⊤ (2) \begin{aligned} \boldsymbol S &=\frac{1}{N} \sum_{i=1}^{N}\left(\boldsymbol x_{i}-\bar{\boldsymbol x}\right)\left(\boldsymbol x_{i}-\bar{\boldsymbol x}\right)^{\top} \\ &=\frac{1}{N}\left(\boldsymbol x_{1}-\bar{\boldsymbol x}, \ldots, \boldsymbol x_{N}-\bar{\boldsymbol x}\right)\left(\boldsymbol x_{1}-\bar{\boldsymbol x}, \ldots, \boldsymbol x_{N}-\bar{\boldsymbol x}\right)^{\top} \\ &=\frac{1}{N} \left[ \left(\boldsymbol x_{1}, \ldots, \boldsymbol x_{N}\right)-\left(\bar{\boldsymbol x}, \ldots, \bar{\boldsymbol x}\right) \right]\left[ \left(\boldsymbol x_{1}, \ldots, \boldsymbol x_{N}\right)-\left(\bar{\boldsymbol x}, \ldots, \bar{\boldsymbol x}\right) \right] ^{\top} \\ &=\frac{1}{N} \left( \boldsymbol X^{\top}-\bar{\boldsymbol x}\left({1, \ldots, 1}\right)\right)\left( \boldsymbol X^{\top}-\bar{\boldsymbol x}\left({1, \ldots, 1}\right)\right)^{\top} \\ &=\frac{1}{N} \left( \boldsymbol X^{\top}-\bar{\boldsymbol x }\boldsymbol I^{\top}\right)\left( \boldsymbol X^{\top}-\bar{\boldsymbol x }\boldsymbol I^{\top}\right)^{\top} \tag{2} \end{aligned} S=N1i=1∑N(xi−xˉ)(xi−xˉ)⊤=N1(x1−xˉ,…,xN−xˉ)(x1−xˉ,…,xN−xˉ)⊤=N1[(x1,…,xN)−(xˉ,…,xˉ)][(x1,…,xN)−(xˉ,…,xˉ)]⊤=N1(X⊤−xˉ(1,…,1))(X⊤−xˉ(1,…,1))⊤=N1(X⊤−xˉI⊤)(X⊤−xˉI⊤)⊤(2) 把样本均值带入可以得到:
S = 1 N ( X ⊤ − 1 N X ⊤ I I ⊤ ) ( X ⊤ − 1 N X ⊤ I I ⊤ ) ⊤ = 1 N [ X ⊤ ( E − 1 N I I ⊤ ) ] [ X ⊤ ( E − 1 N I I ⊤ ) ⊤ ] (3) \begin{aligned} \boldsymbol S &=\frac{1}{N} \left( \boldsymbol X^{\top}-\frac{1}{N} \boldsymbol X^{\top} \boldsymbol I\boldsymbol I^{\top}\right)\left( \boldsymbol X^{\top}-\frac{1}{N} \boldsymbol X^{\top} \boldsymbol I\boldsymbol I^{\top}\right)^{\top} \\ &=\frac{1}{N} \left [ \boldsymbol X^{\top}\left( \boldsymbol E-\frac{1}{N} \boldsymbol I\boldsymbol I^{\top}\right)\right ] \left [\boldsymbol X^{\top}\left( \boldsymbol E-\frac{1}{N} \boldsymbol I\boldsymbol I^{\top}\right)^{\top} \right ] \tag{3} \end{aligned} S=N1(X⊤−N1X⊤II⊤)(X⊤−N1X⊤II⊤)⊤=N1[X⊤(E−N1II⊤)][X⊤(E−N1II⊤)⊤](3) 这里令 H N × N = E − 1 N I I ⊤ \boldsymbol H_{N \times N}=\boldsymbol E-\frac{1}{N} \boldsymbol I\boldsymbol I^{\top} HN×N=E−N1II⊤, H \boldsymbol H H 称作中心矩阵。
三. 中心矩阵的性质
-
中心矩阵 H \boldsymbol H H 为对称矩阵:
H = E − 1 N I I ⊤ = H ⊤ (4) \boldsymbol H=\boldsymbol E-\frac{1}{N} \boldsymbol I\boldsymbol I^{\top} =\boldsymbol H^{\top} \tag{4} H=E−N1II⊤=H⊤(4) -
中心矩阵 H \boldsymbol H H 为对称矩阵:
H 2 = H ⊤ H = H H = ( E − 1 N I I ⊤ ) ( E − 1 N I I ⊤ ) = E − 2 N I I ⊤ + 1 N 2 I I ⊤ I I ⊤ (5) \begin{aligned} \boldsymbol H^2= \boldsymbol H^{\top} \boldsymbol H=\boldsymbol H\boldsymbol H &=\left( \boldsymbol E-\frac{1}{N} \boldsymbol I\boldsymbol I^{\top} \right) \left( \boldsymbol E-\frac{1}{N} \boldsymbol I\boldsymbol I^{\top} \right) \\ &=\boldsymbol E-\frac{2}{N} \boldsymbol I\boldsymbol I^{\top} +\frac{1}{N^2} \boldsymbol I\boldsymbol I^{\top}\boldsymbol I\boldsymbol I^{\top} \tag{5}\end{aligned} H2=H⊤H=HH=(E−N1II⊤)(E−N1II⊤)=E−N2II⊤+N21II⊤II⊤(5) 这里 I ⊤ I = N \boldsymbol I^{\top}\boldsymbol I=N I⊤I=N,所以等式 ( 5 ) (5) (5) 可以化简为:
H 2 = E − 2 N I I ⊤ + 1 N I I ⊤ = E − 1 N I I ⊤ = H (6) \begin{aligned} \boldsymbol H^2 &=\boldsymbol E-\frac{2}{N} \boldsymbol I\boldsymbol I^{\top} +\frac{1}{N} \boldsymbol I\boldsymbol I^{\top} \\ &=\boldsymbol E-\frac{1}{N} \boldsymbol I\boldsymbol I^{\top} \\ &=\boldsymbol H \tag{6} \end{aligned} H2=E−N2II⊤+N1II⊤=E−N1II⊤=H(6) 也就是 H n = H \boldsymbol H^n=\boldsymbol H Hn=H。 -
带入中心矩阵之后,样本方差 S \boldsymbol S S 为:
S = 1 N [ X ⊤ ( E − 1 N I I ⊤ ) ] [ X ⊤ ( E − 1 N I I ⊤ ) ⊤ ] = 1 N X ⊤ H H ⊤ X = 1 N X ⊤ H X (7) \begin{aligned} \boldsymbol S &=\frac{1}{N} \left [ \boldsymbol X^{\top}\left( \boldsymbol E-\frac{1}{N} \boldsymbol I\boldsymbol I^{\top}\right)\right ] \left [\boldsymbol X^{\top}\left( \boldsymbol E-\frac{1}{N} \boldsymbol I\boldsymbol I^{\top}\right)^{\top} \right ] \\ &=\frac{1}{N} \boldsymbol X^{\top}\boldsymbol H \boldsymbol H^{\top}\boldsymbol X \\ &=\frac{1}{N} \boldsymbol X^{\top}\boldsymbol H \boldsymbol X \tag{7} \end{aligned} S=N1[X⊤(E−N1II⊤)][X⊤(E−N1II⊤)⊤]=N1X⊤HH⊤X=N1X⊤HX(7)
四. 协方差矩阵和散度矩阵关系
- 散度矩阵
S
1
\boldsymbol S_1
S1 为:
S 1 = ∑ i = 1 N ( x i − m ) ( x i − m ) ⊤ (8) \boldsymbol S_1=\sum_{i=1}^{N}\left(\boldsymbol{x}_{i}-\boldsymbol{m}\right)\left(\boldsymbol{x}_{i}-\boldsymbol{m}\right)^{\top} \tag{8} S1=i=1∑N(xi−m)(xi−m)⊤(8) 其中 m \boldsymbol{m} m 为样本均值(就是上面的 x ˉ \bar{\boldsymbol x} xˉ) : m = 1 N ∑ k = 1 N x i = 1 N X ⊤ I (9) \boldsymbol{m}=\frac{1}{N} \sum_{k=1}^{N} \boldsymbol{x}_{i}= \frac{1}{N} \boldsymbol X^{\top} \boldsymbol I \tag{9} m=N1k=1∑Nxi=N1X⊤I(9) - 我们可以发现协方差矩阵和散度矩阵相差前面一个 1 N \frac{1}{N} N1。
五. PCA降维(最大投影方差角度)
- 一个中心:对原始特征空间的重构(相关——>无关,原始特征空间中的特征之间有可能是相关的,比如用户特征:姓名,性别,年龄,学历,学位,我们可以发现学历和学位之间正相关,这2个属性之间就是相关性的,对这些特征空间进行重构,使其能够变成一组相互正交(线性无关的基))。
- 两个基本点:①. 最大投影方差;②. 最小重构距离(这2个其实是同一个意思,都是为同一个中心服务的,相当于2个角度)
- 拿到数据之后首先进行中心化(减去均值,中心化之后数据均值为0),就是做一个平移,方便计算。
-
对于 x i \boldsymbol{x}_{i} xi 这个样本,中心化之后为 x i − x ˉ \boldsymbol{x}_{i}-\bar{\boldsymbol{x}} xi−xˉ,此时它在 u 1 \boldsymbol u_1 u1 这个方向上的投影为:
J = ( x i − x ˉ ) ⊤ u 1 s . t . ∥ u 1 ∥ = 1 (10) \begin{aligned} &J=(\boldsymbol{x}_{i}-\bar{\boldsymbol{x}})^{\top} \boldsymbol u_{1}\\ &s.t. \quad\left\| \boldsymbol u_{1}\right\|=1 \tag{10} \end{aligned} J=(xi−xˉ)⊤u1s.t.∥u1∥=1(10) -
对于 N N N 个样本点,投影方差(数)为:
J = 1 N ∑ i = 1 N ( ( x i − x ˉ ) ⊤ u 1 ) 2 s . t . u 1 ⊤ u 1 = 1 (11) \begin{aligned} &J=\frac{1}{N} \sum_{i=1}^{N}\left((\boldsymbol{x}_{i}-\bar{\boldsymbol{x}})^{\top} \boldsymbol u_{1}\right)^{2} \\ &s.t. \quad \boldsymbol u_{1}^{\top}\boldsymbol u_{1}=1 \tag{11} \end{aligned} J=N1i=1∑N((xi−xˉ)⊤u1)2s.t.u1⊤u1=1(11) -
其中 J J J 为:
J = 1 N ∑ i = 1 N u 1 T ( x i − x ˉ ) ⋅ ( x i − x ˉ ) T u 1 = u 1 T [ 1 N ∑ i = 1 N ( x i − x ˉ ) ⋅ ( x i − x ˉ ) T ] u 1 = u 1 T S u 1 (12) \begin{aligned} J &=\frac{1}{N} \sum_{i=1}^{N} \boldsymbol u_{1}^{T}\left(\boldsymbol{x}_{i}-\bar{\boldsymbol{x}}\right) \cdot\left(\boldsymbol{x}_{i}-\bar{\boldsymbol{x}}\right)^{T} \boldsymbol u_{1} \\ &=\boldsymbol u_{1}^{T} \left [\frac{1}{N} \sum_{i=1}^{N} \left(\boldsymbol{x}_{i}-\bar{\boldsymbol{x}}\right) \cdot\left(\boldsymbol{x}_{i}-\bar{\boldsymbol{x}}\right)^{T} \right ] \boldsymbol u_{1} \\ &=\boldsymbol u_{1}^{T} \boldsymbol S\boldsymbol u_{1} \tag{12} \end{aligned} J=N1i=1∑Nu1T(xi−xˉ)⋅(xi−xˉ)Tu1=u1T[N1i=1∑N(xi−xˉ)⋅(xi−xˉ)T]u1=u1TSu1(12) -
我们要求的就是一个最大投方差,其实就是一个带约束的优化问题,就是要找到这个方向 u 1 \boldsymbol u_{1} u1:
{ u ^ 1 = arg max u 1 ⊤ S u 1 s . t . u 1 ⊤ u 1 = 1 (13) \left\{\begin{array}{l} \hat{\boldsymbol u}_{1}=\argmax \boldsymbol u_{1}^{\top}\boldsymbol S \boldsymbol u_{1} \\ s.t. \quad \boldsymbol u_{1}^{\top}\boldsymbol u_{1}=1 \tag{13} \end{array}\right. {u^1=argmaxu1⊤Su1s.t.u1⊤u1=1(13) -
求解使用拉格朗日乘子法:
L ( u 1 , λ ) = u 1 ⊤ S u 1 + λ ( 1 − u 1 ⊤ u 1 ) (14) \mathcal{L}\left(\boldsymbol u_{1}, \lambda\right)=\boldsymbol u_{1}^{\top}\boldsymbol S \boldsymbol u_{1}+\lambda\left(1- \boldsymbol u_{1}^{\top}\boldsymbol u_{1}\right)\tag{14} L(u1,λ)=u1⊤Su1+λ(1−u1⊤u1)(14) -
求偏导可以得到:
∂ L ∂ u 1 = 2 S u 1 − 2 λ u 1 (15) \frac{\partial \mathcal{L}}{\partial \boldsymbol u_{1}}=2\boldsymbol S \boldsymbol u_{1}-2\lambda \boldsymbol u_1\tag{15} ∂u1∂L=2Su1−2λu1(15) -
令偏导数等于0可以得到:
S u 1 = λ u 1 (16) \boldsymbol S \boldsymbol u_{1}=\lambda \boldsymbol u_1\tag{16} Su1=λu1(16) -
到这里已经求解完毕,可以明显看出 λ \lambda λ 就是 S \boldsymbol S S 的特征值, u 1 \boldsymbol u_1 u1 就是 S \boldsymbol S S 的特征向量。