欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

直观地理解「协方差矩阵」

程序员文章站 2023-12-27 10:41:15
...
  • 协方差矩阵在统计学和机器学习中随处可见,一般而言,可视作方差和协方差两部分组成,即方差构成了对角线上的元素,协方差构成了非对角线上的元素。本文旨在从几何角度介绍我们所熟知的协方差矩阵。

1.方差和协方差的定义

在统计学中,方差是用来度量单个随机变量的离散程度,而协方差则一般用来刻画两个随机变量的相似程度,其中,方差的计算公式为
直观地理解「协方差矩阵」
其中,nn 表示样本量,符号x\overline x 表示观测样本的均值,这个定义在初中阶段就已经开始接触了。
在此基础上,协方差的计算公式被定义为
直观地理解「协方差矩阵」
在公式中,符号 x\overline xy\overline y 分别表示两个随机变量所对应的观测样本均值,据此,我们发现:方差 σx2\sigma_x^2可视作随机变量 xx关于其自身的协方差σ(x,x)\sigma(x,x).

2.从方差/协方差到协方差矩阵

根据方差的定义,给定dd个随机变量xk,k=1,2,...dx_k,k=1,2,...d,则这些随机变量的方差为
直观地理解「协方差矩阵」
其中,为方便书写, xkix_ki表示随机变量 xkx_k 中的第 ii 个观测样本, nn 表示样本量,每个随机变量所对应的观测样本数量均为 nn
对于这些随机变量,我们还可以根据协方差的定义,求出两两之间的协方差,即
直观地理解「协方差矩阵」
因此,协方差矩阵为
直观地理解「协方差矩阵」
其中,对角线上的元素为各个随机变量的方差,非对角线上的元素为两两随机变量之间的协方差,根据协方差的定义,我们可以认定:矩阵 \sum为对称矩阵(symmetric matrix),其大小为 x×xx\times x

3.多元正态分布与线性变换

假设一个向量 xx 服从均值向量为 uu 、协方差矩阵为 \sum 的多元正态分布(multi-variate Gaussian distribution),则
直观地理解「协方差矩阵」
令该分布的均值向量为 u=0u=0,由于指数项外面的系数 2π1/2|2\pi\sum|^{-1/2}通常作为常数,故可将多元正态分布简化为
直观地理解「协方差矩阵」
再令 x=(y,z)Tx=(y,z)^T ,包含两个随机变量 yyzz ,则协方差矩阵可写成如下形式:

直观地理解「协方差矩阵」

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

plt.style.use('ggplot')
plt.rcParams['figure.figsize'] = (12, 8)


# Normal distributed x and y vector with mean 0 and standard deviation 1
x = np.random.normal(0, 1, 500)
y = np.random.normal(0, 1, 500)
X = np.vstack((x, y)).T

plt.scatter(X[:, 0], X[:, 1])
plt.title('Generated Data')
plt.axis('equal');

用单位矩阵(identity matrix) II 作为协方差矩阵,随机变量yyzz的方差均为1,则生成若干个随机数如图1所示
直观地理解「协方差矩阵」
在生成的若干个随机数中,每个点的似然为
直观地理解「协方差矩阵」
对图1中的所有点考虑一个线性变换(linear transformation): t=Axt=Ax,我们能够得到图2.
直观地理解「协方差矩阵」
在线性变换中,矩阵 [公式] 被称为变换矩阵(transformation matrix),为了将图1中的点经过线性变换得到我们想要的图2,其实我们需要构造两个矩阵:
尺度矩阵(scaling matrix):
直观地理解「协方差矩阵」
旋转矩阵(rotation matrix)
直观地理解「协方差矩阵」
其中, [公式] 为顺时针旋转的度数。

变换矩阵、尺度矩阵和旋转矩阵三者的关系式:A=RSA=RS

在这个例子中,尺度矩阵为
直观地理解「协方差矩阵」
旋转矩阵为
直观地理解「协方差矩阵」直观地理解「协方差矩阵」
故变换矩阵为
直观地理解「协方差矩阵」

另外,需要考虑的是,经过了线性变换, [公式] 的分布是什么样子呢?
x=A1tx=A^-1t 带入前面给出的似然
直观地理解「协方差矩阵」

直观地理解「协方差矩阵」
直观地理解「协方差矩阵」
由此可以得到,多元正态分布的协方差矩阵为
直观地理解「协方差矩阵」
直观地理解「协方差矩阵」

4.协方差矩阵的特征值分解

回到我们已经学过的线性代数内容,对于任意对称矩阵 \sum,存在一个特征值分解(eigenvalue decomposition, EVD):
=UAUT\sum=UAU^T
其中,UU的每一列都是相互正交的特征向量,且是单位向量,满足 UTU=IU^TU=IΛ\Lambda对角线上的元素是从大到小排列的特征值,非对角线上的元素均为0。
当然,这条公式在这里也可以很容易地写成如下形式:
=(UΛ1/2)(UΛ1/2)T=AAT\sum=(U\Lambda^{1/2})(U\Lambda^{1/2})^T=AA^T
其中,A=UΛ1/2A=U\Lambda^{1/2},因此,通俗地说,任意一个协方差矩阵都可以视为线性变换的结果。
在上面的例子中,特征向量构成的矩阵为
直观地理解「协方差矩阵」
特征值构成的矩阵为
直观地理解「协方差矩阵」
到这里,我们发现:多元正态分布的概率密度是由协方差矩阵的特征向量控制旋转(rotation),特征值控制尺度(scale),除了协方差矩阵,均值向量会控制概率密度的位置,在图1和图2中,均值向量为 [公式] ,因此,概率密度的中心位于坐标原点。

相关标签: 算法-经典

上一篇:

下一篇: