0%

Bayesian Framework

Conditional=JointMarginal,p(xy)=p(x,y)p(y)\text{Conditional} = \frac{\text{Joint}}{\text{Marginal}},\quad p(x|y)=\frac{p(x,y)}{p(y)}

Product Rule

联合分布可以被表示为一维的条件分布的乘积

p(x,y,z)=p(xy,z)p(yz)p(z)p(x,y,z)=p(x|y,z)p(y|z)p(z)

Sum Rule

任何边缘分布可以利用联合分布通过积分得到

p(y)=p(x,y)dxp(y) = \int p(x,y)dx

Bayes理论

p(yx)=p(x,y)p(x)=p(xy)p(y)p(x)=p(xy)p(y)p(xy)p(y)dyp(y|x) = \frac{p(x,y)}{p(x)} = \frac{p(x|y)p(y)}{p(x)}=\frac{p(x|y)p(y)}{\int p(x|y)p(y)dy}

Bayes理论定义了当新的信息到来的时候,可能性的改变:

Posterior=Likelihood×PriorEvidence\text{Posterior} = \frac{\text{Likelihood} \times \text{Prior}}{\text{Evidence}}

统计推断(Statistical inference)

问题描述:

给定从分布p(xθ)p(x|\theta)中得到的独立同分布变量X=(x1,,xn)X = (x_1,\ldots,x_n),来估计θ\theta

常规方法:

采用极大似然估计(maximum likelihood estimation)

θML=argmaxp(Xθ)=argmaxi=1np(xiθ)=argmaxi=1n=logp(xiθ)\theta_{ML} = \arg \max p(X|\theta) = \arg \max \prod_{i=1}^{n}p(x_i|\theta) = \arg \max \sum_{i=1}^{n} = \log p(x_i|\theta)

贝叶斯方法:

用先验p(θ)p(\theta)来编码θ\theta的不确定性,然后采用贝叶斯推断

p(θX)=i=1np(xiθ)p(θ)i=1np(xiθ)p(θ)dθp(\theta|X) = \frac{\prod_{i=1}^{n}p(x_i|\theta)p(\theta)} {\int \prod_{i=1}^{n}p(x_i|\theta)p(\theta)d\theta}

频率学派vs. 贝叶斯学派

频率学派 贝叶斯学派
变量 有随机变量也有确定的 全都是随机变量
适用范围 n>>dn>>d n\forall n
  • 现代机器学习模型中可训练的参数数量已经接近训练数据的大小了

  • 频率学派得到的结果实际上是一种受限制的Bayesian方法:

    limn/dp(θx1,,xn)=δ(θθML)\lim_{n/d \rightarrow \infty}p(\theta|x_1,\ldots,x_n)=\delta(\theta-\theta_{ML})

    注:此处的δ\delta函数指的是狄拉克函数

贝叶斯方法的优点

  • 可以用先验分布来编码我们的先验知识或者是希望的做种结果
  • 先验是一种正则化的方式
  • 相对于θ\theta的点估计方法,后验还包含有关于估计的不确定性关系的信息

概率机器学习模型

数据:

  • xx – 观察到变量的集合(features)
  • yy – 隐变量的集合(class label / hidden representation, etc.)

模型:

  • θ\theta – 模型的参数(weights)

Discriminative probabilistic ML model

通常假设θ\theta的先验与xx没有关系

p(y,θx)=p(yx,θ)p(θ)p(y,\theta|x) = p(y|x,\theta)p(\theta)

Examples:

  • 分类或者回归任务(隐层表示比观测空间简单得多)
  • 机器翻译(隐层表示和观测的空间有着相同的复杂度)

Generative probabilistic ML model

可能会很难训练,因为通常而言观测到的xx会比隐层复杂很多。

Examples:

  • 文本,图片的生成

贝叶斯机器学习模型的训练与预测

Training阶段:θ\theta上的贝叶斯推断

p(θXtr,Ytr)=p(YtrXtr,θ)p(θ)p(YtrXtr,θ)p(θ)dθp(\theta|X_{tr},Y_{tr}) = \frac{p(Y_{tr}|X_{tr},\theta)p(\theta)} {\int p(Y_{tr}|X_{tr},\theta)p(\theta) d\theta}

结果:采用p(θ)p(\theta)分布比仅仅采用一个θML\theta_{ML}有着更好地效果

  • 模型融合总是比一个最优模型的效果更好
  • 后验分布里面含有所有从训练数据中学到的相关内容,并且可以模型提取用于计算新的后验分布

Testing阶段:

  • 从training中我们得到了后验分布p(θXtr,Ytr)p(\theta|X_{tr},Y_{tr})
  • 获得了新的的数据点xx
  • 需要计算对于yy的预测

p(yx,Xtr,Ytr)=p(yx,θ)p(θXtr,Ytr)dθp(y|x,X_{tr},Y_{tr}) = \int p(y|x,\theta) p(\theta|X_{tr},Y_{tr})d\theta

重新看一遍

训练阶段:

p(θXtr,Ytr)=p(YtrXtr,θ)p(θ)p(YtrXtr,θ)p(θ)dθp(\theta|X_{tr},Y_{tr}) =\frac{p(Y_{tr}|X_{tr},\theta)p(\theta)}{\color{red}{\int p(Y_{tr}|X_{tr},\theta)p(\theta) d\theta}}

测试阶段:

p(yx,Xtr,Ytr)=p(yx,θ)p(θXtr,Ytr)dθp(y|x,X_{tr},Y_{tr}) =\color{red}{\int p(y|x,\theta) p(\theta|X_{tr},Y_{tr})d\theta }

红色部分的内容通常是难以计算的!

共轭分布

我们说分布p(y)p(y)p(xy)p(x|y)是共轭的当且仅当p(yx)p(y|x)p(y)p(y)是同类的,即后验分布和先验分布同类。

p(y)A(α),p(xy)B(β)p(yx)A(α)p(y)\in \mathcal A(\alpha),\quad p(x|y)\in \mathcal B(\beta)\quad \Rightarrow \quad p(y|x)\in \mathcal A(\alpha^{\prime})

Intuition:

p(yx)=p(xy)p(y)p(xy)p(y)dyp(xy)p(y)p(y|x) = \frac{p(x|y)p(y)}{\int p(x|y)p(y)dy}\propto p(x|y)p(y)

  • 由于任何A\mathcal A中的分布是归一化的,分母是可计算的
  • 我们需要做的就是计算α\alpha^{\prime}

这种情况下贝叶斯推断可以得到闭式解!

常见的共轭分布如下表:

Likelihood p(xy)p(x\mid y) yy Conjugate prior p(y)p(y)
Gaussian μ\mu Gaussian
Gaussian σ2\sigma^{-2} Gamma
Gaussian (μ,σ2)(\mu,\sigma^{-2}) Gaussian-Gamma
Multivariate Gaussian Σ1\Sigma^{-1} Wishart
Bernoulli pp Beta
Multinomial (p1,,pm)(p_1,\ldots,p_m) Dirichlet
Poisson λ\lambda Gamma
Uniform θ\theta Pareto

举个例子:丢硬币

  • 我们有一枚可能是不知道是否均匀的硬币
  • 任务是预测正面朝上的概率θ\theta
  • 数据:X=(x1,,xn)X=(x_1,\ldots,x_n)x{0,1}x\in\{0,1\}

概率模型如下:

p(x,θ)=p(xθ)p(θ)p(x,\theta) = p(x|\theta)p(\theta)

其中对于p(xθ)p(x|\theta)的似然为:

Bern(xθ)=θx(1θ)1xBern(x|\theta) = \theta^x(1-\theta)^{1-x}

但是不知道p(θ)p(\theta)的先验是多少

怎样选择先验概率分布?

  • 正确的定义域:θ[0,1]\theta \in [0,1]
  • 包含先验知识:一枚硬币是均匀的可能性非常大
  • 推断复杂度的考虑:使用共轭先验

Beta分布是满足所有条件的!

Beta(θa,b)=1B(a,b)θa1(1θ)b1Beta(\theta|a,b) = \frac{1}{\mathrm{B}(a,b)}\theta^{a-1}(1-\theta)^{b-1}

同样也适用于大部分不均匀硬币的情况

让我们来检验似然和先验是不是共轭分布:

p(xθ)=θx(1θ)1xp(θ)=1B(a,b)θa1(1θ)b1p(x|\theta)=\theta^x(1-\theta)^{1-x}\qquad p(\theta) = \frac{1}{\mathrm{B}(a,b)}\theta^{a-1}(1-\theta)^{b-1}

方法——检验先验和后验是不是在同样的参数族里面

p(θ)=Cθα(1θ)βp(θx)=Cp(xθ)p(θ)=Cθx(1θ)1x1B(a,b)θa1(1θ)b1=CB(a,b)θx+a1(1θ)bx=Cθα(1θ)β\begin{aligned} p(\theta)&=C\theta^{\alpha}(1-\theta)^{\beta}\\ p(\theta|x)&=C^{\prime}p(x|\theta)p(\theta)\\ &=C^{\prime}\theta^x(1-\theta)^{1-x}\frac{1}{\mathrm{B}(a,b)}\theta^{a-1}(1-\theta)^{b-1}\\ &=\frac{C^{\prime}}{\mathrm{B}(a,b)}\theta^{x+a-1}(1-\theta)^{b-x}\\ &=C^{\prime\prime}\theta^{\alpha^{\prime}}(1-\theta)^{\beta^{\prime}} \end{aligned}

由于先验和后验形式相同,所以确实是共轭的!

现在考虑接收到数据之后的贝叶斯推断:

p(θX)=1Zp(Xθ)p(θ)=1Zp(θ)i=1np(xiθ)=1Z1B(a,b)θa1(1θ)b1i=1nθxi(1θ)1xi=1Zθa+i=1nxi1(1θ)b+ni=1n1=1Zθa1(1θ)b1\begin{aligned} p(\theta|X) &= \frac{1}{Z}p(X|\theta)p(\theta)\\ &= \frac{1}{Z}p(\theta)\prod_{i=1}^{n} p(x_i|\theta) \\ &=\frac{1}{Z} \frac{1}{\mathrm{B}(a,b)}\theta^{a-1}(1-\theta)^{b-1} \prod_{i=1}^{n} \theta^{x_i}(1-\theta)^{1-x_i}\\ &=\frac{1}{Z^{\prime}}\theta^{a+\sum_{i=1}^n x_i -1}(1-\theta)^{b+n-\sum_{i=1}^n-1}\\ &=\frac{1}{Z^{\prime}}\theta^{a^\prime -1}(1-\theta)^{b^\prime -1} \end{aligned}

新的参数为:

a=a+i=1nxib=b+ni=1nxia^\prime = a+\sum_{i=1}^nx_i \qquad b^{\prime}=b+n-\sum_{i=1}^nx_i

那么问题来了,当没有共轭分布的时候我们应该怎么做?

最简单的方法:选择可能性最高的参数

训练阶段:

θMP=argmaxp(θXtr,Ytr)=argmaxp(YtrXtr,θ)p(θ)\theta_{MP}=\arg \max p(\theta|X_{tr},Y_{tr}) = \arg \max p(Y_{tr}|X_{tr},\theta)p(\theta)

测试阶段:

p(yx,Xtr,Ytr)=p(yx,θ)p(θ,Xtr,Ytr)dθp(yx,θMP)p(y|x,X_{tr},Y_{tr}) = \int p(y|x,\theta)p(\theta,X_{tr},Y_{tr})d\theta \approx p(y|x,\theta_{MP})

这种情况下我们并不能计算出正确的后验。