机器学习——线性高斯模型
高斯作为机器学习中的常客也是无法避免的,而线性模型作为比较简单的模型,两者结合出的线性高斯模型,在今后的机器学习中大量涉及到这方面的知识。例如在各种滤波中,高斯滤波,卡曼滤波,粒子滤波。
一维情况 MLE: Maximum Likelihood Estimation
高斯分布在机器学习中占有举足轻重的作用。在 MLE 方法中:
一般地,高斯分布的概率密度函数 PDF(Probability Density Function)写为:
带入 MLE 中我们考虑一维的情况
首先对 \(\mu\) 的极值可以得到 :
于是:
其次对 \(\theta\) 中的另一个参数 \(\sigma\) ,有:
于是:
值得注意的是,上面的推导中,首先对 \(\mu\) 求 MLE, 然后利用这个结果求 \(\sigma_{MLE}\) ,因此可以预期的是对数据集\(\mathcal{D}\)求期望时 \(\mathbb{E}_{\mathcal{D}}[\mu_{MLE}]\) 是无偏差的:
但是当对 \(\sigma_{MLE}\) 求 期望的时候由于使用了单个数据集的 \(\mu_{MLE}\),因此对所有数据集求期望的时候我们会发现 \(\sigma_{MLE}\) 是 有偏的:
所以:
多维情况MLE
多维高斯分布表达式为:
其中 \(x,\mu\in\mathbb{R}^{p},\Sigma\in\mathbb{R}^{p\times p}\) ,$\mu \(是期望,\)\Sigma$ 为协方差矩阵,一般而言也是半正定矩阵。这里我们只考虑正定矩阵,以方便计算。
什么是正定?
当\(A\in \mathbb{R}^{n\times n}, A^T=A\)时,对任意\(x\neq0,x \in R^n\),都有\(x^TAx\gt0\)什么是半正定?
当\(A\in \mathbb{R}^{n\times n}, A^T=A\)时,对任意\(x\neq0,x \in R^n\),都有\(x^TAx\ge0\)
常用的正定判定有
1. $\lambda(A)\gt0$ 2. 各阶主子式均大于0
首先我们处理指数上的数字,指数上的数字可以记为 \(x\) 和 \(\mu\) 之间的马氏距离。对于对称的协方差矩阵可进行特征值分解,
,于是:
我们注意到 \(y_{i}\) 是 \(x-\mu\) 在特征向量 \(u_{i}\) 上的投影长度,相当于是坐标轴的平移与旋转。因此上式子就是 \(\Delta\) 取不同值时的同心椭圆。
下面我们看多维高斯模型在实际应用时的两个问题
-
参数 \(\Sigma,\mu\) 的自由度为 \(O(p^{2})\) 对于维度很高的数据其自由度太高。解决方案:高自由度的来源是 \(\Sigma\) 有 \(\frac{p(p+1)}{2}\) 个自由参数,可以假设其是对角矩阵,甚至在各向同性假设中假设其对角线上的元素都相同。前一种的算法有 Factor Analysis,后一种有概率 PCA: Principal Component Analysis(p-PCA) 。
\(\forall i,j \in 1 \cdots p,i\neq j,\lambda_{i}=\lambda_{j},\Sigma\)为对角矩阵,可判定各特征各自同性。
-
第二个问题是单个高斯分布是单峰的,对有多个峰的数据分布不能得到好的结果。解决方案:高斯混合模型 GMM。
下面对多维高斯分布的常用定理进行介绍。
我们记 \(x=(x_1, x_2,\cdots,x_p)^T=(x_{a,m\times 1}, x_{b,n\times1})^T,\mu=(\mu_{a,m\times1}, \mu_{b,n\times1})^{T},\Sigma=\begin{pmatrix}\Sigma_{aa}&\Sigma_{ab}\\\Sigma_{ba}&\Sigma_{bb}\end{pmatrix}\),已知 \(x\sim\mathcal{N}(\mu,\Sigma)\)。
首先是一个高斯分布的定理:`
定理:已知 \(x\sim\mathcal{N}(\mu,\Sigma), y\sim Ax+b\),那么 \(y\sim\mathcal{N}(A\mu+b, A\Sigma A^T)\)。
证明:\(\mathbb{E}[y]=\mathbb{E}[Ax+b]=A\mathbb{E}[x]+b=A\mu+b\),\(Var[y]=Var[Ax+b]=Var[Ax]=A\cdot Var[x]\cdot A^T\)。
下面利用这个定理得到 \(p(x_a),p(x_b),p(x_a|x_b),p(x_b|x_a)\) 这四个量。
-
\(x_a=\begin{pmatrix}\mathbb{I}_{m\times m}&\mathbb{O}_{m\times n})\end{pmatrix}\begin{pmatrix}x_a\\x_b\end{pmatrix}\),代入定理中得到:
\[\mathbb{E}[x_a]=\begin{pmatrix}\mathbb{I}&\mathbb{O}\end{pmatrix}\begin{pmatrix}\mu_a\\\mu_b\end{pmatrix}=\mu_a\\ Var[x_a]=\begin{pmatrix}\mathbb{I}&\mathbb{O}\end{pmatrix}\begin{pmatrix}\Sigma_{aa}&\Sigma_{ab}\\\Sigma_{ba}&\Sigma_{bb}\end{pmatrix}\begin{pmatrix}\mathbb{I}\\\mathbb{O}\end{pmatrix}=\Sigma_{aa} \]所以 \(x_a\sim\mathcal{N}(\mu_a,\Sigma_{aa})\)。
-
同样的,\(x_b\sim\mathcal{N}(\mu_b,\Sigma_{bb})\)。
-
对于两个条件概率,我们引入三个量:
\[x_{b\cdot a}=x_b-\Sigma_{ba}\Sigma_{aa}^{-1}x_a\\ \mu_{b\cdot a}=\mu_b-\Sigma_{ba}\Sigma_{aa}^{-1}\mu_a\\ \Sigma_{bb\cdot a}=\Sigma_{bb}-\Sigma_{ba}\Sigma_{aa}^{-1}\Sigma_{ab} \]特别的,最后一个式子叫做 \(\Sigma_{bb}\) 的 Schur Complementary。可以看到:
\[x_{b\cdot a}=\begin{pmatrix}-\Sigma_{ba}\Sigma_{aa}^{-1}&\mathbb{I}_{n\times n}\end{pmatrix}\begin{pmatrix}x_a\\x_b\end{pmatrix} \]所以:
\[\mathbb{E}[x_{b\cdot a}]=\begin{pmatrix}-\Sigma_{ba}\Sigma_{aa}^{-1}&\mathbb{I}_{n\times n}\end{pmatrix}\begin{pmatrix}\mu_a\\\mu_b\end{pmatrix}=\mu_{b\cdot a}\\Var[x_{b\cdot a}]=\begin{pmatrix}-\Sigma_{ba}\Sigma_{aa}^{-1}&\mathbb{I}_{n\times n}\end{pmatrix}\begin{pmatrix}\Sigma_{aa}&\Sigma_{ab}\\\Sigma_{ba}&\Sigma_{bb}\end{pmatrix}\begin{pmatrix}-\Sigma_{aa}^{-1}\Sigma_{ba}^T\\\mathbb{I}_{n\times n}\end{pmatrix}=\Sigma_{bb\cdot a} \]利用这三个量可以得到 \(x_b=x_{b\cdot a}+\Sigma_{ba}\Sigma_{aa}^{-1}x_a\)。因此:
\[\mathbb{E}[x_b|x_a]=\mu_{b\cdot a}+\Sigma_{ba}\Sigma_{aa}^{-1}x_a \]\[Var[x_b|x_a]=\Sigma_{bb\cdot a} \]这里同样用到了定理。
-
同样:
\[x_{a\cdot b}=x_a-\Sigma_{ab}\Sigma_{bb}^{-1}x_b\\ \mu_{a\cdot b}=\mu_a-\Sigma_{ab}\Sigma_{bb}^{-1}\mu_b\\ \Sigma_{aa\cdot b}=\Sigma_{aa}-\Sigma_{ab}\Sigma_{bb}^{-1}\Sigma_{ba} \]所以:
\[\mathbb{E}[x_a|x_b]=\mu_{a\cdot b}+\Sigma_{ab}\Sigma_{bb}^{-1}x_b \]\[Var[x_a|x_b]=\Sigma_{aa\cdot b} \]
下面利用上边四个量,求解线性模型:
已知:\(p(x)=\mathcal{N}(\mu,\Lambda^{-1}),p(y|x)=\mathcal{N}(Ax+b,L^{-1})\),求解:\(p(y),p(x|y)\)。
解:令 \(y=Ax+b+\epsilon,\epsilon\sim\mathcal{N}(0,L^{-1})\),所以 \(\mathbb{E}[y]=\mathbb{E}[Ax+b+\epsilon]=A\mu+b\),\(Var[y]=A \Lambda^{-1}A^T+L^{-1}\),因此:
\[p(y)=\mathcal{N}(A\mu+b,L^{-1}+A\Lambda^{-1}A^T) \]引入 \(z=\begin{pmatrix}x\\y\end{pmatrix}\),我们可以得到 \(Cov[x,y]=\mathbb{E}[(x-\mathbb{E}[x])(y-\mathbb{E}[y])^T]\)。对于这个协方差可以直接计算:
\[\begin{align} Cov(x,y)&=\mathbb{E}[(x-\mu)(Ax-A\mu+\epsilon)^T]\\ &=\mathbb{E}[(x-\mu)(x-\mu)^TA^T]\\ &=Var[x]A^T=\Lambda^{-1}A^T \end{align} \]注意到协方差矩阵的对称性,所以 \(p(z)=\mathcal{N}\begin{pmatrix}\mu\\A\mu+b\end{pmatrix},\begin{pmatrix}\Lambda^{-1}&\Lambda^{-1}A^T\\A\Lambda^{-1}&L^{-1}+A\Lambda^{-1}A^T\end {pmatrix}\)。根据之前的公式,我们可以得到:
\[\mathbb{E}[x|y]=\mu+\Lambda^{-1}A^T(L^{-1}+A\Lambda^{-1}A^T)^{-1}(y-A\mu-b) \]\[Var[x|y]=\Lambda^{-1}-\Lambda^{-1}A^T(L^{-1}+A\Lambda^{-1}A^T)^{-1}A\Lambda^{-1} \]
这里的\(\Lambda^{-1}\)是精度矩阵,\(\mathit{L}^{-1}\)是协方差矩阵。
这里补充一些小知识
- 一般情况下,两个随机变量\(x ,y\)独立不相关,不相关不一定独立
- 若\(x,y\sim N(\mu,\Sigma)\),不相关等价于独立
有时会发现学习是一件很快乐的事情 比一直跑步容易多了 不是嘛