美文网首页
[DeepBayes2018]Day 1, practical

[DeepBayes2018]Day 1, practical

作者: 被遗忘的时刻 | 来源:发表于2018-10-08 13:20 被阅读0次

    问题一 贝叶斯证据不充足情形

    讲的是贝叶斯公式的简单应用,采用哈利波特里面的场景作为例子。学过数理统计的应该知道有个关于被诊断为癌症与实际患癌症的这个例子。

    问题二 多项式分布的极大似然估计(Maximum Likelihood Estimate)

    多项式分布与二项分布的不同在于它一次实验是存在多种可能结果的,二项分布只存在两种可能结果。比如这个问题中的投骰子,每次投的点数是1-6中的一种。

    • 问题设计

      • 样本集:{D}=\{X_1,X_2,...,X_n\}, X_i之间相互独立
      • K个结果的概率分别为\boldsymbol{\theta}=(\theta_1,\theta_2,\dotsc,\theta_K )
      • \mathbf{N}_k代表在n次实验中第k次结果出现的次数
    • 构建似然函数。

      极大似然估计第一步就是构建似然函数,也就是求样本的联合概率密度,在这里的似然函数就是
      \begin{equation} p(\mathcal{D}\mid\boldsymbol{\theta}) = \prod_{k=1}^{K}\theta_k^{\boldsymbol{N}_k} \tag{2.1} \end{equation}

    • 最大化似然函数,并得出似然函数最大时对应\boldsymbol{\theta}的取值。除了少数情况用到其他方法外(如估计均匀分布的参数直接用最值来估计),一般方法是对似然函数对应的参数求偏导,令偏导=0,解出对应参数值。在求导情况下,原先的似然函数直接求导不方便,常用的处理就是对数化,将连乘变为累加,再进行求导。加上对数函数后的似然函数变成ln(p(\mathcal{D}\mid\boldsymbol{\theta})) = \displaystyle\sum_{k=1}^{K}{\boldsymbol{N}_k}ln\theta_k

      另外,还需要考虑的是否含有约束条件,可知这里需要满足两个约束条件:

      • \theta_k>0, k=1,2,\dotsc, K
      • \displaystyle\sum_{k=1}^{K}\theta_k=1

      解决含等式或不等式约束的优化问题一种有效的方法是拉格朗日乘子法。

      课程中对第一个约束的处理是令\mu_k=ln\theta_k,从而去除第一个不等式约束。第二个等式约束则使用了乘子法。根据该方法,转换后的目标函数变成了:
      \begin{equation} \mathcal{L}(\boldsymbol{\mu},\lambda)=ln\;p(\mathcal{D}\mid\mathrm{exp}\;\boldsymbol{\mu}) + \lambda(\displaystyle\sum_{k=1}^{K}\theta_k-1)=\displaystyle\sum_{k=1}^{K}(\boldsymbol{N}_k\mu_k-\lambda\,\mathrm{exp}\;\boldsymbol{\mu})-\lambda\ \tag{2.2} \end{equation}
      此时对函数中的未知量求偏导并令偏导为0,联立方程解除未知量。
      \begin{equation} \begin{split} &\frac{\partial\mathcal{L}(\boldsymbol{\mu},\lambda)}{\partial\mu_k}=\boldsymbol{N}_k-\lambda\,\mathrm{exp}\;\mu_k=0\implies\theta_k=\mathrm{exp}\;\mu_k=\frac{\boldsymbol{N}_k}{\lambda}\\ &\frac{\partial\mathcal{L}(\boldsymbol{\mu},\lambda)}{\partial\lambda}=\displaystyle\sum_{k=1}^K\mathrm{exp}\;\mu_k-1=0\implies\lambda=\displaystyle\sum_{k=1}^K\boldsymbol{N}_k \end{split} \tag{2.3} \end{equation}

    ​ 其中从MLE所得到的结果\theta_k=\frac{\boldsymbol{N}_k}{\lambda}来看,每个结果出现的概率等于该结果在实验中出现次数除以总次数。可知在这种情形下。极大似然估计的结果与矩估计法是一样的。

    其实用样本训练模型,都可以归结到数理统计参数估计的范畴之内,参数估计常用的四种方法分别是:矩估计法极大似然估计最小二乘法贝叶斯方法

    后面的两个问题都是贝叶斯方法的体现。在这里提一下极大似然估计与贝叶斯方法的区别。两者最重要的区别是前者属于频率派的思想,矩估计和最小二乘法也是频率派的方法,最小二乘法与极大似然估计其实是一回事。频率派和贝叶斯方法的区别在于频率派认为参数是未知的常数,而贝叶斯方法则认为参数并不是未知的常数,而是服从某种分布形式的。按照北大张志华老师在《统计机器学习》课程中说的,可以将频率派视为优化过程(求最大或最小值),而将贝叶斯方法视为抽样的过程,从后面的课程可以看到,贝叶斯方法解参数都是用积分、求和的方法来解的。

    看下面这个公式:
    \begin{equation} posterior = \frac{likelihood\times\,prior}{marginal\;likelihood} \tag{2.4} \end{equation}
    分子中乘式的左边部分就是极大似然估计第一步得到的似然函数。

    但其实有些频率派的方法也可以视为贝叶斯方法,这个不绝对。这个需要根据某些具体的例子来理解这句话。

    问题三 狄利克雷-多项式分布模型

    ​ 从前面这个公式中可以看出,后验分布是在先验分布的基础上加入样本的信息后得到的。但针对未知参数,选择一个合适的先验分布是很重要的。选择先验分布有很多方法,其中一种方法是从理论角度出发的。此时我们常常选取参数的先验分布为共轭先验分布。共轭先验分布有个特殊的性质是:共轭先验分布和它的后验分布属于同一种分布。严格说这是共轭先验分布的定义。典型的有两种:

    • 狄利克雷分布是多项式分布的共轭先验分布。
    • \boldsymbol{Beta}分布是二项分布的共轭先验分布。

    要证明这两个是很难的,原因就在于贝叶斯公式分母也就是边缘分布的计算需要算积分。同时,因为这个原因,在知道先验分布是共轭先验分布时,可以采用简化的方法计算边缘分布(先验分布时无信息先验时也是可以的,但这里不谈这个)。

    现在知道:

    • 似然函数:p(\mathcal{D}\mid\boldsymbol{\theta}) = \prod_{k=1}^{K}\theta_k^{\boldsymbol{N}_k}
    • 先验分布:\displaystyle{Dir(\boldsymbol\theta\mid\boldsymbol\alpha)=\frac{\Gamma(\alpha_1)\Gamma(\alpha_2)\dotsc\Gamma(\alpha_d)}{\Gamma(\alpha_1+\alpha_2+\dotsc+\alpha_d)}\displaystyle\prod_{k=1}^K\theta_k^{\alpha_{k-1}}}

    先不管\Gamma函数。其实从先验分布的函数形式来看,\displaystyle{\frac{\Gamma(\alpha_1)\Gamma(\alpha_2)\dotsc\Gamma(\alpha_d)}{\Gamma(\alpha_1+\alpha_2+\dotsc+\alpha_d)}}中是不含参数\boldsymbol\theta的。而分布的积分值是恒为1的。这样就可以得到\displaystyle{\int_0^1\prod_{k=1}^K\theta_k^{\alpha_{k-1}}\: \mathrm{d}\boldsymbol\theta=\frac{\Gamma(\alpha_1+\alpha_2+\dotsc+\alpha_d)}{\Gamma(\alpha_1)\Gamma(\alpha_2)\dotsc\Gamma(\alpha_d)}}.这个结论在后面计算后验分布以及预测时都会用到。

    后验分布的公式为:
    \begin{equation} p(\boldsymbol\theta\mid\mathcal{D},\,\boldsymbol{\alpha}) = \frac{p(\mathcal{D}\mid\boldsymbol{\theta})Dir(\boldsymbol\theta\mid\boldsymbol\alpha)}{p(\mathcal{D}\mid\boldsymbol{\alpha})}=\frac{p(\mathcal{D}\mid\boldsymbol{\theta})Dir(\boldsymbol\theta\mid\boldsymbol\alpha)}{\int_{\boldsymbol{S}_\boldsymbol{K}}p(\mathcal{D}\mid\boldsymbol{\theta})Dir(\boldsymbol\theta\mid\boldsymbol\alpha)\: \mathcal{d}\boldsymbol{\theta}} \end{equation} \tag{3.1}
    为了书写简洁,可以将前面提到的\displaystyle{\frac{\Gamma(\alpha_1+\alpha_2+\dotsc+\alpha_d)}{\Gamma(\alpha_1)\Gamma(\alpha_2)\dotsc\Gamma(\alpha_d)}}写成\boldsymbol{Beta}函数的形式,即1/\boldsymbol{B}(\alpha_1,\alpha_2,\dotsc,\alpha_d)

    对于分母有
    \begin{equation} \begin{split} p(\mathcal{D}\mid\boldsymbol{\alpha})&=\int_{\boldsymbol{S}_\boldsymbol{K}}{\prod_{k=1}^{K}\theta_k^{\boldsymbol{N}_k}}\frac{1}{\boldsymbol{B}(\alpha_1,\alpha_2,\dotsc,\alpha_d)}{\prod_{k=1}^K\theta_k^{\alpha_{k-1}}}\: \mathcal{d}\boldsymbol{\theta}\\ &=\int_{\boldsymbol{S}_\boldsymbol{K}}\frac{1}{\boldsymbol{B}(\alpha_1,\alpha_2,\dotsc,\alpha_d)}{\prod_{k=1}^K\theta_k^{\alpha_{k}+{\boldsymbol{N}_k}-1}}\: \mathcal{d}\boldsymbol{\theta} \end{split} \end{equation} \tag{3.2}
    把常数项1/\boldsymbol{B}(\alpha_1,\alpha_2,\dotsc,\alpha_d)提出到积分符号之外,根据上面得到的性质,可以得到
    \begin{equation} p(\boldsymbol\theta\mid\mathcal{D},\,\boldsymbol{\alpha})=\frac{\boldsymbol{B}(\alpha_1+\boldsymbol{N}_1,\alpha_2+\boldsymbol{N}_2,\dotsc,\alpha_d+\boldsymbol{N}_d)}{\boldsymbol{B}(\alpha_1,\alpha_2,\dotsc,\alpha_d)} \tag{3.3} \end{equation}
    将上式代入贝叶斯公式中,可以得到\displaystyle{p(\boldsymbol\theta\mid\mathcal{D},\,\boldsymbol{\alpha})=\frac{1}{\boldsymbol{B}(\alpha_1,\alpha_2,\dotsc,\alpha_d)}{\prod_{k=1}^K\theta_k^{\alpha_{k}+{\boldsymbol{N}_k}-1}}\times{\frac{\boldsymbol{B}(\alpha_1,\alpha_2,\dotsc,\alpha_d)}{\boldsymbol{B}(\alpha_1+\boldsymbol{N}_1,\alpha_2+\boldsymbol{N}_2,\dotsc,\alpha_d+\boldsymbol{N}_d)}}}

    约分后得到
    \begin{equation} p(\boldsymbol\theta\mid\mathcal{D},\,\boldsymbol{\alpha})=\frac{1}{\boldsymbol{B}(\alpha_1+\boldsymbol{N}_1,\alpha_2+\boldsymbol{N}_2,\dotsc,\alpha_d+\boldsymbol{N}_d)}{\prod_{k=1}^K\theta_k^{\alpha_{k}+{\boldsymbol{N}_k}-1}} \tag{3.4} \end{equation}
    这也证明了Dirichlet分布确为多项式分布的共轭先验分布。

    遇到共轭先验分布是最理想的情况,直接可以写后验分布的形式。如果不是的话,也只能老老实实求积分了。

    求出后验概率之后,就可以作预测了。在此之前,其实还有另外一种优化方法,就是最大后验估计(MAP)。就是求使得后验分布最大的参数。MAP的一个好处就是不用去求贝叶斯公式的分母,因为分母是对参数进行积分,所以结果中不含未知参数,所以只用考虑分子即联合分布的最大值即可。

    不过最大后验估计属于优化的方法,严格意义上也不属于贝叶斯的方法。因此用纯贝叶斯的方法来做呢?就不用先求参数\boldsymbol{\theta}了。因为贝叶斯方法是假设参数不是常数,而是服从某种分布。因此是直接去做预测

    来了一个新的样本X_{N+1},它属于第k类结果的概率是
    \begin{equation} \begin{split} p(X_{N+1}=k\mid\boldsymbol{\alpha}) &=\int_{\boldsymbol{S}_{\boldsymbol{K}}}p(X_{N+1}=k\mid\boldsymbol{\theta})p(\boldsymbol{\theta}\mid\mathcal{D},\boldsymbol{\alpha})\: \mathcal{d}\boldsymbol{\theta}\\ &=\frac{\int_{\boldsymbol{S}_{\boldsymbol{K}}}\prod_{k=1}^K\theta_k^{N_k+\alpha_k-1}\:\mathcal{d}\boldsymbol{\theta}}{\boldsymbol{B}(\alpha_1+\boldsymbol{N}_1,\alpha_2+\boldsymbol{N}_2,\dotsc,\alpha_K+\boldsymbol{N}_K)} \end{split} \tag{3.5} \end{equation}
    还是利用前面的公式解出分子上的积分。

    最后得
    \begin{equation} \begin{split} p(X_{N+1}=k\mid\boldsymbol{\alpha}) &=\frac{\boldsymbol{B}(\alpha_1+\boldsymbol{N}_1,\alpha_2+\boldsymbol{N}_2,\dotsc,\alpha_k+\boldsymbol{N}_k+1,\dotsc,\alpha_K+\boldsymbol{N}_K)}{\boldsymbol{B}(\alpha_1+\boldsymbol{N}_1,\alpha_2+\boldsymbol{N}_2,\dotsc,\alpha_d+\alpha_k,\dotsc,\alpha_K+\boldsymbol{N}_K)}\\ &=\frac{\alpha_k+N_k}{\sum_k\alpha_k+N} \end{split} \tag{3.6} \end{equation}
    中间过程的公式太多了,逐一敲出来太浪费时间。可以在课程给出的slides中去看。这里我们中直接得到了最后的结果,前面极大似然估计得到的结果是\theta_k=\frac{N_k}{N},与之对比发现贝叶斯方法加入先验分布对其进行了修正。

    问题四 贝叶斯决策理论

    贝叶斯分析方法同频率派一样,有一整套统计推断与决策的理论和方法。之前买了中科大50周年校庆那会儿出的一本韦来生等编写《贝叶斯分析》,里面对此有系统的阐述,不过里面太多的公式,啃起来确实有点难。问题四讲的就是贝叶斯分析中的统计决策中的问题。

    课程中举了下雨与带雨伞的例子来说明这个。我们需要预测明天是否下雨,从而来决定是否带上雨伞。我们选了个不错的先验分布,还有大量的观测数据,得到了一个很不错的后验分布,明天有多大概率不下雨,多大概率下雨。但是问题是我们最终是要决定是否带上雨伞,不能说多大概率不带,多大概率带上雨伞。这就是要做决策。做决策如果做错了肯定会后悔,我们肯定希望做出的决策所带来的后悔程度最低,这就用到了损失函数,来衡量这个后悔程度。首先,我们要定义损失函数L(\theta,{\theta}')

    问题中给给出了两种形式的损失函数,分别是:

    • L_0损失函数:1-\delta(\boldsymbol{\theta}-\boldsymbol{{\theta}'})
    • L_2损失函数:({\boldsymbol{\theta}-\boldsymbol{{\theta}'}})^T(\boldsymbol{\theta}-\boldsymbol{{\theta}'})

    并在损失函数的基础上定义后验风险:
    \begin{equation} R=E_{p(\boldsymbol{\theta}\mid\mathcal{D})}[L(\boldsymbol{\theta},\boldsymbol{\theta}')]=\int_{\boldsymbol{\theta}\mid\mathcal{D}}L(\boldsymbol{\theta},\boldsymbol{\theta}')p(\boldsymbol{\theta}{\mid}\mathcal{D})\:{\mathcal{d}}\boldsymbol{\theta} \tag{4.1} \end{equation}
    其实符号表示不同地方有微小差异,只需要知道后验风险是对损失函数按后验分布求期望就好了,可以这样理解,后验分布是校正过的关于参数的分布,参数值不同,损失函数的值也不同,后验风险可以理解成损失函数的期望值。

    后验风险的最小值所对应的参数值就是最优的参数值。贝叶斯分析的术语是称这个参数值为后验风险最小准则下的最优贝叶斯决策函数

    因此我们的目标是:
    \begin{equation} argmin_{\boldsymbol{{\theta}'}\in{S_K}}E_{p(\boldsymbol{\theta}\mid\mathcal{D})}[L(\boldsymbol{\theta},\boldsymbol{\theta}')] \tag{4.2} \end{equation}
    不同的损失函数得到的最优值显然是不同的,针对上面两种损失函数来进行讨论:

    • 基于L_0损失函数的后验风险:E_{\boldsymbol{\theta}\mid\mathcal{D}}[L_0(\boldsymbol{\theta},\boldsymbol{{\theta}'})]=\int_{S_K}p(\boldsymbol{\theta}\mid\mathcal{D})(1-\delta(\boldsymbol{\theta}-\boldsymbol{{\theta}'}))\:\mathcal{d}\boldsymbol{\theta}=1-p(\boldsymbol{{\theta}'}\mid\mathcal{D})

      怎么理解这个积分呢。课程中的视频已经解释了,\delta(x)是物理学中常用的一个函数,它的特点是在除0以外的值全为0,但在整个定义域上的积分为1。它的一个性质就是挑选性:\displaystyle{\int_{-\infty}^{\infty}f(x)\delta(x-t_0)\:\mathcal{d}x=f(t_0)}

      这样就可以理解上面这个后验风险了。

    • 基于L_2损失函数的后验风险:E_{\boldsymbol{\theta}\mid\mathcal{D}}[L_2(\boldsymbol{\theta},\boldsymbol{{\theta}'})]=\int_{S_K}p(\boldsymbol{\theta}\mid\mathcal{D})({\boldsymbol{\theta}-\boldsymbol{{\theta}'}})^T(\boldsymbol{\theta}-\boldsymbol{{\theta}'})\:\mathcal{d}\boldsymbol{\theta}

      其中L_2损失函数展开成求和形式就是\sum_{k=1}^K(\theta_k-{\theta_k}')^2

      对估计参数\boldsymbol{\theta'}(向量形式)求偏导,得到:\displaystyle{\frac{\mathcal{d}}{\mathcal{d}\boldsymbol{\theta'}}E_{\boldsymbol{\theta}\mid\mathcal{D}}[L_2(\boldsymbol{\theta},\boldsymbol{{\theta}'})]=2\int_{S_K}p(\boldsymbol{\theta}\mid\mathcal{D})(\boldsymbol{\theta}-\boldsymbol{{\theta}'})\:\mathcal{d}\boldsymbol{\theta}}

      我们有\int_{S_K}p(\boldsymbol{\theta}\mid\mathcal{D})\:\mathcal{d}\boldsymbol{\theta}=1,上式中对\boldsymbol{\theta}求积分,所以\boldsymbol{{\theta}'}可视为常数。因此上式可以转换为:
      \begin{equation} \boldsymbol{{\theta}'}=\int_{S_K}p(\boldsymbol{\theta}\mid\mathcal{D})\boldsymbol{\theta}\:\mathcal{d}\boldsymbol{\theta} \end{equation} \tag{4.3}
      等式右边就是不就是后验期望值吗。

      这也是贝叶斯分析中的一项定理:在平方损失函数下,\theta的贝叶斯估计为后验期望值

    应用到前面多项式分布的问题的话:

    针对L_0损失函数,就有贝叶斯解为\displaystyle{argmin_{\boldsymbol{{\theta}}\in{S_K}}C\cdot\displaystyle{\prod_{k=1}^K\theta_k^{\alpha_k+N_k-1}}}

    这不就是前面所说的最大后验分布吗?因为后验分布前面的系数与\boldsymbol{\theta}无关,所以用常数C代替,然后对其求偏导。看形式和约束条件是不是就和问题二中过的极大似然估计的求解过程是一样的。

    省略中间步骤,就可以得到
    \begin{equation} \theta_k'=\frac{\alpha_k+N_k-1}{\sum_k(\alpha_k+N_k-1)}=\frac{\alpha_k+N_k-1}{\sum_k\alpha_k+N-K} \tag{4.4} \end{equation}
    针对L_2损失函数,可知到贝叶斯解不就是后验期望吗,这正和问题三最后做预测时的过程是一样的。所以直接写出结果
    \begin{equation} \theta_k'=\frac{\alpha_k+N_k}{\sum_k\alpha_k+N} \end{equation} \tag{4.5}

    总结

    当用贝叶斯方法求得后验分布后。有三种方法来估计参数值\hat{\theta}

    • 求后验期望,见公式(4, 3)
    • 最大后验分布,求后验分布的最大值,即\displaystyle{argmin_{\boldsymbol{{\theta}}\in{S_K}}p(\boldsymbol{\theta}\mid\mathcal{D})}
    • 风险估计。如问题四,当为L_0损失函数时,相当于时最大后验分布的方法;当为L_2损失函数,相当于后验期望的方法

    相关文章

      网友评论

          本文标题:[DeepBayes2018]Day 1, practical

          本文链接:https://www.haomeiwen.com/subject/mjndaftx.html