一、数学中协方差矩阵的前世今生

1、前世
(1)随机变量XXX的2阶中心距:EEE{[X−E(X)]2[X-E(X)]^2[XE(X)]2}
(2)随机变量X和YX和YXY的2阶混合中心距:EEE{[X−E(X)][Y−E(Y)][X-E(X)][Y-E(Y)][XE(X)][YE(Y)]}
2、今生
协方差矩阵由2阶中心距和2阶混合中心距共同定义。
(1)二维变量的协方差矩阵
设二维随机变量(X1,X2X_1,X_2X1,X2),可得到四个2阶中心距,分别为:
c11c_{11}c11=EEE{[X1−E(X1)]2[X_1-E(X_1)]^2[X1E(X1)]2}
c12c_{12}c12=EEE{[X1−E(X1)][X2−E(X2)][X_1-E(X_1)][X_2-E(X_2)][X1E(X1)][X2E(X2)]}
c21c_{21}c21=EEE{[X2−E(X2)][X1−E(X1)][X_2-E(X_2)][X_1-E(X_1)][X2E(X2)][X1E(X1)]}
c22c_{22}c22=EEE{[X2−E(X2)]2[X_2-E(X_2)]^2[X2E(X2)]2}
c11c_{11}c11c12c_{12}c12c21c_{21}c21c22c_{22}c22共同组成的矩阵CCC,称为二维随机变量(X1,X2X_1,X_2X1,X2)的协方差矩阵。CCC的形式如下:
C=(c11c12c21c22)C=\left( \begin{matrix} c_{11}& c_{12} \\ c_{21}& c_{22} \end{matrix} \right) C=(c11c21c12c22)
(2)nnn维协方差矩阵
将二维随机变量的协方差矩阵进行推广,设nnn维随机变量(X1,X2,...,XnX_1,X_2,...,X_nX1,X2,...,Xn),可得到n×nn×nn×n个2阶中心距cijc_{ij}cij=EEE{[Xi−E(Xi)][Xj−E(Xj)][X_i-E(X_i)][X_j-E(X_j)][XiE(Xi)][XjE(Xj)]},其中i,j=1,2,...,ni,j=1,2,...,ni,j=1,2,...,n,则称矩阵
C=(c11c12⋯c1nc21c22⋯c2n⋮⋮⋯⋮cn1cn2⋯cnn)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=c11c21cn1c12c22cn2c1nc2ncnn
nnn维随机变量(X1,X2,...,XnX_1,X_2,...,X_nX1,X2,...,Xn)的协方差矩阵。
由于cij=cjic_{ij}=c_{ji}cij=cji,显然,协方差矩阵是一个对称矩阵。

二、机器学习中的协方差矩阵

机器学习中模型的训练需要大量样本,在计算协方差矩阵时,一般先将样本拼成一个d×Nd×Nd×N维的矩阵XXX={x1,x2,...,xNx_1,x_2,...,x_Nx1,x2,...,xN},其中ddd为样本的维数,NNN为样本的个数,xkx _kxk表示一个样本。
计算样本均值x0=1N∑i=kNxkx_0=\displaystyle\frac{1}{N}\sum_{i=k}^Nx_kx0=N1i=kNxk后,可得到ddd维样本的协方差矩阵:ΣX=1N∑i=kN(xk−x0)(xk−x0)T\Sigma_X=\displaystyle\frac{1}{N}\sum_{i=k}^N(x_k-x_0)(x_k-x_0)^TΣX=N1i=kN(xkx0)(xkx0)T
举例:
对于由5个样本组成的一个二维数据X=(−1−1020−20011)X=\left( \begin{matrix} -1& -1 & 0&2 &0\\ -2& 0& 0 &1 &1 \end{matrix} \right) X=(1210002101)
显然,在这里x1=(−1−2),x2=(−10),x3=(00),x4=(21),x5=(01),从而有x0=(00)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=(12),x2=(10),x3=(00),x4=(21),x5=(01),x0=(00)
进一步求出该二维数据的协方差矩阵
在这里插入图片描述
通过以上计算过程可以看出,每个样本的计算过程都与数学中协方差矩阵的定义保持一致,eg:过程①,也即是说机器学习中协方差矩阵的计算和数学中协方差矩阵的定义保持一致。
事实上,以上计算过程等价于C=15XXT=15(−1−1020−20011)(−1−2−10002101)=(65454565)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(1210002101)1102020011=56545456
总结:
机器学习中协方差矩阵的快速计算公式为:
C=1NXXTC=\displaystyle\frac{1}{N}XX^TC=N1XXT
其中,NNN为样本个数,XXX为大量样本拼成的d×Nd×Nd×N维矩阵。

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐