算法工程狮六、频率派与贝叶斯派

频率派和贝叶斯派是两种不同的学派。频率派认为事件发生的概率完全由已有数据决定;而贝叶斯学派认为事件发生的概率本身就符合一定的概率分布,而这个分布是人为主观确定的,也就称之为先验分布。频率派的代表主要就是极大似然估计(MLE),而贝叶斯学派的代表有极大后验估计和贝叶斯估计。
还是先复习下贝叶斯公式
$$P(\theta|X)=\dfrac{P(X|\theta)P(\theta)}{\sum_iP(X|\theta_i)P(\theta_i)}$$

  • $P(X|\theta)$:似然项,MLE就是极大这个东西
  • $P(\theta)$:先验概率,贝叶斯估计/极大后验估计就需要这个东西
  • $\sum_iP(X|\theta_i)P(\theta_i)$:归一化因子,使其成为一个概率,直观来看就是一个全概率公式
  • $P(\theta|X)$:后验概率

1.频率派-极大似然估计MLE

MLE最大化$L(\theta|D)=\argmax\limits_\theta\prod\limits_{i=1}^{n} P(x_i|\theta)$.MLE是完全依靠已知数据做出结论,不掺杂任何的先验。当数据量很大时,$\hat{\theta}_{MLE}$会估计的很好;但数据量很小时,可能会得到离谱的不可靠结果

举例-抛硬币

设X为硬币正面朝上的概率为$\theta$,正面为1,反面为0,则一次抛硬币事件的概率分布为$P(X=x_i|\theta)\begin{cases} \theta,x_i=1(正面) \\ 1-\theta,x_i=0(反面) \end{cases}$,则:
$$P(X=x_i|\theta)=\theta^{x_i}(1-\theta)^{1-x_i}$$
假设抛了n次硬币,则MLE使以下似然函数最大化:
$$\hat{\theta}_{MLE}=\argmax\limits_{\theta}\prod\limits_{i=1}^{n} P(x_i|\theta)=\argmin\limits_{\theta}-\sum\limits_{i=1}^{n}log P(x_i|\theta)$$
上式对$\theta$求导得:
$$\sum\limits_{i=1}^{n}(\dfrac{x_i}{\theta}-\dfrac{1-x_i}{1-\theta})=0$$
通分化简求$\theta$得:
$$\hat{\theta}_{MLE}=\dfrac{\sum\limits_{i=1}^{n}x_i}{n}$$
这不就是数一数硬币正面朝上得比例嘛,如果硬币抛了两次,全部反面朝上,则得到正面朝上得概率为0......
但是,一旦数据多了起来,则结果会越来越准确

2.贝叶斯派

贝叶斯派与频率派的区别是使用了先验概率,即认为参数得取值符合一定的概率分布,而这个分布是人为选择的,因此称为先验。贝叶斯派又有两种:极大后验估计和贝叶斯估计,二者的区别是贝叶斯估计需要求出具体的概率分布并通过贝叶斯决策得到参数的最优估计,使总体期望风险最小

极大后验估计MAP

极大后验估计,和MLE类似,是点估计的一种,在似然项后面跟了先验概率。
$$\hat{\theta}_{MAP}=\argmax\limits_{\theta}\prod\limits_{i=1}^{n} P(x_i|\theta)\cdot P(\theta)=\argmin\limits_{\theta}-\sum\limits_{i=1}^{n}log P(x_i|\theta)\cdot P(\theta)$$

贝叶斯估计

贝叶斯估计则是需要求出参数分布,即求出贝叶斯公式中的后验概率$P(\theta|X)$,然后做一个群体决策,如果用公式表示,则贝叶斯估计求参数如下:
$$\hat{\theta}_{Bayes}=\int\theta P(\theta|X)d\theta$$
当然,这是假设损失函数为均方损失时计算得来的。

3.比较

前面我们已经通过三种方法对参数$\theta$做出了估计。此时,若新数据来临,则三种方法做预测的步骤是:
$$\begin{cases} MLE:根据参数直接预测P(X=x^{new}|\theta),参数\theta已知 \\ MAP:根据参数直接预测P(X=x^{new}|\theta),参数\theta已知 \\ Bayes估计: P(x^{new}|X)=\int P(\theta|X)P(x^{new}|X,\theta)d\theta=\int P(x^{new},\theta|X)d\theta,先根据X计算所有\theta,再积分 \end{cases}$$

4.概率的概率分布

概率的概率分布其实就是小数(0-1之间)的分布,之所以要讲概率的概率分布,是因为有两点好处,一点是概率的概率分布可以由此建模;第二点是用此做先验可以和似然组成共轭分布,使得后验概率与先验概率同分布。

Beta分布

$$P(\theta|\alpha,\beta)=\dfrac{\theta^{\alpha-1}(1-\theta)^{\beta-1}}{B(\alpha,\beta)}$$
其中,α和β是两个控制参数,分母是标准化函数,使其成为一个概率分布。Beta分布有如下优点:

  • 形状随α和β改变,可以通过参数控制概率峰值
  • $E(\theta)=\dfrac{\alpha}{\alpha+\beta}$,随机变量期望为峰值。假设α=β=100,那么峰值就在0.5处,α=100,β=200,峰值就在0.333处
  • 当似然为伯努利分布时,beta分布与其构成共轭分布
  • beta分布适用于二分类建模
Dirichilet分布

迪利克雷分布与beta分布类似,不过是对多分类参数概率分布建模,且与多项式分布组成共轭分布
$$P(\theta_1,\theta_2,...,\theta_k|\alpha_1,\alpha_2,...,\alpha_k)=\dfrac{1}{B(\alpha_1,\alpha_2,...,\alpha_k)}\prod\limits_{i=1}^{k}\theta_i^{\alpha_i-1}$$

5.共轭分布与共轭先验

前面提到过抛硬币,假设抛了m次硬币,其中$m_\alpha$次朝上,$m_\beta$次朝下,则似然项$P(X|\theta)=\theta^{m_\alpha}(1-\theta)^{m_{_\beta}}$。如果此时我们认为硬币朝上的概率应该简单的认为是数次数,而应该是满足一定的概率分布,那么假设我们选择beta分布作为先验,依据贝叶斯公式,则后验概率$P(\theta|X)$可表示为:
$$P(\theta|X)\propto P(X|\theta)\cdot P(\theta)$$
如果先验选择Beta分布B(α,β),则后验概率可表示为:
$$\begin{aligned} P(\theta|X) & \propto \theta^{m_\alpha}(1-\theta)^{m_{_\beta}}\cdot \theta^{\alpha-1}(1-\theta)^{\beta-1} \\ & \propto \theta^{m_\alpha+\alpha-1}(1-\theta)^{m_{_\beta}+\beta-1} \end{aligned}$$
会发现,后验分布也符合Beta分布,与先验分布同类,只不过参数有所变化,此时称先验分布和后验分布为共轭分布,先验称为似然的共轭先验
共轭分布有很多好处,最重要的是计算方便。当来了新的观测数据时,我们只需要简单的修改参数α和β,使之成为新的先验分布

6.先验的作用

Beta分布的参数

加了Beta分布的抛硬币,theta的预测不再是数次数,而是使用贝叶斯估计,通过积分求期望得到。前面说过,此时的后验概率属于Beta分布,而Beta分布的期望是$\dfrac{\alpha}{\alpha+\beta}$,对于抛硬币来讲,参数的估计(期望)变成了$\dfrac{\alpha+m_\alpha}{\alpha+m_\alpha+\beta+m_\beta}$。假设我们设置α=β=100,即先验认为抛硬币正面朝上的概率最可能是0.5,那么通过实验抛硬币,即使开始的几次抛硬币全是反面,那么我们所得出的结论也不会有太大问题
此外,α和β可以是历史数据,也可是人为设置的初值。更可以说,α和β像是先验强度,当我们将α和β设置的很大时(比如10000),我们需要足够多的数据纠正先验(如果先验不正确),如果设置的很小(10),我们只需要少量数据即可修改先验,或者说我们对参数的概率分布也不确定。

先验的作用

先验就是在数据少时防止推断出过于不可靠的结果,换句话说,先验是在数据量很少时对偏差的修正。具体来说,如果贝叶斯做参数估计,或者说做预测(预测新硬币正面朝上的概率和估算硬币正面朝上的概率参数等价),则:
$$\hat{\theta}_{Bayes}=\int\theta P(\theta|X)d\theta=\dfrac{\alpha+m_\alpha}{\alpha+m_\alpha+\beta+m_\beta}$$
当使用MLE做预测,似然函数如下:
$$\prod\limits_{i=1}^{n} P(x_i|\theta)=\theta^{m_\alpha}(1-\theta)^{m_{_\beta}}$$
参数估计如下:
$$\hat{\theta}_{MLE}=\argmax\limits_{\theta}\prod\limits_{i=1}^{n} P(x_i|\theta)=\argmin\limits_{\theta}-\sum\limits_{i=1}^{n}log P(x_i|\theta)$$
求导后,解得最优θ为$\dfrac{m_\alpha}{m_\alpha+m_\beta}$
二者进行比较,可以发现,在前期数据少的时候,先验主导了参数估计,使得预测不至于太差;而随着数据量增多,先验知识逐渐减弱,数据的重要性逐渐增强,因此,数据量比较小的时候,先验往往能够带来好处

7.Laplace平滑

Laplace平滑在朴素贝叶斯里面会用到的一种方法,理论正好是这篇文章中写的,就顺便在这里先写了。
多分类场景下,我们要预测各个类别可能的概率。则贝叶斯做如下估计:
$$P(\theta_1,\theta_2,...,\theta_k|X)\propto P(X|\theta_1,\theta_2,...,\theta_k)P(\theta_1,\theta_2,...,\theta_k)$$
其中,似然项为多项式分布:$P(X|\theta_1,\theta_2,...,\theta_k)=\theta_1^{m_1}\theta_2^{m_2}...\theta_k^{m_k}$,先验为迪利克雷分布:$P(\theta_1,\theta_2,...,\theta_k)=\theta_1^{\alpha_1-1}\theta_2^{\alpha_2-1}...\theta_k^{\alpha_k-1}$,则后验分布与先验分布组成共轭分布:
$$P(\theta_1,\theta_2,...,\theta_k|X)\propto \theta_1^{m_1+\alpha_1-1}\theta_2^{m_2+\alpha_2-1}...\theta_k^{m_k+\alpha_k-1}$$
当做预测时X属于第j类:
$$\begin{aligned}P(Y=c_j|X) & =\int P(Y=j,\theta_j|X)d\theta_j \\ & =\int P(Y=j,|X,\theta_j)P(\theta_j|X)d\theta_j \\ &=\int \theta_jP(\theta_j|X)d\theta_j\end{aligned}$$
我们看到,第二步向第三步转化是因为$\theta_j$本身就代表属于第J类的概率
因此预测即求期望的过程,而迪利克雷的期望为:
$$P(Y=c_j|X)=\dfrac{m_j+\alpha_j}{\sum\limits_{i=1}^{k}(m_i+\alpha_i)}=\dfrac{m_j+\alpha_j}{N+\sum\limits_{i=1}^{k}\alpha_i}$$
当我们简单的认为每个类别出现的概率一致,即α为λ,则公式化简为:$P(Y=c_j|X)=\dfrac{m_j+\lambda}{N+k\lambda}$。当λ取值为1时,则称为Laplace平滑,当λ为0时,则不掺先验,变成了MLE。
注意,朴素贝叶斯参数估计为贝叶斯估计,而标签训练为极大后验估计

8.贝叶斯推断

贝叶斯推断就是更新数据认知的过程。新数据来了后,计算后验,然后通过后验更新先验。
或者说贝叶斯推断就是通过反复使用贝叶斯定理,持续更新对未知变量的认知的过程

9.其他

结构风险-MLE
期望风险-Bayes
经验风险-MAP

你可能感兴趣的:(算法,机器学习,人工智能,深度学习,数据挖掘)