什么是 Bayesian Statistics?
在 statistical inference 上,主要有两派:频率学派和贝叶斯学派。
贝叶斯推理的目标?
在使用贝叶斯理论过程中,我们最基本的公式如下: 为了方便的计算后验概率,我们会采用共轭先验的方法来简化后验的计算。 举个简单例子,假设我们投掷一枚硬币,我们刚开始认为正面朝上的概率是服从一个 Beta 分布的,Beta 分布能产生一个 0-1 之间的随机数。 我们刚开始假设α = β = 1,则 Beta 分布退化为一个均匀分布,接着我们不断的投掷硬币,记录好每次投掷的结果,然后根据结果再来计算此时正面朝上的概率。 此时我们可以计算出 n 次中 k 次朝上的概率值为: 我们再来计算后验概率: 可以看到后验概率也是 Beta 分布,我们通过假设先验概率为 Beta 分布,能非常方便的计算出后验概率。 下面是一段实验代码: 产生的图如下: 随着实验结果的增加,我们越来越确信正面朝上概率为 0.5。 以上是一个简单的后验问题,如果遇到一些复杂的后验概率,我们就要使用 mcmc 来做了.
我们再来看后验的计算公式: 此处要想计算出解析解,就必须知道 evidence P(D),其计算公式如下: 这里的问题就是我们一般很难求联合概率的积分,所以我们要通过数值逼近的方法来求 P(D)。其中有一大类算法是:Markov Chain Monte Carlo Algorithms,有 Metropolis Algorithm, Metropolis-Hastings, the Gibbs Sampler, Hamiltonian MCMC and the No-U-Turn Sampler (NUTS). 注:此处为什么积分困难,可以看为什么要使用 MCMC 方法?
下面介绍第一个算法:Metropolis 算法。 先介绍 mcmc 算法的一般套路:
不同的 mcmc 算法的区别就在于:
Metropolis 使用正态分布来进行跳跃,正态分布的μ为当前位置的,然后σ是需要决定的。σ 是 Metropolis 算法的参数,不同的 σ 值决定了算法的收敛速度。如果 σ 值大,意味着 proposal width 宽,能够跳的更远,并且搜索更多的后验参数空间,但是容易跳过高概率的地方,但是过小的σ 值,又会使得 proposal width 过小,导致收敛过慢。 一旦新的位置被提议出来,下一步就是要决定是否要跳转了,我们计算两个位置的概率比值: 然后我们从 [0,1] 的均匀分布中采出一个值,如果在 [0,p] 之间就接受,否则拒绝。 下面我们来对上面过程举个例子来说明。 假设我们有一组观测数据,来自一个正态分布,我们假设参数μ的先验分布也是一个正态分布,公式描述如下: μ∼Normal(0,1) # 参数先验概率 x|μ∼Normal(x;μ,1) # 似然 我们通过代码采样如下: 对于这个问题,我们为了对比 mcmc 的结果,该后验概率我们是可以直接计算出来的,具体的数学推导见:note 我们对照上面说的 mcmc 算法的一般套路,先采样: 挑选出新的值后,我们下一步就是要去衡量新的参数好不好,怎么定义好不好呢?就是看新的参数是否能更好的解释数据。 怎么去定义更好的解释数据呢? 可以用下面的公式 解释起来就是基于当前观测数据,哪个参数概率更大。 下面就是决定是否要接收新参数了: 然后不断重复上面的过程,我们就有了一系列的了。 完整的代码可以见 mcmc。 总结 |
|