精华内容
下载资源
问答
  • 多重人脸表情识别的多层贝叶斯主题模型
  • 双变量多层贝叶斯模型假设客户购买间隔和金额服从联合对数正态分布,借助“正态-Wishart”共轭先验分布族对后验近似标准分布进行推导,利用马尔科夫链蒙特卡洛模拟方法中的吉布斯抽样和梅托普利斯-海斯丁算法估计...
  • 由于贝叶斯模型和各种图像测量结果, 置信传播会更新每个节点的相关概率, 提出了在自动交互图像分割过程中应用的新型贝叶斯网络模型。从过度分割模型中的超级像素点区域、边区域、顶点和测量结果之间的统计相关性来...
  • 与传统的SAE模型相比,分层SAE问题的贝叶斯方法具有多个优点,包括能够适当考虑所调查变量的类型。 在本文中,讨论了许多用于估计小面积计数的模型规范,并说明了它们的相对优点。 我们进行了模拟研究,以简化的...
  • 用于分析用户转推情感倾向的多层朴素贝叶斯模型
  • BHM_Assignments 存放针对AGR 6932(农业中的多层贝叶斯模型)的家庭作业和项目解决方案。
  • 在系统分析舰船生存能力评估要素的基础上,针对评估过程中的不确定性信息难以量化处理的特点,引入基于贝叶斯网络多层隐类模型算法对舰船生存能力进行评估,给出了模型评分原理.最后以实例说明了建模方法与评估过程,...
  • 多层贝叶斯分析在汇率预测中的应用,余磊,,本文提出了通过多层贝叶斯分析预测短期汇率的思路和方法,首先介绍了多层贝叶斯分析的数学模型,然后针对前人的结果利用勒贝格控�
  • 基于Tensor Flow建立多层神经网络模型,通过对4组不同UCI数据集进行测试,并与传统的机器学习算法如朴素贝叶斯、K最近邻、神经网络等进行对比验证。实验证明,所提模型在处理不平衡数据分类问题上的表现更优秀。
  • 该软件包可用于使用分层贝叶斯框架估计模型。 灵活性在于允许用户直接指定似然函数,而不是采用预定的模型结构。 可以用此代码估计的模型类型包括离散选择模型系列(多项式Lo​​git,混合Logit,嵌套Logit,错误...
  • 针对电网故障诊断中存在的信息具有不确定性的问题,依据元件故障、保护动作和断路器跳闸之间的内在逻辑关系,由Noisy-Or和Noisy-And节点组成贝叶斯网络和采用类似训练多层前馈神经网络的误差反传算法进行诊断模型的...
  • 注:图模型的核心在于找到联合分布,因为联合分布知道之后,求他的小弟(子集)就很容易了。 问题 问题1:好消息与坏消息 医生有一个好消息和一个坏消息,坏消息是机器检测出来你有0.99的概率患了某种癌症,好...

    注:图模型的核心在于找到联合分布,因为联合分布知道之后,求他的小弟(子集)就很容易了。

    1. 问题

    问题1:好消息与坏消息
    医生有一个好消息和一个坏消息,坏消息是机器检测出来你有0.99的概率患了某种癌症,好消息是这是个罕见疾病,一万个人中才有一个人患病。
    问:你有多大的可能性确实得病了?

    问题2:Monty hall
    有三扇门,标号1,2,3,其中有一扇门背后有百万大奖,另外两扇门后面各有一只山羊。
    一开始,你先选择一扇门,但先不打开,裁判会在另外的两扇门中挑选一扇没有奖(也就是后面是羊)的门,打开给你看那后面是羊。
    问:你是否要更换自己的选择?

    问题分析:
    学过概率的人应该知道这是个概率问题,而拉普拉斯曾说:概率论只是把常识用数据公式表示出来的学科。所以,我们的第一步应该是把白话转成公式表示。

    (1)先看第一个问题:
    设D为某人确实患了癌症,T为被检测出来你有癌症。

    P|=0.99,P|=0.01
    P()=0.0001
    而我们真正要求的是:P(|)
    用贝叶斯公式可得:
    P(|)=P|P()P()=P|P()P(|)P()+P(|)P()=0.0098
    被检测出来患癌症,但实际患癌的概率只有0.0098,也是没谁了。写成贝叶斯公式就是如此简单:
    P(D|T)=PT|DP(D)P(T)=PT|DP(D)P(T|D)P(D)+P(T|D̂ )P(D̂ )
    其中D̂ 表示D的互斥事件。

    (2)再来看一下第二个问题,同样用概率思维,先把已知条件用公式表示出来:

    1.P1=P2=P3=13
    条件2. 假设我们选择1号门。若大奖就在1号门,那么裁判就会打开2号门,或者3号门。若大奖在2号门,裁判就会打开3号门;若大奖在3号门,裁判就会打开2号门。用公式表示:
    P(2|1)=P3|1=12
    P(2|2)=0P3|2=1
    P(2|3)=1P3|3=0

    条件3 裁判打开了3号门,看到了一只羊。

    P(1)=P2=12

    问:现在你已经选择了1号门,但你有一个机会更换你的选择(也就是选择2号门),请问你是否要使用这个机会。
    我们来看一下到底合不合适。其实说白了就是要计算
    P(1|3)P2|3
    这两个概率。
    看一下怎么求:
    P(1|3)=13=P(3|1)P1P(3)=P(3|1)P1P(3|1)P1+P(3|2)P2+P(3|3)P3

    同样可以求得
    P(2|3)=23,P(3|3)=0
    看来使用这个权力有更大的概率拿到大奖。
    有人对这个事件做了模拟,称为模特卡罗模拟,它的算法原理是基于大数定律和中心极限定理对随机事件的模拟。
    算法步骤:

    1.初始化奖项(每个门后藏奖的概率一样)
    2.我们选择门
    3.裁判选择门(选择没有奖,且我们没有选的门)
    4.计算换的时候赢的概率和不换赢的概率
    5.重复几次

    import os
    import random
    from __future__ import division
    
    #生成连续的整型序列
    def intSep(num):
        sep = []
        for i in range(num):
            sep.append(i+1)
        return sep
    
    #随机生成有奖的门号
    def getPrise(num):
        prise = random.choice(intSep(num))
        return prise
    
    #我们随机选择
    def getChoiceByGuest(num):
        guest = random.choice(intSep(num))
        return guest
    
    #裁判选择,不能选择我们已选择的,或有奖的
    def getChoiceByHost(prise,guest,num):
        choice_set = intSep(num)
        if prise in choice_set:
            choice_set.remove(prise)
        if guest in choice_set:
            choice_set.remove(guest)
        host = random.choice(choice_set)
        return host
    
    #换或不换,是否会赢
    def isWin(prise,guest,host,num):
        choice_set = intSep(num)
        if guest in choice_set:
            choice_set.remove(guest)
        if host in choice_set:
            choice_set.remove(host)
        is_notchange_win =0
        is_change_win =0
        if prise ==guest:
            is_notchange_win =1
        change_num = random.choice(choice_set)   #如果换,除掉主持人和guest选的,另外一个号
        if prise == change_num:
            is_change_win = 1
        return is_notchange_win,is_change_win,change_num
    
    #重复多次
    def testPro(times,num):
        result = []
        for i in range(times):
            prise = getPrise(num)
            guest = getChoiceByGuest(num)
            host = getChoiceByHost(prise,guest,num)
            is_notchange_win,is_change_win,change_num = isWin(prise,guest,host,num)
            test_result = ','.join([str(prise),str(guest),str(host),str(change_num),str(is_notchange_win),str(is_change_win)])
            result.append(test_result)
        return result
    
    #根据假设求相应的概率
    def winPro(guest_choice,host_choice,result):
        change_flag =0 #要不要换门号,如果换后赢的概率比不换大,则换
        times_item = 0 #模拟多次同一场景出现的次数,例如模拟5000次guest选1号门,host选3号门
        no_change_win =0 #不换,赢了
        change_win =0 #换,赢了
        for i in range(len(result)):
            test_result = result[i].split(',')
            if int(test_result[1]) == guest_choice and int(test_result[2]) == host_choice: #符合指定场景
                times_item +=1
                if int(test_result[4])==1:
                    no_change_win += 1 #计算该场景下不换赢的次数
                if int(test_result[5]) ==1:
                    change_win +=1 #计算该场景下换赢的次数
        not_change_pro = no_change_win/times_item #不换赢的概率
        change_pro = change_win/times_item  #换赢的概率
        if change_pro>not_change_pro:
            change_flag =1
        return no_change_pro,change_pro,change_flag,times_item
    
    if __name__=='__main__':
        door_num = 5
        times =10000000
        result = testPro(times,door_num)
    #     print(result)
        for i in range(1,door_num+1):
            for j in range(1,door_num+1):
                if i != j:
                    no_change_pro,change_pro,change_flag,times_item = winPro(i,j,result)
                    print('test_times:%d'%times_item,'guest:%d'%i,'host:%d'%j,'change_flag:%d'%change_flag,
                          'no_change_winPro:%.2f'%no_change_pro,'change_winPro:%.2f'%change_pro)

    结果:

    test_times:1667517 guest:1 host:2 change_flag:1 no_change_winPro:0.25 change_winPro:0.67
    test_times:1667006 guest:1 host:3 change_flag:1 no_change_winPro:0.25 change_winPro:0.67
    test_times:1666981 guest:2 host:1 change_flag:1 no_change_winPro:0.25 change_winPro:0.67
    test_times:1666197 guest:2 host:3 change_flag:1 no_change_winPro:0.25 change_winPro:0.67
    test_times:1665861 guest:3 host:1 change_flag:1 no_change_winPro:0.25 change_winPro:0.67
    test_times:1666438 guest:3 host:2 change_flag:1 no_change_winPro:0.25 change_winPro:0.67

    这是蒙特卡洛算法的简单模拟,接着接入正题。

    2 . 概率图模型

    前面两个问题都是基于贝叶斯公式的,只有理解贝叶斯公式,才能说真正理解概率图模型,其实也很简单。

    概率图模型主要分为两个方向:贝叶斯网络(Bayesian Network采用有向无环图来表达变量间关系)和马尔可夫随机场(Markov Random Field采用无向图)
    如图:这里写图片描述
    每一个节点代表一个随机变量,边表示随机变量间的概率依赖关系。
    而他们的联合概率分布,可以通过这个图表示的依赖关系列出。

    P(x1,x2,x3,x4)=P(x1)P(x3|x1)P(x2|x1)P(x4|x2,x3)
    求出他的联合概率,就可以知道与该联合概率相关的任何条件概率了。
    问:这样做有什么用吗?
    答:其实了解这个思想,在以后学习概率图模型的时候就会比较容易理解了。其中最大的作用,应该就是降低模型复杂度吧。如上图,如果直接用联合概率保存四个随机变量的取值,应该有241=15种,如果用概率图模型来分解,应该有1+2+2+4=9种,大大降低了模型的复杂度。

    展开全文
  • 统计补充材料 我已发表和正在进行的工作的统计补充材料代码。
  • 贝叶斯多层先验分布

    千次阅读 2018-06-19 20:33:19
    什么是多层先验分布? 所给定的先验分布中超参数难以确定时,可以对超参数再给出一个先验,第二个先验称为超先验。由先验和超先验决定的一个新先验就称为多层先验。 简单来说,就是对你之前原本的先验分布上,再...

    什么是多层先验分布?

    所给定的先验分布中超参数难以确定时,可以对超参数再给出一个先验,第二个先验称为超先验。由先验和超先验决定的一个新先验就称为多层先验。

    简单来说,就是对你之前原本的先验分布上,再假设一层先验分布,这就是两层先验分布。(当然如果不嫌麻烦,可以无穷层的orz…)


    例:

    我们以一个例子来说明:
    设某产品的不合格率为θ

    • θ的先验为π1(θ|λ)=U(0,λ).
    • λ的超先验为π2(λ)=U(0.1,0.5).

    利用边际分布计算公式,可得θ的先验为

    π(θ)=Λπ1(θ|λ)π2(λ)dλ

    在此例中

    π(θ)=10.50.10.10.5λ1I(0,λ)(θ)dλ

    即当0<θ<0.1时,
    π(θ)=10.40.10.5λ1dλ=2.5ln5

    0.1θ<0.5时,
    π(θ)=2.50.5θλ1dλ=2.5(ln0.5lnθ)

    0.5θ1时,
    π(θ)=0

    在理论上没有限制多层先验只分两步,可以是三步或更多步,但在实际应用中多于两步的先验是罕见的,对第二步先验π2(λ)用主观概率或用历史数据给出是有困难的,因为人常是不能观察的,甚至连间接观察都是难以进行的。很多人用无信息先验作为第二步的先验。因为第二步先验即使决定有偏差,而导致错误结果的危险性更小一些,相对说来,第一步先验更为重要。

    多层先验常常是在这样一种场合使用,当一步给出先验π(θ)没有把握时。那用两步先验要比强行用一步先验所冒风险要小一些。但是实际的应用上,就个人而言,多层先验分布应用的地方真的不多,甚至可以说很少,因为一层先验能解决的问题为什么要用到两层呢?

    展开全文
  • 分层贝叶斯模型——应用

    千次阅读 2016-07-13 20:31:00
    该篇文章通过分层贝叶斯模型学习利用单一训练样本来学习完成分类任务,模型通过影响一个类别的均值和方差,可以将已经学到的类别信息用到新的类别当中。模型能够发现如何组合一组类别,将其归属为一个有意义的父类。...

    One-Shot Learning with a Hierarchical Nonparametric Bayesian Model

    该篇文章通过分层贝叶斯模型学习利用单一训练样本来学习完成分类任务,模型通过影响一个类别的均值和方差,可以将已经学到的类别信息用到新的类别当中。模型能够发现如何组合一组类别,将其归属为一个有意义的父类。对一个对象进行分类需要知道在一个合适的特征空间中每一维度的均值和方差,这是一种基于相似性的度量方法,均值代表类别的基本标准,逆方差对应于类别相似性矩阵的各维度权重。One-Shot学习看起来似乎是不可能的,这是因为单一的样本只提供了相应类别的均值信息,而没有方差信息。如果给每个维度附以相同的权重或使用错误相似性矩阵,结果必定是不可靠的。

    作者的模型利用从先前学习到的类别信息抽象出来的更高阶信息来估计新类别的基本标准以及适宜的相似性矩阵。随着所观测到的样本数的增多,这种估计的精度也随之提高。为了说明,考虑一下,当人类看到一个不熟悉动物时,如牛羚,很容易联想到马、牛、羊或是更为相似的物种。这是因为这些相似的物种有着更为相似的原型——马、牛、羊看起来相互长得更像,而并不像个什么家具或是汽车等。

    通过高维输入空间学习相似性矩阵已经成为机器学习领域一项重要任务。许多之前的工作主要针对于通过许多带标签的样本来学习相似性矩阵,没有试图去解决One-Shot学习问题。虽然启发于人类的学习过程,但本文方法也意指于广泛应用于机器分类和AI任务。从少量带标签样本学习并进行有效的推理任务是非常重要的。本文的方法是:无参数的先验可以使得在监督或无监督模式下的任何时候都能够生成新的类别。共轭分布集成大部分参数并能够进行快速推理。

    1. 分层贝叶斯模型 


     

    考虑观测一个有$N $个独立同分布的输入特征向量$\{x^1,...,x^N\} $,$x^n\in R^D $,$D $是特征的维度。假定这$N $个对象被分配到$C $个基类(level-1),我们通过一个长度为$N $的向量$z^b $来表示这种分配关系,即$z_{n}^b\in \{1,...,C\} $。同样,我们也假设这个$C $基类属于$K $个超类(level-2)当中,我们用一个长度为$C $的向量$z^s $来表示这种关系,$z_{c}^s\in \{1,...,K\} $。

    对于任一基类$c $,假设其观测到的特征向量服从高斯分布$N(x|\mu,1/\tau) $,则有

    $$
    P(x^n|z_{n}^b=c,\theta^1)=\prod_{d=1}^D N(x_{d}^n|\mu_{d}^c,1/\tau_{d}^c)
    $$

    其中$\theta^1=\{\mu^c,\tau^c\}_{c=1}^C $表示level-1的类别参数。

    然后我们假定$\{\mu^c,\tau^c\} $服从共轭的正态—伽马分布。level-1的c类属于level-2的k类可以表示为$k=z_{c}^s $,用$\theta^2=\{\mu^k,\tau^k,\alpha^k\}_{k=1}^K $表示level-2的参数。那么$P(\mu^{c},\tau^c|\theta^2,z^s)=\prod_{d=1}^D P(\mu_{d}^c,\tau_{d}^c|\theta^2,z^s) $

    对于每个维度$d$

    $$
    P(\mu_{d}^c,\tau_{d}^c|\theta^2)=P(\mu_{d}^c|\tau_{d}^c,\theta^2)P(\tau_{d}^c,\theta^2)=N(\mu_{d}^c|\mu_{d}^k,1/(\nu \tau_{d}^c)\Gamma (\tau_{d}^c|\alpha_{d}^k,\alpha_{d}^k/\tau_{d}^k))
    $$

    其中

    $$
    \Gamma(\tau|\alpha^k,\alpha^k/\tau^k)=\frac{(\alpha^k/\tau^k)^{\alpha^k}}{\Gamma(\alpha^k)}\tau^{\alpha^k-1} \exp \Big(-\tau\frac{\alpha^k}{\tau^k}\Big)
    $$

    这样的初始化能够给我们的模型以直观的解释,因为$E[\mu^c]=\mu^k $且$E[\tau^c]=\tau^k $,因此level-2的参数$\theta^2 $正好对应于level-1参数$\theta^1 $的期望,参数$\alpha^k $进一步控制着$\tau^c $围绕均值的变化。对于level-2层参数$\theta^2 $,我们假设下列的共轭先验:

    \[
    P(\mu_{d}^k)=N(\mu_d^k|0,1/\tau^0),\;P(\alpha_d^k|\alpha^0)=Exp(\alpha_d^k|\alpha^0),\;P(\tau_d^k|\theta^0)=IG(\tau_d^k|\alpha^0,b^0)
    \]

    $Exp(x|\alpha) $是参数为$\alpha $的指数分布,$IG(x|\alpha,\beta) $是参数为$\alpha $和$\beta $的逆伽马分布。我们进一步假设level-3参数$\theta^3=\{\alpha^0,\tau^0\} $服从弥散伽马分布$\Gamma(1,1) $

    2. Chinese Restaurant Process


    至此,我们已经假设我们的模型分为两层$z=\{z^s,z^b\} $,然而,如果我们没有获得任何的level-1和level-2的类标签,我们就需要推断可能的类结构分布。我们假定服从无参数的两层嵌套Chinese-Restaurant Prior(CPR)分布。Chinese Restaurant Process是定义在整数部分的一种分布。想象一下这个过程,当顾客进入一个没有桌子数量限制的饭店,那么第$n$个顾客坐在桌子$k$的概率可以用下列分布来刻画:

    $$
    P(z_n=k|z_1,...,z_{n-1})=
    \begin{cases}
    \frac{n^k}{n-1+\gamma} & n^k>0 \\
    \frac{\gamma}{n-1+\gamma} &k\;is\;new
    \end{cases}
    $$

    $n^k $是桌子$k$之前所有的顾客数,$\gamma $是集中参数。

    嵌套CRP,即$nCRP(\gamma) $是将$CRP $扩展成树每层划分的嵌套序列,在这种情况下,每个观测值$n $首先通过上述方程分配到父类$z_n^s $,然后再一次按照上述方程将其分配到父类$z_n^s $下的基类$z_b^s $。最后假定$\gamma \sim \Gamma(1,1) $。不像传统的分层贝叶斯模型,本文的模型参数和分层参数都是共享的。

    3. 推理


    模型参数在各个层上的推理都是采用$MCMC $的方法。当模型的树结构没有给定时,推理中首先固定,然后采样模型参数$\theta $,固定$\theta $去采样类别分配,两个过程交替进行。

    采样level-1和level-2参数:

    给定level-2参数$\theta^2 $和$z $,条件分布$P(\mu^c,\tau^c|\theta^2,z,x) $是$Normal-Gamma $分布,这使得我们很容易去采样level-1的参数$\{\mu^c,\tau^c\} $。给定$z,\;\theta^1,\;\theta^3 $后,$\mu^k,\;\tau^k $服从高斯和逆伽马分布,同样很容易采样就得。唯一复杂一点的是采样$\alpha^k $,因为

    $$
    p(\alpha^k|z,\theta^1,\theta^3,\tau^k)\propto \frac{(\alpha^k/\tau^k)^{\alpha^k n_k}}{\Gamma(\alpha^k)^{n_k}}\exp\Big(-\alpha^k\Big(\alpha^0+S^k/\tau^k-T^k\Big)\Big)
    $$

    其中$S^k=\sum_{c:z(c)=k}\tau^c $且$T^k=\sum_{c:z(c)=k}\log(\tau^c) $,若$\alpha^k $较大,上述概率密度近似于伽马密度,因此,我们可以用$Metropolis-Hastings $方法。我们生成一个新的候选变量

    $$
    \alpha^*\sim Q(\alpha^*|\alpha^k)\;with\;Q(\alpha^*|\alpha^k)=\Gamma(\alpha^*|t,t/\alpha^k)
    $$

    然后用$M-H $方法进行采样。

    采样$z $:

    给定模型参数$\theta=\{\theta^1,\theta^2\} $后,$z_n $的后验分布为:

    $$
    p(z_n|\theta,z_{-n},x^n)\propto p(x^n|\theta,z_n)p(z_n|z_{-n})
    $$

    其中$z_{-n} $是指$z$中除了$n$以后的所有观测值。

    当计算所创建出的新基类的概率时,我们能够进一步利用分层模型的共轭性。由于服从正态—伽马先验的$p(\mu^c,\tau^c) $是一个正态分布的共轭先验,因此,我们能够很容易计算下列边缘似然概率:

    $$
    p(x^n|\theta^2,z_n)=\int_{\mu^c,\tau^c}p(x^n,\mu^c,\tau^c|\theta^2,z_n)=\int_{\mu^c,\tau^c}p(x^n|\mu^c,\tau^c)p(\mu^c,\tau^c|\theta^2,z_n)
    $$

    积掉基类参数$\theta^1 $能够让我们更有效地从树结构中进行采样。当计算新父类下$x^n $的概率时,它的参数可以从先验分布中采样获得。

    4.  One-Shot Learning


    考虑观察到一个新类$c^* $的新样本$x^* $,在level-2参数$\theta^2 $当前设置以及当前树结构确定的情况下,我们能够首先推断出这个新类是属于哪个父类,例如我们能够计算$z_c^* $的后验分布。如果没有相匹配的父类,就创建自己的父类。当给定一个推断出的$z_c^* $时,我们就能够求得新类的均值和相似性矩阵$\{\mu^*,\tau^*\} $。我们可以通过计算新的测试输入$x^t $属于新类$c^* $的条件概率来测试HB模型的泛化性能。

    $$
    p(c^*|x^t)=\frac{p(x^t|z_c^*)p(z_c^*)}{\sum_z p(x^t|z)p(z)}
    $$

    这里,先验概率可以由$nCRP(\gamma) $来确定,log似然形式如下:

    $$
    \log p(x^t|c^*)=\frac{1}{2}\sum_d \log(\tau_d^*)-\frac{1}{2}\sum_d \tau_d^*(x_d^t-\mu_d^*)^2+C
    $$

    $C $是一个常数,不依赖于任何参数。

    5. MNIST实验


    本文首先研究了HB模型泛化单个样本——手写体9的能力。首先采用900幅图片(0-8每个数字100幅)来训练HB模型,然后给定一个数字9,模型能够发现新的类别与4和7所在的类别很相近,因此新类能够通过4和7所在类别的均值和相似矩阵来计算自己的参数。

    参考文献:

    Salakhutdinov, Ruslan, Joshua B. Tenenbaum, and Antonio Torralba. "One-Shot Learning with a Hierarchical Nonparametric Bayesian Model." ICML Unsupervised and Transfer Learning. 2012.

     

    转载于:https://www.cnblogs.com/huangxiao2015/p/5668140.html

    展开全文
  • 【转载】贝叶斯网络简介

    千次阅读 2014-06-21 21:34:56
    【转载】贝叶斯网络简介  2014-06-21 21:24:05| 分类: 默认分类|字号 订阅 本文转载自zzz《贝叶斯网络简介》   贝叶斯网络是为了处理人工智能研究中的不确定性(uncertainty)问题而...

    转载】贝叶斯网络简介  

    2014-06-21 21:24:05|  分类: 默认分类|字号 订阅

    本文转载自zzz《贝叶斯网络简介》
    • 贝叶斯网络简介 - zzz - 水墨·点滴       贝叶斯网络是为了处理人工智能研究中的不确定性(uncertainty)问题而发展起来的。贝叶斯网络是将概率统计应用于复杂领域进行不确定性推理和数据分析的工具。 BN是一种系统地描述随即变量之间关系的工具。建立BN的目的主要是进行概率推理(probabilistic inference)。 用概率论处理不确定性的主要优点是保证推理结果的正确性。

    为什么要用贝叶斯网络进行概率推理?

    •       理论上,进行概率推理所需要的只是一个联合概率分布。但是联合概率分布的复杂度相对于变量个数成指数增长,所以当变量众多时不可行。
    •  
    • 贝叶斯网络的提出就是要解决这个问题。它把复杂的联合概率分布分解成一系列相对简单的模块,从而大大降低知识获取和概率推理的复杂度,使得可以把概率论应用于大型问题。
    • 统计学、系统工程、信息论以及模式识别等学科中贝叶斯网络特里的多元概率模型:朴素贝叶斯模型,隐类模型,混合模型,隐马尔科夫模型,卡尔曼滤波器等。
    • 动态贝叶斯网络主要用于对多维离散时间序列的监控和预测。
    • 多层隐类模型,能够揭示观测变量背后的隐结构。

     

    概率论基础: 贝叶斯网络所依赖的一个核心概念是条件独立,Conditional Independence

     1、基本概念

     

     

     

     

     2、图分割与变量独立

    • 图分割,有向分割(d-separate,d-分割)

      变量X和Y通过第三个变量Z间接相连的三种情况:

        

      阻塞(block)

      设Z为一节点集合,X和Y是不在Z中的两个节点。考虑X和Y之间的一条通路。如果满足下面条件之一,则称被Z所阻塞:

      1.有一个在Z中的顺连节点;

      2.有一个在Z中的分连节点

      3. 有一个汇连节点W,它和它的后代节点均不在Z中。

       

      如果X和Y之间的所有通路都被Z阻塞,则说Z有向分割(directed separate)X和Y,简称d-separate,d-分割。那么X和Y在给定Z时条件独立。

      定理(整体马尔科夫性)设X和Y为贝叶斯网N中的两个变量,Z为N中一个不包含X和Y的节点集合。如果Z d-分割X和Y,那么X和Y在给定Z时条件独立,即 

      d-分割是图论的概念,而条件独立是概率论的概念,所以定理揭示了贝叶斯网络图论侧面和概率论侧面之间的关系。 

     

    3、 马尔科夫边界与端正图

    马尔科夫边界:在贝叶斯网络中,一个节点X的马尔科夫边界(Markov boundary)包括其父节点、子节点、以及子节点的父节点。

    端正图(Moral graph): 设G为一有向无环图,如果将G中每个节点的不同父节点结合,即在他们之间加一条边,然后去掉所有边的方向,所得到的无向图成为G的端正图。

     

    4、贝叶斯网络推理(Inference)

             贝叶斯络可以利用变量间的条件独立对联合分布进行分解,降低参数个数。推理(inference)是通过计算来回答查询的过程。

     

    贝叶斯网络推理(Inference)

    1 变量消元算法(Variable elimination)

    利用概率分解降低推理复杂度。

    @ 使得运算局部化。消元过程实质上就是一个边缘化的过程。

    @ 最优消元顺序:最大势搜索,最小缺边搜索

    2. 团树传播算法

    • 利用步骤共享来加快推理的算法。
    • 团树(clique tree)是一种无向树,其中每一个节点代表一个变量集合,称为团(clique)。团树必须满足变量连通性,即包含同一变量的所有团所导出的子图必须是连通的。

     

    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    • 用团树组织变量消元的算法。计算共享
    • 团树传播算法基本步骤:
    • 将贝叶斯网络转化为团树
    • 团树初始化
    • 在团树中选一个团作为枢纽
    • 全局概率传播:CollectMessage; DistributeMessage
    • 边缘化,归一化

       

      团树传播算法示例 ([TLR]是枢纽节点)

      F变量消元和团树传播算法都是精确推理算法。

    展开全文
  • 这几天在写BayesWipe,写到条件概率表(CPT,Conditional Probability Table)的时候,感觉对贝叶斯网络的参数学习还是有些不清楚,因此想整理一下贝叶斯信念网络(BBN,Bayesian Belief Network)的一些概念,包括...
  • 原标题:TensorFlow2开发深度学习模型实例:多层感知器,卷积神经网络和递归神经网络原文链接:在本部分中,您将发现如何使用标准深度学习模型(包括多层感知器(MLP),卷积神经网络(CNN)和递归神经网络(RNN))开发,...
  • 本文转自中国人工智能学会通讯第3期,已获授权,特此感谢! 欢迎人工智能领域技术投稿、约稿、给文章纠错,请发送邮件至heyc@csdn.net...内容主要分为三部分:贝叶斯基本理论、模型和算法;可扩展的贝叶斯方法;深...
  • 一文看懂25个神经网络模型

    万次阅读 多人点赞 2017-06-17 10:26:08
    光是知道各式各样的神经网络模型缩写(如:DCIGN、BiLSTM、DCGAN……还有哪些?),就已经让人招架不住了。因此,这里整理出一份清单来梳理所有这些架构。其中大部分是人工神经网络,也有一些完全不同的怪物。尽管...
  • 2. 再说说层次型模型,指的就是超参数(Hyper parameter)的选择 3. 用吉布斯采样把这些参数(数据分布的参数和超参数)都采出来先说说贝叶斯参数估计的时候用的贝叶斯定理: p(Θ|y)=p(y|Θ)p(Θ)/p(y)∝p(y|Θ)p...
  • 本文不讲解复杂的数学理论,涉及到了K近邻、线性模型、朴素贝叶斯分类器、决策树、随机森林、梯度提升回归树、SVM、MLP,以及监督学习模型的选择原则,全文2万多字,后续还会进一步补充。在后面的博客中会记录机器...
  • 3多层线性模型的参数估计常用方法多层线性模型常用最大似然估计(MLE)方法估计模型的方程协方差。在具体应用过程中,最大似然估计(MLE)又可以分为:(1)完全最大似然法(FML)(2)限制性最大似然法(REML)二者...
  • 机器之心报道编辑:魔王、蛋酱、张倩一篇 30 年前的论文,因为一次获奖,又重新出现在世人眼前。近日,图灵奖得主、贝叶斯网络之父 Judea Pearl 在推特上提到,自己在三十年前与当时...
  • 基于贝叶斯网络的治疗计划可解释的临床决策支持系统 这项工作满足了对贝叶斯网络(BN)形式的可解释的临床决策支持系统(CDSS)的高度需求。 受临床常规决策的启发,我们的方法包括患者特定的证据项目,例如检查结果...
  • 作者丨庞龙刚单位丨华中师范大学研究方向丨高能核物理、人工智能今天介绍一篇北京大学物理系使用贝叶斯神经网络计算核裂变碎片产额的文章。这篇文章发表在 PRL 上,业内同行都很感兴趣。这里对我...
  • 多层线性模型的原理

    2020-07-13 11:11:00
    最近要用到HLM模型,把简书上的一篇相关文章转载过来复习一下。原文写于2019.01.08,链接为:https://www.jianshu.com/p/8deb0fd0fba0。《追踪数...
  • brms程序包提供了一个接口,以使用Stan来拟合贝叶斯广义(非)线性多元多级模型,这是一个用于执行完整贝叶斯推理的C ++程序包(请参见 )。 公式语法与软件包lme4的语法非常相似,以提供用于执行回归分析的熟悉且...
  • 一,混合密度网络 作为逆问题,考虑机械臂的运动学问题。正向问题(forward problem)是在给定连接角的情况下求解机械臂末端的位置,这个问题有唯⼀解。然⽽,在实际应⽤中,我们想把机械臂末端移动到⼀个具体的位置...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,517
精华内容 2,206
关键字:

多层贝叶斯网络模型