feng's Blog

Happy coding

Relevance Vector Machine 2

接下来,我们讨论一下在已经得到训练样本的情况下,$\mathbf{w}$的后验概率。

--------------------------------------------------------------------------------------------------------------------------------------------

在获得训练数据之前。$\mathbf{w}$是0均值的,那么给定一个$\mathbf{x}$之后,期望的输出应该是0。现在得到训练数据之后,我们可能发现输出的$\mathbf{t} = [t_1, t_2, ..., t_N]^T$并不完全是0。这个时候,在给定的训练数据之后,我们可以计算出来$\mathbf{x}$的后验概率。也就是计算

\[p(\mathbf{w}|\mathbf{t}, \mathbf{X}, \mathbf{\alpha}, \beta)\]。

在这里,我们暂时应该把$\mathbf{\alpha}$和$\beta$看作是已知的,或者说实在给定的情况下。根据概率公式,我们有

\[p(\mathbf{w}|\mathbf{t}, \mathbf{X}, \mathbf{\alpha}, \beta) = \frac{p(\mathbf{w}|\mathbf{\alpha})p(\mathbf{t}|\mathbf{X}, \mathbf{\alpha}, \beta)}{p(t|\mathbf{X}, \mathbf{\alpha}, \beta)}\]。

首先看分母,分母其实是一个归一化的参数,保证了对$\mathbf{w}$在整个空间上积分的值为1。再看一下分子,第一项是一个关于$\mathbf{w}$的高斯分布,第二项也是一个高斯分布。参数$\mathbf{w}$都在这个高斯分布的指数上面,并且可以看出,都是关于$\mathbf{w}$的二项式。也就是说,从这里我们可以断定,这个$\mathbf{w}$的后验概率,也是一个高斯分布。如果对于高斯分布的具体形式不是很清楚的话,请看附录。

 

既然是一个高斯分布,我们只需要求解出来它的均值和方差就行了。在这里,我们只需要计算化简指数上面跟$\mathbf{w}$相关的二项式。我们把这个二项式写出来

\[-\frac{1}{2}\mathbf{w}^T A \mathbf{w} - \frac{1}{2}\sum_{i = 1}^{N}{\beta(t_i - \mathbf{w}^T \phi(\mathbf{x}_i))^2}\]

这里的$A = diag(\alpha_i)$。接下来进行化简,化简的过程中,我们可以尽情的扔掉与$\mathbf{w}$无关的项。最后得到的结果为

\[-\frac{1}{2}(\mathbf{w}^T(A + \beta \Phi^T\Phi)\mathbf{w} - 2\beta \mathbf{w}^T\Phi^T\mathbf{t})\]

其中$\Phi$是一个矩阵,每一行是一个样本$\phi_{\mathbf{x}_i}^T$。根据前面的讨论,我们已经知道$\mathbf{w}$的后验概率是一个高斯分布,假定其均值为$\mathbf{m}$,协方差矩阵为$\Sigma$,那么它的指数项为

\[-\frac{1}{2}(\mathbf{w} - \mathbf{m})^T\Sigma^{-1}(\mathbf{x} - \mathbf{m}) = -\frac{1}{2}(\mathbf{w}^T\Sigma^{-1}\mathbf{w} - 2 \mathbf{w}^T\Sigma^{-1}\mathbf{m})+const\]

这里面的$const$代表了跟$\mathbf{w}$无关系的项。这两项进行对比,我们可以得到如下的结论

\[\Sigma = (A + \beta\Phi^T\Phi)^{-1}\]

\[\mathbf{m} = \beta\Sigma\Phi^{T}\mathbf{t}\]

 

自此,我们得到了在给定训练样本的情况下,参数$\mathbf{w}$的后验概率。

 

附录

1,高斯函数

\[\mathcal{N}(\mathbf{x}|\mathbf{m}, \mathbf{\Sigma}) = \frac{1}{(2\pi)^{D/2}|\Sigma|^{1/2}} exp{-\frac{1}{2}(\mathbf{x} - \mathbf{m})^T \Sigma^{-1} (\mathbf{x} - \mathbf{m})}\]

Relevance Vector Machine 1

内容关于PRML7.2节的

---------------------------------------------------------------------------------------------------------------------------

这个Relevance Vector Machine(RVM)跟SVM差不多,可以处理Regression问题,也可以处理classification问题。这里我们先讨论regression问题。

 

首先讨论一下什么是regression问题。我们拿到一些训练的样本$(\mathbf{x}_i, t_i)$,希望从中训练出来一个映射关系$t=y(\mathbf{x})$。在测试的时候,给定一个$\mathbf{x}$,我们就可以估计出来$t$的数值。其中$t$一般认为是连续的,$\mathbf{x}$和$\mathbf{t}$一般也都是实数。如何求解这个映射关系$y$,是该问题的重点所在。

 

在RVM这个模型中,假设$t$是这样产生的,

\[p(t|\mathbf{x})=\mathcal{N}(t|y(\mathbf{x}), \beta^-1)$\]

也就是说,给定了$\mathbf{x}$之后,通过映射得到$y(\mathbf{x})$,然后加上一个高斯噪声,输出$t$。这个高斯噪声的平均值是0,方差是$\beta^-1$,其中$\beta$也称之为准确率,未知的。而$y(\mathbf{x})$的形式假定为线性的,也就是说

\[y(\mathbf{x}) = \sum_{i = 1}^{M}{w_i \phi_i(\mathbf{x})} = \mathbf{w}^T \phi(\mathbf{x})\]

这是一种很广义的写法。其中$w_i$是未知的;$M$是未知参数的个数;$\phi_i(\mathbf{x})$是一个预先设置好的函数映射。其实具体在做的时候,$\phi_i(\mathbf{x})=k(\mathbf{x}, \mathbf{x}_i)$。也就是说

\[y(\mathbf{x}) = \sum_{n = 1}^N{w_{n}k(\mathbf{x}, \mathbf{x}_n)} + b\]

其中$N$是训练样本的个数;$k(\cdot, \cdot)$是一个核函数,如果不是很清楚什么是核函数的话,姑且认为是一个普通的函数就好,这里的核函数也是预先设置好,不需要求解的;$b$是一个常数,未知。

实际中用到的是核函数的表达式子,但是以下的推到,也同样适用于广义的写法。所以,我们就直接用$y(\mathbf{x})=\mathbf{w}^T \phi(\mathbf{x})$的写法。

 

现在的问题是,如何求解$\mathbf{w}$和$\beta$。

 

RVM中又假定了$\mathbf{w}$这样的分布性质

\[p(\mathbf{w}|\mathbf{\alpha}) = \prod_{i = 1}^{M}\mathcal{N}(w_i | 0, \alpha_i^{-1})\]

也就是说,每一个$w_i$都是互相独立的,都是符合高斯分布的,而这个分布的均值是0,方差是$\alpha_i^{-1}$。

再接下来的问题就是,如何估计这个方差$\mathbf{\alpha}$和$\beta$。