最近看模式识别课程的时候卡在了一个地方,见下图:
协方差矩阵倒还知道,自相关矩阵?怎么推导的?它有什么意义?上网查了资料,要么晦涩难懂,要么一堆废话,这里我想尽量用最简洁的语言讲清楚它们。
向量的内积与外积
场景:机器学习
样本(n个样本,N个维度(特征)):
X = { x 1 , x 2 , . . . , x n } x i = { w i , 1 , w i , 2 , . . . , w i , N } T i ∈ [ 1 , n ] w j = { w 1 , j , w 2 , j , . . . , w n , j } j ∈ [ 1 , N ] X=\left \{ x_1,x_2,...,x_n \right \} \\ x_i=\left \{ w_{i,1},w_{i,2},...,w_{i,N} \right \} ^T \\ i\in \left [ 1,n \right ] \\ w_j=\left \{ w_{1,j},w_{2,j},...,w_{n,j} \right \}\\ j\in \left [ 1,N \right ] \\ X={x1,x2,...,xn}xi={wi,1,wi,2,...,wi,N}Ti∈[1,n]wj={w1,j,w2,j,...,wn,j}j∈[1,N]
这里的i和j与下面的i和j无关!!!
具体样例(3个样本,4个维度(特征)):
X = { x 1 , x 2 , x 3 } x 1 = { 1 , 2 , 3 , 4 } T x 2 = { 3 , 2 , 1 , 4 } T x 3 = { 2 , 2 , 3 , 4 } T X=\left \{ x_1,x_2,x_3 \right \} \\ x_1=\left \{ 1,2,3,4 \right \} ^T\\ x_2=\left \{ 3,2,1,4 \right \} ^T\\ x_3=\left \{ 2,2,3,4 \right \} ^T X={x1,x2,x3}x1={1,2,3,4}Tx2={3,2,1,4}Tx3={2,2,3,4}T
方差(后面会频繁用到方差):
首先定义由各样本向量均值构成的向量 M X M_X MX ,则样本向量 X X X构成的协方差矩阵记为 :
M X = E ( X ) = { m 1 , m 2 , . . . , m N } T C X , X = E { ( X − M X ) ( X − M X ) T } = [ c 1 , 1 . . . c 1 , N . . . . . . . . . c N , 1 . . . c N , N ] M_X=E\left ( X \right )=\left \{ m_1,m_2,...,m_N \right \}^T \\ C_{X,X}=E\left\{ \left ( X-M_X \right )\left ( X-M_X \right ) ^T \right\} =\begin{bmatrix} c_{1,1} & ... & c_{1,N}\\ ... & ... & ...\\ c_{N,1} & ... &c_{N,N} \end{bmatrix} MX=E(X)={m1,m2,...,mN}TCX,X=E{(X−MX)(X−MX)T}=⎣⎡c1,1...cN,1.........c1,N...cN,N⎦⎤
c i , i c_{i,i} ci,i是 w i w_i wi的方差:
c i , i = E { ( w i − M X , i ) ( w i − M X , i ) T } = E { ∣ w i − M X , i ∣ 2 } c_{i,i}=E\left\{ \left ( w_i-M_{X,i} \right )\left ( w_i-M_{X,i} \right ) ^T \right\} =E\left \{ \left | w_i-M_{X,i} \right |^2 \right \} ci,i=E{(wi−MX,i)(wi−MX,i)T}=E{∣wi−MX,i∣2}
c i , j c_{i,j} ci,j是 w i w_i wi和 w j w_j wj的协方差:
c i , j = E { ( w i − M X , i ) ( w j − M X , j ) T } c_{i,j}=E\left\{ \left ( w_i-M_{X,i} \right )\left ( w_j-M_{X,j}\right ) ^T \right\} ci,j=E{(wi−MX,i)(wj−MX,j)T}
通过公式可以知道,自协方差矩阵也是Hermitian矩阵。自协方差矩阵也被称为方差矩阵,用符号 V a r ( X ) Var(X) Var(X)表示。
注意,自协方差矩阵是N*N的方阵,理解协方差矩阵的关键就在于它的计算是不同维度之间的协方差,而不是不同样本之间。拿到一个样本矩阵,最先要明确的就是一行是一个样本还是一个维度。在这里一行是一个维度,一列是一个样本,这一点一定要记住!
X = { x 1 , x 2 , x 3 } x 1 = { 1 , 2 , 3 , 4 } T x 2 = { 3 , 2 , 1 , 4 } T x 3 = { 2 , 2 , 3 , 4 } T X = [ 1 3 2 2 2 2 3 1 3 4 4 4 ] X=\left \{ x_1,x_2,x_3 \right \} \\ x_1=\left \{ 1,2,3,4 \right \} ^T\\ x_2=\left \{ 3,2,1,4 \right \} ^T\\ x_3=\left \{ 2,2,3,4 \right \} ^T\\ X=\begin{bmatrix} 1 & 3 & 2 \\ 2 & 2 & 2 \\ 3 & 1 & 3 \\ 4 & 4 & 4 \\ \end{bmatrix} X={x1,x2,x3}x1={1,2,3,4}Tx2={3,2,1,4}Tx3={2,2,3,4}TX=⎣⎢⎢⎡123432142234⎦⎥⎥⎤
M X = E ( X ) = { m 1 , m 2 , . . . , m N } T m 1 = ( 1 + 3 + 2 ) / 3 = 2 m 2 = ( 2 + 2 + 2 ) / 3 = 2 m 3 = ( 3 + 1 + 3 ) / 3 = 2.5 m 4 = ( 4 + 4 + 4 ) / 3 = 4 M X = { 2 , 3 , 2.5 , 4 } T M_X=E\left ( X \right )=\left \{ m_1,m_2,...,m_N \right \} ^T \\ m_1=(1+3+2)/3=2\\ m_2=(2+2+2)/3=2\\ m_3=(3+1+3)/3=2.5\\ m_4=(4+4+4)/3=4\\ M_X=\left \{ 2,3,2.5,4 \right \} ^T MX=E(X)={m1,m2,...,mN}Tm1=(1+3+2)/3=2m2=(2+2+2)/3=2m3=(3+1+3)/3=2.5m4=(4+4+4)/3=4MX={2,3,2.5,4}T
C X , X = E { ( X − M X ) ( X − M X ) T } = [ c 1 , 1 . . . c 1 , N . . . . . . . . . c N , 1 . . . c N , N ] C_{X,X}=E\left\{ \left ( X-M_X \right )\left ( X-M_X \right ) ^T \right\} =\begin{bmatrix} c_{1,1} & ... & c_{1,N}\\ ... & ... & ...\\ c_{N,1} & ... &c_{N,N} \end{bmatrix} CX,X=E{(X−MX)(X−MX)T}=⎣⎡c1,1...cN,1.........c1,N...cN,N⎦⎤
X − M X = [ 1 − 2 3 − 2 2 − 2 2 − 3 2 − 3 2 − 3 3 − 2.5 1 − 2.5 3 − 2.5 4 − 4 4 − 4 4 − 4 ] = [ − 1 1 0 − 1 − 1 − 1 0.5 − 1.5 0.5 0 0 0 ] X-M_X =\begin{bmatrix} 1-2 & 3-2 & 2-2 \\ 2-3 & 2-3 & 2-3 \\ 3-2.5 & 1-2.5 & 3-2.5 \\ 4-4 & 4-4 & 4-4 \\ \end{bmatrix}= \begin{bmatrix} -1 & 1 & 0 \\ -1 & -1 & -1 \\ 0.5 & -1.5 & 0.5 \\ 0 & 0 & 0 \\ \end{bmatrix} X−MX=⎣⎢⎢⎡1−22−33−2.54−43−22−31−2.54−42−22−33−2.54−4⎦⎥⎥⎤=⎣⎢⎢⎡−1−10.501−1−1.500−10.50⎦⎥⎥⎤
( X − M X ) T = [ − 1 − 1 0.5 0 1 − 1 − 1.5 0 0 − 1 0.5 0 ] \left ( X-M_X \right ) ^T=\begin{bmatrix} -1 & -1 & 0.5 & 0\\ 1 & -1 & -1.5 & 0\\ 0 & -1 & 0.5 & 0\\ \end{bmatrix} (X−MX)T=⎣⎡−110−1−1−10.5−1.50.5000⎦⎤
c i , i c_{i,i} ci,i是 w i w_i wi的方差:
c i , i = E { ( w i − M X , i ) ( w i − M X , i ) T } = E { ∣ w i − M X , i ∣ 2 } w 1 − M X , 1 = [ 1 − 2 3 − 2 2 − 2 ] T = [ − 1 1 0 ] T ( x 1 − M X , 1 ) ( x 1 − M X , 1 ) T = ( − 1 ) ∗ ( − 1 ) + ( 1 ) ∗ ( 1 ) + 0 ∗ 0 = 2 E { ∣ w 1 − M X , 1 ∣ 2 } = 2 / n = 2 / 3 c_{i,i}=E\left\{ \left ( w_i-M_{X,i} \right )\left ( w_i-M_{X,i} \right ) ^T \right\} =E\left \{ \left | w_i-M_{X,i} \right |^2 \right \} \\ w_1-M_{X,1} =\begin{bmatrix} 1-2 & 3-2 & 2-2 \\ \end{bmatrix}^T=\begin{bmatrix} -1 & 1 & 0 \\ \end{bmatrix}^T\\ \left ( x_1-M_{X,1} \right )\left ( x_1-M_{X,1} \right ) ^T=(-1)*(-1)+(1)*(1)+0*0=2\\ E\left \{ \left | w_1-M_{X,1}\right |^2 \right \} =2/n=2/3 ci,i=E{(wi−MX,i)(wi−MX,i)T}=E{∣wi−MX,i∣2}w1−MX,1=[1−23−22−2]T=[−110]T(x1−MX,1)(x1−MX,1)T=(−1)∗(−1)+(1)∗(1)+0∗0=2E{∣w1−MX,1∣2}=2/n=2/3
在matlab里面是除以样本数减1的差值,即n-1。
c i , j c_{i,j} ci,j是 w i w_i wi和 w j w_j wj的协方差:
c i , j = E { ( w i − M X , i ) ( w j − M X , j ) T } w 1 − M X , 1 = [ 1 − 2 3 − 2 2 − 2 ] T = [ − 1 1 0 ] T w 2 − M X , 2 = [ 2 − 3 2 − 3 2 − 3 ] T = [ − 1 − 1 − 1 ] T ( x 1 − M X , 1 ) ( x 2 − M X , 2 ) T = ( − 1 ) ∗ ( − 1 ) + ( 1 ) ∗ ( − 1 ) + 0 ∗ ( − 1 ) = 0 E { ( w i − M X , i ) ( w j − M X , j ) T } = 0 / n = 0 c_{i,j}=E\left\{ \left ( w_i-M_{X,i} \right )\left ( w_j-M_{X,j}\right ) ^T \right\} \\ w_1-M_{X,1} =\begin{bmatrix} 1-2 & 3-2 & 2-2 \\ \end{bmatrix}^T=\begin{bmatrix} -1 & 1 & 0 \\ \end{bmatrix}^T\\ w_2-M_{X,2} =\begin{bmatrix} 2-3 & 2-3 & 2-3 \\ \end{bmatrix}^T=\begin{bmatrix} -1 & -1 & -1 \\ \end{bmatrix}^T\\ \left ( x_1-M_{X,1} \right )\left ( x_2-M_{X,2} \right ) ^T=(-1)*(-1)+(1)*(-1)+0*(-1)=0\\ E\left\{ \left ( w_i-M_{X,i} \right )\left ( w_j-M_{X,j}\right ) ^T \right\}=0/n=0 ci,j=E{(wi−MX,i)(wj−MX,j)T}w1−MX,1=[1−23−22−2]T=[−110]Tw2−MX,2=[2−32−32−3]T=[−1−1−1]T(x1−MX,1)(x2−MX,2)T=(−1)∗(−1)+(1)∗(−1)+0∗(−1)=0E{(wi−MX,i)(wj−MX,j)T}=0/n=0
自相关矩阵定义为样本向量与自身的外积的数学期望,其实就是自协方差矩阵不减均值向量就好:
R X , X = E ( X X T ) = [ r 1 , 1 . . . r 1 , N . . . . . . . . . r N , 1 . . . r N , N ] R_{X,X}=E\left ( XX^T \right ) =\begin{bmatrix} r_{1,1} & ... & r_{1,N}\\ ... & ... & ...\\ r_{N,1} & ... &r_{N,N} \end{bmatrix} RX,X=E(XXT)=⎣⎡r1,1...rN,1.........r1,N...rN,N⎦⎤
r i , i r_{i,i} ri,i是 w i w_i wi的自相关系数:
r i , i = E { w i w i T } = E { ∣ w i ∣ 2 } r_{i,i}=E\left\{ w_i w_i ^T \right\}=E\left \{ \left | w_i \right |^2 \right \} ri,i=E{wiwiT}=E{∣wi∣2}
r i , j r_{i,j} ri,j是 w i w_i wi和 w j w_j wj的互相关系数:
r i , j = E { w i w j T } r_{i,j}=E\left \{ w_iw_j^T \right \} ri,j=E{wiwjT}
自相关矩阵是复共轭对称的,即为Hermitian矩阵。
这里就不举例了,计算方法都相似~
自相关矩阵与自协方差矩阵存在如下关系:
C X , X = R X , X − M X M X T C_{X,X}=R_{X,X}-M_XM_X^T CX,X=RX,X−MXMXT
考虑又一个数据集,样本数量无所谓,但是特征数一定要是N:
Y = { y 1 , y 2 , . . . , y n } T Y=\left \{ y_1,y_2,...,y_n \right \}^T Y={y1,y2,...,yn}T
通过自协方差矩阵的推广,可以得到样本向量 X X X与 Y Y Y的互协方差矩阵,定义为:
M X = E ( X ) M Y = E ( Y ) C X , Y = E { ( X − M X ) ( Y − M Y ) T } = [ c w x 1 , w y 1 . . . c w x 1 , w y N . . . . . . . . . c w x N , w y 1 . . . c w x N , w y N ] M_X=E\left ( X \right ) \\ M_Y=E\left ( Y \right ) \\ C_{X,Y}=E\left\{ \left ( X-M_X \right )\left ( Y-M_Y \right ) ^T \right\} =\begin{bmatrix} c_{w_{x1},w_{y1}} & ... & c_{w_{x1},w_{yN}}\\ ... & ... & ...\\ c_{w_{xN},w_{y1}} & ... &c_{w_{xN},w_{yN}} \end{bmatrix} MX=E(X)MY=E(Y)CX,Y=E{(X−MX)(Y−MY)T}=⎣⎡cwx1,wy1...cwxN,wy1.........cwx1,wyN...cwxN,wyN⎦⎤
互协方差表示两个向量对应元素减去各自期望,再相乘再做期望。
( X − M X ) , ( Y − M Y ) T \left ( X-M_X \right ),\left ( Y-M_Y \right ) ^T (X−MX),(Y−MY)T表示两个零期望的随机序列。
通过自相关矩阵的推广,可以得到样本向量 X X X与 Y Y Y的互相关矩阵,定义为:
R X , Y = E ( X Y T ) = [ r w x 1 , w y 1 . . . r w x 1 , w y N . . . . . . . . . r w x N , w y 1 . . . r w x N , w y N ] R_{X,Y}=E\left ( XY^T \right ) =\begin{bmatrix} r_{w_{x1},w_{y1}} & ... & r_{w_{x1},w_{yN}}\\ ... & ... & ...\\ r_{w_{xN},w_{y1}} & ... &r_{w_{xN},w_{yN}} \end{bmatrix} RX,Y=E(XYT)=⎣⎡rwx1,wy1...rwxN,wy1.........rwx1,wyN...rwxN,wyN⎦⎤
互相关表示两个向量对应元素相乘的期望。
互相关矩阵与互协方差矩阵存在如下关系:
C X , Y = R X , Y − M X M Y T C_{X,Y}=R_{X,Y}-M_XM_Y^T CX,Y=RX,Y−MXMYT
当样本向量 X X X与 Y Y Y的维数不同时,他们的互相关矩阵和互协方差矩阵为非方阵,当他们的维数相同时,他们的互相关矩阵与互协方差矩阵为方阵,但仍不为复共轭对称矩阵。
如果 X X X与 Y Y Y这两个序列的期望 E ( X ) E(X) E(X)与 E ( Y ) E(Y) E(Y)为0,那么互相关矩阵和互协方差矩阵是一样的。
协方差矩阵与互协方差矩阵由如下的性质:
(1)自协方差矩阵是复共轭转置对称的;
(2)线性组合向量 A x + b Ax+b Ax+b的自协方差矩阵 C A x + b = C A x = A C x A T C_{Ax+b}=C_{Ax}=AC_xA^T CAx+b=CAx=ACxAT;
(3)互协方差矩阵不是复共轭转置对称的,但是满足 C x , y = C y , x T C_{x,y}=C_{y,x}^T Cx,y=Cy,xT;
(4) C x 1 + x 2 , y = C x 1 , y + C x 2 , y C_{x_1+x_2,y}=C_{x_1,y}+C_{x_2,y} Cx1+x2,y=Cx1,y+Cx2,y;
(5)若随机向量 X X X与 Y Y Y具有相同的维数,则 C x + y = C x + C x , y + C y , x + C y C_{x+y}=C_x+C_{x,y}+C_{y,x}+C_y Cx+y=Cx+Cx,y+Cy,x+Cy;
(6) C A x , B y = A C x , y B T C_{Ax,By}=AC_{x,y}B^T CAx,By=ACx,yBT;
自协方差矩阵和互协方差矩阵主要用于描述矩阵各行,列向量之间的相关程度,但由于其元素是自协方差矩阵,互协方差函数的绝对大小,有的时候在衡量相关度的时候并不准确,因而需要引入相关系数的概念,定义为:
ρ x y ⇒ d e f c x , y σ x σ y \rho_{xy}\overset{def}{\Rightarrow}\frac{c_{x,y}}{\sigma_x\sigma_y} ρxy⇒defσxσycx,y
其中, 是随机变量 X X X与 Y Y Y的互协方差, σ x 2 \sigma_x^2 σx2与 σ y 2 \sigma_y^2 σy2则表示 X X X与 Y Y Y的方差。由Caucht-Schwartz不等式可以知道 0 ≤ ∣ ρ x y ∣ ≤ 1 0\le\left|\rho_{xy}\right|\le1 0≤∣ρxy∣≤1。相关系数 ρ x y \rho_{xy} ρxy给出了随机向量 X X X与 Y Y Y的相关程度,接近于0说明两个向量的相似度越小,越接近于1说明两个向量的相似度越大。