一、数学中协方差矩阵
的前世今生
1、前世
(1)随机变量
X
X
X的2阶中心距:
E
E
E{
[
X
−
E
(
X
)
]
2
[X-E(X)]^2
[X−E(X)]2}
(2)随机变量
X
和
Y
X和Y
X和Y的2阶混合中心距:
E
E
E{
[
X
−
E
(
X
)
]
[
Y
−
E
(
Y
)
]
[X-E(X)][Y-E(Y)]
[X−E(X)][Y−E(Y)]}
2、今生
协方差矩阵
由2阶中心距和2阶混合中心距共同定义。
(1)二维变量的协方差矩阵
设二维随机变量(
X
1
,
X
2
X_1,X_2
X1,X2),可得到四个2阶中心距,分别为:
c
11
c_{11}
c11=
E
E
E{
[
X
1
−
E
(
X
1
)
]
2
[X_1-E(X_1)]^2
[X1−E(X1)]2}
c
12
c_{12}
c12=
E
E
E{
[
X
1
−
E
(
X
1
)
]
[
X
2
−
E
(
X
2
)
]
[X_1-E(X_1)][X_2-E(X_2)]
[X1−E(X1)][X2−E(X2)]}
c
21
c_{21}
c21=
E
E
E{
[
X
2
−
E
(
X
2
)
]
[
X
1
−
E
(
X
1
)
]
[X_2-E(X_2)][X_1-E(X_1)]
[X2−E(X2)][X1−E(X1)]}
c
22
c_{22}
c22=
E
E
E{
[
X
2
−
E
(
X
2
)
]
2
[X_2-E(X_2)]^2
[X2−E(X2)]2}
由
c
11
c_{11}
c11,
c
12
c_{12}
c12,
c
21
c_{21}
c21,
c
22
c_{22}
c22共同组成的矩阵
C
C
C,称为二维随机变量(
X
1
,
X
2
X_1,X_2
X1,X2)的协方差矩阵。
C
C
C的形式如下:
C
=
(
c
11
c
12
c
21
c
22
)
C=\left( \begin{matrix} c_{11}& c_{12} \\ c_{21}& c_{22} \end{matrix} \right)
C=(c11c21c12c22)
(2)
n
n
n维协方差矩阵
将二维随机变量的协方差矩阵进行推广,设
n
n
n维随机变量(
X
1
,
X
2
,
.
.
.
,
X
n
X_1,X_2,...,X_n
X1,X2,...,Xn),可得到
n
×
n
n×n
n×n个2阶中心距
c
i
j
c_{ij}
cij=
E
E
E{
[
X
i
−
E
(
X
i
)
]
[
X
j
−
E
(
X
j
)
]
[X_i-E(X_i)][X_j-E(X_j)]
[Xi−E(Xi)][Xj−E(Xj)]},其中
i
,
j
=
1
,
2
,
.
.
.
,
n
i,j=1,2,...,n
i,j=1,2,...,n,则称矩阵
C
=
(
c
11
c
12
⋯
c
1
n
c
21
c
22
⋯
c
2
n
⋮
⋮
⋯
⋮
c
n
1
c
n
2
⋯
c
n
n
)
C=\left( \begin{matrix} c_{11}& c_{12} & \cdots &c_{1n} \\ c_{21}& c_{22}& \cdots &c_{2n} \\ \vdots& \vdots& \cdots &\vdots \\ c_{n1}& c_{n2}& \cdots &c_{nn} \end{matrix} \right)
C=⎝⎜⎜⎜⎛c11c21⋮cn1c12c22⋮cn2⋯⋯⋯⋯c1nc2n⋮cnn⎠⎟⎟⎟⎞
为
n
n
n维随机变量(
X
1
,
X
2
,
.
.
.
,
X
n
X_1,X_2,...,X_n
X1,X2,...,Xn)的协方差矩阵。
由于
c
i
j
=
c
j
i
c_{ij}=c_{ji}
cij=cji,显然,协方差矩阵是一个对称矩阵。
二、机器学习中的协方差矩阵
机器学习中模型的训练需要大量样本,在计算协方差矩阵时,一般先将样本拼成一个
d
×
N
d×N
d×N维的矩阵
X
X
X={
x
1
,
x
2
,
.
.
.
,
x
N
x_1,x_2,...,x_N
x1,x2,...,xN},其中
d
d
d为样本的维数,
N
N
N为样本的个数,
x
k
x _k
xk表示一个样本。
计算样本均值
x
0
=
1
N
∑
i
=
k
N
x
k
x_0=\displaystyle\frac{1}{N}\sum_{i=k}^Nx_k
x0=N1i=k∑Nxk后,可得到
d
d
d维样本的协方差矩阵:
Σ
X
=
1
N
∑
i
=
k
N
(
x
k
−
x
0
)
(
x
k
−
x
0
)
T
\Sigma_X=\displaystyle\frac{1}{N}\sum_{i=k}^N(x_k-x_0)(x_k-x_0)^T
ΣX=N1i=k∑N(xk−x0)(xk−x0)T
举例:
对于由5个样本组成的一个二维数据
X
=
(
−
1
−
1
0
2
0
−
2
0
0
1
1
)
X=\left( \begin{matrix} -1& -1 & 0&2 &0\\ -2& 0& 0 &1 &1 \end{matrix} \right)
X=(−1−2−10002101)
显然,在这里
x
1
=
(
−
1
−
2
)
,
x
2
=
(
−
1
0
)
,
x
3
=
(
0
0
)
,
x
4
=
(
2
1
)
,
x
5
=
(
0
1
)
,
从
而
有
x
0
=
(
0
0
)
x_1=\left( \begin{matrix} -1\\ -2 \end{matrix} \right),x_2=\left( \begin{matrix} -1\\ 0 \end{matrix} \right),x_3=\left( \begin{matrix} 0\\ 0 \end{matrix} \right),x_4=\left( \begin{matrix} 2\\ 1 \end{matrix} \right),x_5=\left( \begin{matrix} 0\\ 1 \end{matrix} \right),从而有x_0=\left( \begin{matrix} 0\\ 0 \end{matrix} \right)
x1=(−1−2),x2=(−10),x3=(00),x4=(21),x5=(01),从而有x0=(00)
进一步求出该二维数据的协方差矩阵
通过以上计算过程可以看出,每个样本的计算过程都与数学中协方差矩阵的定义保持一致,eg:过程①,也即是说机器学习中协方差矩阵的计算和数学中协方差矩阵的定义保持一致。
事实上,以上计算过程等价于
C
=
1
5
X
X
T
=
1
5
(
−
1
−
1
0
2
0
−
2
0
0
1
1
)
(
−
1
−
2
−
1
0
0
0
2
1
0
1
)
=
(
6
5
4
5
4
5
6
5
)
C=\displaystyle\frac{1}{5}XX^T=\frac{1}{5}\left( \begin{matrix} -1& -1 & 0&2 &0\\ -2& 0& 0 &1 &1 \end{matrix} \right)\left( \begin{matrix} -1& -2\\ -1& 0\\ 0& 0\\ 2& 1\\ 0& 1 \end{matrix} \right)=\left( \begin{matrix} \displaystyle\frac{6}{5} & & \displaystyle\frac{4}{5}\\ & & \\ \displaystyle\frac{4}{5}& & \displaystyle\frac{6}{5} \end{matrix} \right)
C=51XXT=51(−1−2−10002101)⎝⎜⎜⎜⎜⎛−1−1020−20011⎠⎟⎟⎟⎟⎞=⎝⎜⎜⎛56545456⎠⎟⎟⎞
总结:
机器学习中协方差矩阵的快速计算公式为:
C
=
1
N
X
X
T
C=\displaystyle\frac{1}{N}XX^T
C=N1XXT
其中,
N
N
N为样本个数,
X
X
X为大量样本拼成的
d
×
N
d×N
d×N维矩阵。