从随机变量到随机向量再到随机矩阵:那个你不一定知道的矩阵高斯分布

从随机变量到随机向量再到随机矩阵:那个你不一定知道的矩阵高斯分布

之前我们从高斯分布讲到了多维高斯分布,原来打算接下去可以说说高斯分布的衍生,不过既然评论中有些小伙伴们想先了解这个高斯分布的再进化版:矩阵值高斯分布(这里我们都简化叫做矩阵高斯分布)。

PS:由于这部分直接跟矩阵代数相关,所以很多东西偶也只能陈述结论了哈,如果想要了解具体的只有自己好好钻研矩阵代数了哦!另外,确实这部分比较理论比较难,偶也只是尽量,尽量讲的通俗一点哈,不过看着好像还是很。。。

  • 随机变量,随机向量,随机矩阵

要说矩阵高斯分布,我们还是要先说说概念。

可能你会说,随机变量这个难道我们还不知道么?不就是个变量么,再给个修饰词随机的,这不就是随机变量嘛,反正这个知不知道这个分布各种我都可以照算不误啊!额,似乎结果是这样的,不过从数学上讲,这却是个严肃的话题,定义:随机变量

A random variable {\displaystyle X\colon \Omega \to E} is a measurable function from a set of possible outcomes {\displaystyle \Omega } to a measurable space {\displaystyle E}. The technical axiomatic definition requires {\displaystyle \Omega } to be a probability space (see Measure-theoretic definition). Usually {\displaystyle X} is real-valued (i.e. {\displaystyle E=\mathbb {R} }).
从定义上看,事实上随机变量的本质是个函数,而非变量。进一步将,还是个可测函数。如果学过测度论(一般情况下实变函数其实也讲这个),那想必是对可测的概念是不陌生的。若是没有学过,那么顾名思义,可测函数就是可以测量的函数,这个所谓的可以测量当然也需要在给定标准下定义的可以测量,比如黎曼可测,比如勒贝格可测,再比如概率事实上也是一种测度。说到概率,或许你会觉得概率只不过那些熟悉的数字1%,或者是等价的词语:可能性,然而在数学上,概率却是一门基于分析学衍生的及其严格的博大精深的学科,每一个概念都有严格的定义,每一步推导都有严格的证明哦!当然这个问题,不是一句两句能讲的清楚的,也不是我们这里讨论的重点啦。

当然这里还需要说的一点是随机变量并不能直接得\sigma^2到概率,概率事实上是一个随机变量的结果,一个基于的概率测度的结果。

其实上面说了那么多理论的东西,只是为了下面更方便解释。在随机变量中的measurable space E = \mathbb{R},所谓随机向量random vector,其实就是multivariate random variable,从定义上看,其实就是讲measurable space将原先的空间变为 E = \mathbb{R}^n当然更简单的看就是,一列随机变量排排站,构成一个向量。这里所谓的“排排站”对于一般没有任何限制的随机变量来说自然是没有限制,“排排站”就是排排站,但是若是对于有高斯分布限制的随机变量结果就是按照高斯分布的方式排排站喽,也就是整个向量要满足多维高斯分布。这里还是要强调一下在上一篇文章:那些你知道的和你不知道的性质(II):说说你知道但不熟悉的多维高斯分布 - 知乎专栏 中说到的随机向量中每个元素都服从高斯分布,并不足以推断出整个向量服从高斯分布,一定要有独立的条件,即其中的元素满足的条件是独立的高斯分布。

下面我们来直观的看看随机变量(向量)与(多维)高斯分布的关系:

对于随机变量X \sim \mathcal{N}(\mu,\sigma^2),说明这个随机变量的平均(期望)情况被均值\mu所刻画,而这个随机变量的波动情况被\sigma^2刻画。

对于随机向量Y = [X_1,\cdots,X_n]^T \sim \mathcal{N}(\bm{\mu},\Sigma),说明这个随机向量的每个分量的平均(期望)情况被对应均值向量\bm{\mu}对应的分量所刻画,而分量之间的关系(包括自身和自身的关系)被后面的协方差函数所刻画。

看完随机变量和随机向量,我们终于可以寻思一下这个随机矩阵的,因为从单量到向量再到矩阵是一个非常自然的推广的想法哦!

X  \rightarrow    \left[
  \begin{array}{ccc}
    X_1  \\
    \vdots  \\
    X_n \\
  \end{array}
\right]  \rightarrow  \left[
  \begin{array}{ccc}
    X_{11} & \cdots & X_{1d} \\
    \vdots& \ddots & \vdots \\
    X_{n1} & \cdots & X_{nd} \\
  \end{array}
\right]

因而随机矩阵(random matrix),事实上也就是矩阵值的随机变量(matrix-valued random variable),因此其实就是之前随机变量定义中measurable space将原先的空间变为 E = \mathbb{R}^{n \times n}。既然如此定义,那么我们是不是可以想想,若要这个随机矩阵满足一个我们暂时还不知道长什么样的矩阵高斯分布,那它需要一些什么条件呢?

  1. 均值矩阵:这个不用说,即对应的随机矩阵的各个元素的平均(期望)情况都要被均值矩阵中对应的元素所刻画。
  2. 协方差矩阵:按照之前随机向量的讨论,我们需要协方差矩阵去刻画各个分量之间的关系(包括自身和自身的关系)。但是问题来了,对于一个向量,两两之间的关系用一个矩阵就可以刻画了,但是现在是一个矩阵,而就是说有d个列向量,此时,我们应该如何刻画这种关系呢?显然一个协方差矩阵是不够用了,所以我们现在需要两个矩阵,记为列协方差矩阵(column covariance matrix)和行协方差矩阵(row covariance matrix)。
    对于随机矩阵Z = \left[
  \begin{array}{ccc}
    X_{11} & \cdots & X_{1d} \\
    \vdots& \ddots & \vdots \\
    X_{n1} & \cdots & X_{nd} \\
  \end{array}
\right],若我们按一列一列看,那么每一列就是一个随机向量,因为可以用对应的随机向量的协方差函数刻画。虽然这里一共有n行,但是我们可以说每一列虽然随机的,但是每一列事实上这个都是满足这个对应协方差的高斯分布的。所以之前所说的列协方差矩阵事实上也就是原先随机向量里的协方差矩阵。不过,单纯从列来看,我们是不是忽略了列与列之间的呢?对称来讲,我们还可以从行来看,一行一行看,其实这仍然可以看做一个随机向量,所以我们也可以用一个协方差矩阵去刻画它们之间的关系,这个就是在随机矩阵中的所谓的行协方差矩阵。

综合以前分析之前的分析,对应的矩阵高斯分布应该是这样的形式\mathcal{N}(M, \Sigma, \Omega)(当然区别期间一般也记为\mathcal{MN}(M, \Sigma, \Omega),另外严格来说对应的还需要下标来表示对应行列的size),即一个矩阵高斯分布可以由均值矩阵M,列协方矩阵\Sigma,以及行协方差矩阵\Omega所决定。当然也是如此,对于一个 n \times d的随机矩阵 Z,它的概率密度函数pdf为:

p(Z|M,\Sigma,\Omega) = (2\pi)^{-\frac{1}{2}dn}\det(\Sigma)^{-\frac{d}{2}}\det(\Omega)^{-\frac{n}{2}}\exp\left(-\frac{1}{2}\mathrm{tr}(\Omega^{-1}(Z - M)^{T}\Sigma^{-1}(Z - M))\right)

对于这个pdf我也要说几句:

  1. 这个pdf你或许会见过好多个不同的表达形式,但本质都是一样的,主要原因是tr,也即是矩阵的迹的性质,至于你要问什么是矩阵的迹,这个只能wiki了一下矩阵的迹。首先矩阵的迹具有线性,即\mathrm{tr}(r\cdot Z) = r \cdot \mathrm{tr}(Z),另外就是矩阵的迹具有循环置换不变性,即\mathrm{tr}(ABC)  =\mathrm{tr}(BCA) =\mathrm{tr}(CAB) 。因此,上述的pdf还可以表述为
    p(Z|M,\Sigma,\Omega) &=& (2\pi)^{-\frac{1}{2}dn}\det(\Sigma)^{-\frac{d}{2}}\det(\Omega)^{-\frac{n}{2}}\exp\left(-\frac{1}{2}\mathrm{tr}(\Sigma^{-1}(Z - M)\Omega^{-1}(Z - M)^{T})\right) \\
 & =& (2\pi)^{-\frac{1}{2}dn}\det(\Sigma)^{-\frac{d}{2}}\det(\Omega)^{-\frac{n}{2}}\mathrm{etr}\left(-\frac{1}{2}\Omega^{-1}(Z - M)^{T}\Sigma^{-1}(Z - M)\right)  \\
&=& (2\pi)^{-\frac{1}{2}dn}\det(\Sigma)^{-\frac{d}{2}}\det(\Omega)^{-\frac{n}{2}}\mathrm{etr}\left(-\frac{1}{2}\Sigma^{-1}(Z - M)\Omega^{-1}(Z - M)^{T}\right)
    其中\mathrm{etr}表示迹的指数。
  2. 别看这个这个表达式非常复杂,但是自然观察就可以发现这个公式非常有特色,也比较便于记忆。首先是常数项:2\pi的指数上的就是随机矩阵的size,行乘以列,常系数是-1/2,之后是列协方差矩阵与行协方差函数,这里需要重点强调的是,这两个矩阵的size,注意,这个的列协方差矩阵是n \times n的, 而行协方差函数是d \times d的哦!而在表示式中,却是有一种对角相乘的感觉哦,\Sigma对应的系数是d而\Omega对应的系数是n,当然这个一直都有的-1/2也不能忘。只是etr里面的部分就是把\Sigma^{-1}(Z - M)\Omega^{-1}(Z - M)^{T}各自看做整体然后至于哪个在前哪个在后其实关系并不大,看你自己的记忆习惯啦,当然为什么一个没有转置一个有转置,你想想这个矩阵乘法的要求就明白啦(size要匹配嘛!)


一般情况下呢,看完一个分布的pdf之后我们为了直观,可以对应着看看密度函数直观的长相,高矮胖瘦,对称与否,一目了然,不过这个对应这个矩阵高斯分布,这个所谓的直观暂时还是很难做到,所以我们只能先看看它的性质啦,看完性质,之后我们再根据等价性质直观的看看这个分布的庐山真面目。偷个小懒,这里直接引用了文章arxiv.org/pdf/1703.0445中性质定理的叙述。
  • 转置性

这个性质其实很好理解,一个转置下来,行变列,列变行,对应的各种都行列互换就好。

  • 向量化

这里需要解释的是这个向量算子,所谓向量算子就是把矩阵向量化的算子,


具体的可以详见Vectorization (mathematics)。直观来讲,就是把一个矩阵按照列的顺序拆开,然后将后面的列依次连接在第一列上,使之成为一个大的向量的的运算。简单的来个例子,

A = \left[
  \begin{array}{ccc}
   a &b \\
    c &d \\
  \end{array}
\right], \mathrm{vec}(A) =  \left[
  \begin{array}{ccc}
   a \\
    c \\
    b \\
    d
  \end{array}
\right]

再说一个概念,Kronecker product。事实上这一个种可以让矩阵变大的特殊的乘法。学过matlab的小伙伴可以还会记得,matlab中当遇到矩阵做乘法时候根据需求,必须明确*与.*。前者是一般意义上的矩阵乘法,而后者则是点乘,即矩阵对应元素乘积构成新的矩阵。不过无论哪一种其实矩阵都不会完全改变原来的size,毕竟\mathbb{R}^{n \times d} *\mathbb{R}^{d \times m}  = \mathbb{R}^{n \times m} \mathbb{R}^{n \times d} .*\mathbb{R}^{n \times d}  = \mathbb{R}^{n \times d} (矩阵一般乘法要求第一个的列等于第二个的行,而点乘的要求是两个矩阵的size一致)。现在我们提到的Kronecker乘积则是\mathbb{R}^{n \times d} \otimes \mathbb{R}^{m \times t}  = \mathbb{R}^{nm \times dt} ,它对两个矩阵没有任何size的要求哦!详细的可以看Kronecker product。这里简要的写个wiki上的例子,想必聪明的你一定可以看懂的哦!

好了,回来继续说说这个定理2的重点吧。

通俗的来讲,一个矩阵若是服从矩阵高斯分布,那么将它列向量化话之后,它可以满足一个多维的高斯分布。一个什么样的多维的高斯分布呢?均值向量为原均值矩阵的列向量化,而新的协方差矩阵却是由原先的列协方差矩阵和行协方差矩阵的Kronecker乘积构成。

若是站在一个更高的角度看:定理2说明了矩阵高斯分布和多维高斯分布通过vec算子之后有着等价的表述

或许你会觉得这一点没有什么稀奇的,但是这点的的确确又一次显示着高斯系分布的优良性质,因为在之后我们会说到,即便是跟高斯分布最像的t分布,当一步步升级到矩阵分布的时候,哪怕是t系列的矩阵分布也不具备这种特殊的等价表述。这样的等价表达事实上可以让我们对矩阵高斯分布的研究转化为对多维高斯分布的研究!这样的转化是一种非常重要的数学思想哦!

正是有了定理2的保证,我们可以来生成一个矩阵高斯分布的样本来看看了哈!

% matrix Gaussian distribution
clc
clear 
close all


seed=128; % set a random seed
rng(seed);
N = 10000; % the number of points

mu1 = [1;2]; 
sigma1 = [1 0;0 1];  
mu2 = [2;4];
sigma2 = [1 0.5;0.5 1];

Mu = [mu1;mu2]; % produce a mean matrix using reshaping directly
Sigma = kron(sigma1,sigma2); % produce a new covariance matrix using kronecker product

sample = mvnrnd(Mu,Sigma,N); % generate a multivariate Gaussian distribition sample using 
                             % the previous mean matrix and covariance matrix
sample = reshape(sample',2,2,N); % convert vector to matrix

% plot the matrix from columan and row veiw
subplot(2,2,1)
col1_view_row1 = reshape(sample(1,1,:),N,1);
col1_view_row2 = reshape(sample(2,1,:),N,1);
plot(col1_view_row1,col1_view_row2,'r.')
axis equal
title('Column 1 view: Row 1 vs Row 2')

subplot(2,2,2)
col2_view_row1 = reshape(sample(1,2,:),N,1);
col2_view_row2 = reshape(sample(2,2,:),N,1);
plot(col2_view_row1,col2_view_row2,'g.')
axis equal
title('Column 2 view: Row 1 vs Row 2')

subplot(2,2,3)
row1_view_col1 = reshape(sample(1,1,:),N,1);
row1_view_col2 = reshape(sample(1,2,:),N,1);
plot(row1_view_col1,row1_view_col2,'b.')
title('Row 1 view: Column 1 vs Column 2')
axis equal

subplot(2,2,4)
row2_view_col1 = reshape(sample(2,1,:),N,1);
row2_view_col2 = reshape(sample(2,2,:),N,1);
plot(row2_view_col1,row2_view_col2,'m.')
axis equal
title('Row 2 view: Column 1 vs Column 2')

对比上左和上右(或者下左和下右)可以发现,虽然中点不同,(因为中点是由均值矩阵决定的),但是整体的形状却是相同的,因为它们都是由相同的协方差矩阵决定的(上面的都是由列协方差矩阵决定,下面的都是由行协方差矩阵决定)。

  • 其他各种线性性质

说到性质,你肯定不会忘记之前我们在讨论高斯分布和多维高斯分布中的“和”,“差”等一些线性的性质,当然对于身为高斯系家族的分布,矩阵高斯分布当然也是可以具备的啦!具体的你都可以转化为多维高斯分布然后再讨论,因而在多维高斯分布中符合的自然在矩阵高斯分布中都可以继续保持。

  • 边际分布和条件分布

重要的点还是需要再次强调的哈!对之后统计学习最最最有用的部分就是这个啦!再偷个小懒,直接截个定理的图:

还是那句话,虽然看着结果比较复杂,但是细细看来,仍然是有不少规律可以抓哦!忘记了的话,可以回去看看那些你知道的和你不知道的性质(II):说说你知道但不熟悉的多维高斯分布 - 知乎专栏中教你的记忆方法哦!

这里要说的一个新的重要的观察结论,即无论是边际还是条件分布,当我们从列考虑时,都保持行协方差矩阵不变;从行考虑时,列协方差函数都保持不变。记住这点,外加之前所说的方法,那么记住这个表达式应该不在话下哦!



最后若是大家对于矩阵的各种分布有兴趣的话,强烈安利一本书:



参考文献

  1. Gupta A K, Nagar D K. Matrix variate distributions[M]. CRC Press, 1999.
  2. Chen Z, Wang B, Gorban A N. Multivariate Gaussian and Student $-t $ Process Regression for Multi-output Prediction[J]. arXiv preprint arXiv:1703.04455, 2017.arxiv.org/pdf/1703.0445
编辑于 2017-04-13

文章被以下专栏收录