概率图模型4:贝叶斯网络

9.4 概率图模型基础:贝叶斯网络、马尔可夫网络与条件独立性 概率图模型是一种将概率论与图论相结合的强大框架,用于表示和推断多个随机变量之间的复杂依赖关系。它通过图结构直观地揭示变量间的条件独立性,并以此为基础紧凑地参数化高维联合概率分布,从而为不确定性推理、机器学习任务提供结构化的模型基础。根据图中边的性质,概率图模型主要分为两大类:使用有向无环图表示因果或生成关系的**贝叶斯网络**,以及使用无向图表示关联或约束关系的**马尔可夫网络**(也称马尔可夫随机场)。本节将系统阐述这两种基本模型的结构定义、参数化方法及其与条件独立性之间的核心联系。 阅读详情

作者:孙相国

转载请注明出处

概率图模型主要研究四方面问题:

  1. 表示
  2. 推理
  3. 学习

在本系列博文中,我们将按照下面的路线进行陈述:

  1. 首先我们研究贝叶斯网络和无向图网络的最基本的概念。

  2. 在此基础上,我们分出两个分支,一个是以贝叶斯网络为基础,一个是以无向图为基础,讨论学习问题:

  3. 最后我们将会研究一些关于推理方面的知识.

0. 参考文献

[1] 概率图模型原理与技术(中文版)

[2] probabilistic graphical models(概率图模型原理与技术 英文版)

[3] 机器学习 周志华

[4] 统计学习方法 李航

[5] csdn博客:http://blog.youkuaiyun.com/github_36326955

[6] 模式识别

1.1 为什么要研究贝叶斯网络?

对于一个联合概率分布,我们需要跟多个独立变量来表示,甚至独立变量的个数会呈现指数级的增长。例如,考虑 P(X1,X2,X3,⋯,Xn) ,假如,每一个 Xi 都是二项分布的话。这样联合概率里面就有至少 2n−1 个参数(对应的是 X1,⋯,Xn 的全排列数目减一,减掉1是因为最后一种情况可以用1减掉之前的所有概率)。因此我们希望通过建立联合概率与图的关联,从图中找到条件独立性论断(并且我们可以证明,图中的条件独立性论断在联合概率中都是成立的。),这样就可以将原始的联合概率写成多个独立因子的乘积,从而减少独立变量的个数,使得模型更加“紧凑”。例如,如果我们可以建立一个概率图,并且从中发现了如下的独立性论断:

(Xi⊥X−i|C)

其中 X−i 表示 {X1,⋯,Xn}−{Xi} ,那么 P(C,X1,X2,X3,⋯,Xn) 可以写成:
P(C)Πni=1P(Xi|C)

注意到每一个 P(Xi|Cj) 都有两种情况(对应1个参数),因此公式 (2) 的参数个数只有 2n+1 个。

事实上,这种假设太强,但是仍然在很多应用的价值。接下来您将会看到,基于这种独立性假设建立的概率图表示模型,就是朴素贝叶斯模型。

“紧凑”,在这里的具体含义是:经过独立性约间的式子(2),其独立参数个数小于原始的联合概率分布形势下独立参数个数。

1.2 朴素贝叶斯模型

单纯的介绍朴素贝叶斯模型和对应的概率图,并没有什么价值。事实上,关于朴素贝叶斯的定义,1.1节几乎已经介绍得很充分了。具体来说,在公式 (1) 中,我们把 C=c1,⋯,ck 看做样本的类别。把 Xi 看做样本的第 i 个维度的特征。那么,朴素贝叶斯假设的实际意义就很明显了:朴素贝叶斯模型假设在给定样本实例的类别的条件下,不同的性质可以独立的确定。

这里写图片描述

在本节,我们将要介绍的,是与朴素贝叶斯模型相关的一个机器学习算法:朴素贝叶斯法。它在文本分类中经常被使用(参见作者博文《python 中文文本分类》)。

1.2.1 基本方法

正如你在1.1节看到的公式(2)所表达的一样,公式 (2) 是对联合概率的一个计算。运用贝叶斯定理,我们可以很轻易的求得:

P(C=ck|X1:n)=P(C=ck)Πni=1P(Xi|C=ck)∑CP(C=cj)Πni=1P(Xi|C=cj)

公式 (3) 表达了对于给定观测样本,其属于类别 ck 的概率。因此朴素贝叶斯分类器可以表示为:
y=f(X1:n)=argmaxckP(C=ck)Πni=1P(Xi|C=ck)∑CP(C=cj)Πni=1P(Xi|C=cj)

考虑到分母对所有样本是相同的,因此,可以进一步规约为:
y=f(X1:n)=argmaxckP(C=ck)Πni=1P(Xi|C=ck)

从常理上看,朴素贝叶斯分类器把样本实例分到后验概率最大的类别,是很自然的,也是符合我们的认知的(你可以在作者这篇博文中找到更详细的解释《 深入浅出EM算法与实践(持续更新)》)。那么,除了从感性的角度认为这种分类策略有道理外,我们能不能从更严谨的角度去考察这种分类策略的合理性呢?答案是可以的,事实上,朴素贝叶斯的分类策略,等价于期望风险最小化(更多的论述,读者可以参考其他文献,例如李航博士的《统计学习方法》4.1.2,这里不再赘述)。

1.2.2 参数估计

从公式 (5) 可以看到,我们需要估计的参数有 P(C=ck) 和 P(Xi=xi|C=ck)

由于这些概率事实上都是可以从样本集合中估计出来的,所以整个估计策略并不复杂。只是对样本做了一些基本的统计(极大似然估计)。例如:

P(C=ck)=∑ni=1I(yi=ck)n,k=1,2,⋯,K

P(Xi=xi|C=ck)=∑ni=1I(Xi=xi|C=ck)∑ni=1I(C=ck)

其中 I(.) 为指示函数。

需要注意的是:公式 (6,7) 都是基于现有的样本做统计的。那么,如果碰巧某类情况在样本中没有出现(事实上这种情况是很常见的,因为机器学习处理的数据是小规模的),那么就有可能遭遇某类概率为0的情况。因此,我们需要对公式做一个平滑处理:

P(C=ck)=∑ni=1I(yi=ck)+λn+Kλ,k=1,2,⋯,K;λ⩾0

特别的,当 λ=1 时,成为拉普拉斯平滑。

通过对分子分母加一个系数,我们实现了概率的平滑处理。事实上,在很多其他研究中,我们还有其他的办法让我们的概率“平滑”,一个最经典的例子就是将特征加权后,送入到logistic函数中。我们就可以很自然地得到一个人工构造的概率。更详细的内容,请参阅作者的博客《logistic回归》

1.2.3 python实现

从前几个小节的介绍来看,朴素贝叶斯分类器的实现,并不复杂。在scikit-learn库中,有直接的函数可以调用。只是这个库中的函数,为我们指定了公式 (5) 中的类条件概率分布的形式(比如可能是高斯分布,或者伯努利分布等)。关于scikit-learn库中相应函数的使用,你可以参考作者的博文《python 中文文本分类》。这里给出的代码,是没有指定任何分布,仅仅根据公式 (7,8) 得到的。

实例代码托管在GitHub上:

实例代码

1.3 图与分布

1.3.1基本任务

贝叶斯网图的形式化语义是一系列的独立性断言( () ,见定义1)。另一方面它又是由条件概率分布做注释的图,并通过链式法则为贝叶斯网定义了一个联合分布( P )。本小节接下来的工作就是证明这两者的等价,即如下命题成立:A⇔B,其中:

A: 分布 P 满足与图G相关的局部独立性。

B: P 可以由与图G相关的一系列条件概率分布表示。

换言之,若 P 可以由图蕴含的的一系列条件概率表示时,那么 中的所有条件独立性都在 P 的所有条件独立性集合中,反之亦然。在接下来的内容里,你将会看到,A所表达的意涵就是I-Map,B所表达的意涵叫做因子分解。我们接下来首先给出几个基本概念。然后在此基础上进行命题的证明。

1.3.2基本定义

定义 1(贝叶斯网的语义)

贝叶斯网结构是其节点代表随机变量 X1,⋯,Xn 的一个有向无圈图(DAG)。令 PaXi 表示 Xi 在 中的父节点, NonDescendantsXi 在图中的非后代节点变量。

因此 表示了如下称为局部独立性的条件独立性假设,并且记为 l() :

对每一个变量 Xi : (Xi⊥NonDescendantsXi|PaXi)

话句话是说,局部独立性表明,在给定父节点的条件下,每个节点 Xi 与其非后代节点条件独立。

定义 2(I-Map)

设 为一个网络图,记 () 为这个网络图 中蕴含的所有形如 (X⊥Y|Z) 的独立性断言集合。

设 P 为一个分布,记(P)为在 P 中成立的所有形如(X⊥Y|Z)的独立性断言集合。

若 ()⊆(P) ,则称 是一个I-Map(独立图)。

定义2 事实上描述了我们证明任务的前半部分,即:分布 P 满足与图相关的局部独立性。正如我们从包含关系中所看到的:任何由 断言的独立性,在 P 中必然成立;P中成立的独立性,未必能够体现在图 中。接下来,我们需要对证明任务的后半部分形式化定义: P 可以由与图相关的一系列条件概率分布表示。

定义3 (因子分解)

令 为定义在变量 X1,⋯,Xn 上的一个贝叶斯网络。假如 P 可以表示为如下乘积:

P(X1,⋯,Xn)=Πni=1P(Xi|PaXi)

则称分布 P 是关于图的在同一空间上的因子分解。这个式子叫做贝叶斯网的链式法则,单个因子 P(Xi|PaXi) 称为条件概率分布(CPD)或局部概率模型。

定义3 事实上描述了我们证明任务的后半部分,即: P 可以由与图相关的一系列条件概率分布表示。正如我们从定义1中所看到的, 中蕴含了如下的独立性论断: l()={(Xi⊥NonDescendantsXi|PaXi):Xi∈X1:n} 。我们假定 X1,X2,⋯,Xn 的顺序就是图 的一个拓扑序。那么:

P(X1,⋯,Xn)=P(X1)P(X2|X1)P(X3|X1,X2)⋯P(Xn|X1,⋯,Xn−1)

其中公式 (10) 对任何联合分布都是适用的。由于 X1,X2,⋯,Xn 是图 的一个拓扑序,因此对于式子 (10) 中的任意一项 P(Xi|X1,⋯,Xi−1) ,有 {X1,⋯,Xi−1}=PaXi∪Z,Z⊆NonDescendantsXi ,根据独立性论断 l() ,有 P(Xi|X1,⋯,Xi−1)=P(Xi|PaXi) ,进而有公式 (9) .

由定义3,我们可以给出贝叶斯网络的定义:

定义4(贝叶斯网)

一个贝叶斯网是一个偶对 =(,P) ,其中 P 是上的因子分解,并且 P 指定为关联在上节点的一系列条件概率分布,通常记为 P 。

接下来,本文将对1.3.1节中的两个命题做等价性证明,这两个命题是:

A: 分布 P 满足与图相关的局部独立性。

B: P 可以由与图相关的一系列条件概率分布表示。

我们首先证明 A⇒B ,再证明 A⇐B .

1.3.3 A=>B

A⇒B 的语义表述为:

令 是定义在变量集 上的一个贝叶斯网络,并且 P 是同一个空间上的联合分布。如果是 P 的一个I-map,那么P根据 因子分解。

证明:

假定 X1,X2,⋯,Xn 的顺序就是图 的一个拓扑序。

由概率的链式法则有:

P(X1,⋯,Xn)=P(X1)P(X2|X1)P(X3|X1,X2)⋯P(Xn|X1,⋯,Xn−1)

由于 为I-map,因此 中蕴含了如下的独立性论断: l()={(Xi⊥NonDescendantsXi|PaXi):Xi∈X1:n} .且 l()⊆(P) 。

由于 X1,X2,⋯,Xn 是图 的一个拓扑序,因此对于式子 (11) 中的任意一项 P(Xi|X1,⋯,Xi−1) , Xi 的所有父节点都在集合 {X1,⋯,Xi−1} 中,并且这个集合不存在任何 Xi 的后代节点,即: {X1,⋯,Xi−1}=PaXi∪Z,Z⊆NonDescendantsXi ,根据独立性论断 l() 和条件独立性分解性质,有: P(Xi|X1,⋯,Xi−1)=P(Xi|PaXi) ,进而有公式 (9) .

得证

1.3.4 B=>A

B⇒A 的语义表述为:

令 是定义在变量集 上的一个贝叶斯网络,并且 P 是同一个空间上的联合分布。如果P根据 因子分解,那么 是 P 的一个I-map。

令P是某个根据 Gstudents 因子分解掉概率分布。我们需要证明 (Gstudents) 在 P 中成立。考虑任意随机变量Xk的独立性假设 (Xk⊥NonDescendantsXk|PaXk) ,为了证明其在P中成立,需要证明:

P(Xk|NonDescendantsXk,PaXk)=P(Xk|PaXk)(1)

根据定义,
P(Xk|NonDescendantsXk,PaXk)=P(Xk,NonDescendantsXk,PaXk)P(NonDescendantsXk,PaXk)(2)

根据贝叶斯网的链式法则,分式的分子为:
P(Xk,NonDescendantsXk,PaXk)=ΠXi∉DescendantsXkP(Xi|PaXi)(3)

通过对联合分布执行边缘化,分式的分母为:
P(NonDescendantsXk,PaXk)=∑XkP(Xk,NonDescendantsXk,PaXk)=∑XkΠXi∉DescendantsXkP(Xi|PaXi)=∑XkP(Xk|PaXk)ΠXi∉DescendantsXk,Xi≠XkP(Xi|PaXi)=ΠXi∉DescendantsXk,Xi≠XkP(Xi|PaXi)∑XkP(Xk|PaXk)=ΠXi∉DescendantsXk,Xi≠XkP(Xi|PaXi)(4)

这样, (2) 可以写为:
P(Xk|NonDescendantsXk,PaXk)=P(Xk,NonDescendantsXk,PaXk)P(NonDescendantsXk,PaXk)=ΠXi∉DescendantsXkP(Xi|PaXi)ΠXi∉DescendantsXk,Xi≠XkP(Xi|PaXi)=P(Xk|PaXk)ΠXi∉DescendantsXk,Xi≠XkP(Xi|PaXi)ΠXi∉DescendantsXk,Xi≠XkP(Xi|PaXi)=P(Xk|PaXk)

证毕

1.4 图中的独立性

在1.3节中,我们解决了命题 A 与命题B的等价,但是前提是在贝叶斯网络这个大框架中。换言之,由贝叶斯网的语义定义,我们讨论的独立性假设集合是: l() ,即对每一个变量 Xi : (Xi⊥NonDescendantsXi|PaXi) 。也就是说,1.3节为我们解决了这样的一个问题:虽然只是知道分布 P 根据G因子分解,但是仍然可以得出 P 满足l()的结论。

接下来的问题是:在 ​ 中是否存在其他形式的独立性,使得这些独立性对于根据 ​ 分子因解的分布 P​ 仍然成立?

这就是本节要解决的问题。

1.4.1 d-分离

本节要讨论的是在什么情况下, X 在给定Z时可能影响 Y .如果我们能够穷举所有情况,那么我们就可以进一步得出什么时候可以保证独立性条件(X⊥Y|Z)在于贝叶斯网络 相关的分布中成立。

当影响经过 Z 可以从X流向 Y 时,迹X⇌Z⇌Y成为有效的。对有效迹分析结果总结:

因果迹 X→Z→Y :有效当且仅当没有观测到 Z 。

证据迹X←Z←Y:有效当且仅当没有观测到 Z

共同的原因X←Z→Y:有效当且仅当没有观测到 Z

共同的作用(V-结构)X→Z←Y:有效当且仅当观测到 Z 或Z的后代。

定义5(有效迹)

令 是一个贝叶斯网络,且 X1⇌⋯⇌Xn 是 中的一条迹。令 Z 是观测变量的一个子集。在给定Z的情况下,加入:

若有一个V结构 Xi−1→Xi←Xi+1 ,则 Xi 或其一个后代在 Z 中

迹上的其他节点都不在Z中

那么迹 X1⇌⋯⇌Xn 是有效迹

定义6(d-分离)

令 X,Y,Z 是图 的三个节点集。在给定 Z 的情况下,假如任意节点Xi∈X与 YI∈Y 之间不存在有效迹,那么 X 与Y在给定 Z 时是d-分离的,记作d−sep(X;Y|Z)

与d-分离相对应的独立性集合用 () 表示: ()={(X⊥Y|Z):d−sep(X;Y|Z)}

接下来我们直接给出一些有用的结论,对这些结论的直观理解,可以参考后面的示意图:

在示意图中,矩形代表图 的独立性集合。椭圆代表的是根据 因子分解的分布。黑色圆形代表蕴含在各个组份中的独立性。

结论1(可靠性)

如果分布 P 根据因子分解,那么 ()⊆(P) .

从图上来理解,可以看到 P1,P2,P3 都是图 的因子分解,它们都包含了图 的d分离独立性集合。

注意到 ()={(X⊥Y|Z):d−sep(X;Y|Z)} ,而 (P)={(X⊥Y|Z)}

因此,结论1表明:如果给定某个 Z 时,找到的两个节点X与 Y 是d-分离的,那么可以保证,在给定Z时,它们实际上是条件独立的。(如示意图中所表达的含义:)

结论2(完备性)

令 是一个贝叶斯网络。如果给定 Z 时,X与 Y 在中不是d-分离的(例如示意图中的“其他独立性1”),那么给定 Z 时,X与 Y 在某些可以在上因子分解的分布中(例如示意图中“其他独立性1”相对于 P2 )相互依赖。

这个命题的逆否命题为:在所有可以在 上因子分解的分布 P 中,如果(X⊥Y|Z),那么有 d−sep(X;Y|Z) .对应于示意图上的解释为:对 P1,P2,P3 均成立的独立性(事实上就是三个椭圆相交的黑色圆),必然是图 中的d分离的子集。

事实上,结论1描述的是可靠性,结论2描述的是完备性。综合结论1和结论2,我们可以得到结论3:

结论3(弱等价)

对于几乎所有在 上因子分解的分布 P ,我们有(P)=().

结论3在示意图上的解释为:忽略掉了其他独立性1,2,3,4.

动态网络安全风险评估:贝叶斯攻击图与过程挖掘双引擎实践 网络安全风险评估是保障信息系统安全的核心环节,其原理在于通过系统化方法识别、分析和评价潜在威胁与脆弱性。传统静态评估方法难以应对实时演变的攻击,技术价值在于实现从被动响应到主动预测的转变。通过融合贝叶斯网络与过程挖掘技术,能够构建动态风险评估模型,其中贝叶斯攻击图负责概率化推演攻击路径,过程挖掘则从海量日志中自动化提取攻击模式。这种双引擎架构特别适用于安全运营中心(SOC)场景,能有效关联SIEM告警,将离散事件整合为高置信度攻击链,从而精准量化资产风险并预测攻击演进。该方法通过实时证据注入与模型互馈,为应 阅读详情

相关推荐

贝叶斯网络,看完这篇我终于理解了(附代码)!

文章目录1. 对概率图模型的理解2. 细数贝叶斯网络2.1 频率派观点2.2 贝叶斯学派2.3 贝叶斯定理2.4 贝叶斯网络2.4.1 贝叶斯网络的结构形式2.4.2 因子图2.5 朴素贝叶斯3. 基于贝叶斯的一些问题4. 生成式模型和判别式模型的区别5. 代码实现6. 参考文献 1. 对概率图模型的理解 概率图模型是用图来表示变量概率依赖关系的理论,结合概率论与图论的知识,利用图来表示与模型有关...

mantch 2万+

【机器学习详解】概率生成模型与朴素贝叶斯分类器

1.概率生成模型首先介绍生成模型的概念,然后逐步介绍采用生成模型的步骤。1.1概念 即对每一种类别CkC_k分别建立一种模型p(Ck|x)p(C_k|x),把待分类数据x分别带入每种模型中,计算后验概率p(Ck|x)p(C_k|x),选择最大的后验概率对应的类别。 假设原始数据样本有K类,生成学习算法是通过对原始数据类p(x|Ck)p(x|C_k)与p(Ck)p(C_k)建立数据类模型后,采用贝

勿在浮砂筑高台 1万+

详解概率图模型——有向图模型:贝叶斯网络

详解概率图模型——有向图模型:贝叶斯网络 贝叶斯定理 条件概率 全概率公式 贝叶斯公式 贝叶斯网络 概念 实例:贝叶斯网络Student模型 概率模型图 Python实现

Avery123123的博客 5678

贝叶斯分类初识

http://www.cnblogs.com/leoo2sk/archive/2010/09/17/naive-bayesian-classifier.html 对于分类问题,其实谁都不会陌生,说我们每个人每天都在执行分类操作一点都不夸张,只是我们没有意识到罢了。例如,当你看到一个陌生人,你的脑子下意识判断TA是男是女;你可能经常会走在路上对身旁的朋友说“这个人一看就很有钱、那边有个非主流”之类的话

最爱山间那朵云 512

python贝叶斯网络预测模型_概率图模型之:贝叶斯网络

1、贝叶斯定理P(A∣B)=P(A)P(B∣A)P(B)P(A|B)是已知B发生后A的条件概率,也由于得自B的取值而被称作A的后验概率。P(B|A)是已知A发生后B的条件概率,也由于得自A的取值而被称作B的后验概率。P(A)是A的先验概率或边缘概率。之所以称为”先验”是因为它不考虑任何B方面的因素。P(B)是B的先验概率或边缘概率。贝叶斯定理可表述为:后验概率 = (相似度 * 先验概率) / 标...

weixin_39801714的博客 3320

Stanford概率图模型(Probabilistic Graphical Model)— 第一讲 贝叶斯网络基础

概率图模型(Probabilistic Graphical Model)系列来自Stanford公开课Probabilistic Graphical Model中Daphne Koller 老师的讲解。(https://class.coursera.org/pgm-2012-002/class/index)主要内容包括(转载请注明原始出处http://blog.youkuaiyun.com/yangliuy)

Coding for Dreams 5万+

概率图几种模型的简介和比较

基础知识     概率图是一类用图的形式表示随机变量之间条件依赖关系的概率模型, 是概率论与图论的结合。图中的节点表示随机变量,缺少边表示条件独立假设。根据图中边的有向、无向性,模型可分为两类:有向图、无向图。 G(V,E):变量关系图 V:顶点or节点,表示随机变量 E:边or弧 两个节点邻接:两个节点之间存在边,记为Xi ~Xj ,不存在边,表示条件独立。 路径:若

lina_suda的博客 1万+

概率图模型(PGM)学习笔记(四)-贝叶斯网络-伯努利贝叶斯-多项式贝叶斯

之前忘记强调了一个重要区别:条件概率链式法则和贝叶斯网络链式法则的区别 条件概率链式法则   贝叶斯网络链式法则,如图1 图1   乍一看很容易觉得贝叶斯网络链式法则不就是大家以前学的链式法则么,其实不然,后面详述。   上一讲谈到了概率分布的因式分解 可以看到条件概率的独立性可以直接从概率分布表达式看出来。   我们已经用概率图模型把

程引的专栏 1万+

PGM:有向图模型:贝叶斯网络

http://blog.youkuaiyun.com/pipisorry/article/details/52489270 为什么用贝叶斯网络 联合分布的显式表示 Note: n个变量的联合分布,每个x对应两个值,共n个x,且所有概率总和为1,则联合分布需要2^n-1个参数。 贝叶斯网表示 ...

chuange6363的博客 759

概率图模型(PGM)学习笔记(二)贝叶斯网络-语义学与因子分解

概率分布(Distributions) 如图1所示,这是最简单的联合分布案例,姑且称之为学生模型。 图1 其中包含3个变量,分别是:I(学生智力,有0和1两个状态)、D(试卷难度,有0和1两个状态)、G(成绩等级,有1、2、3三个状态)。 表中就是概率的联合分布了,表中随便去掉所有包含某个值的行,就能对分布表进行缩减。 例如可以去掉所有G不为1的行,这样就只剩下了1、4、

程引的专栏 9406

QT 面试题汇总

一、讲述Qt信号槽机制与优势与不足 优点:①类型安全。需要关联的信号槽的签名必须是等同的。即信号的参数类型和参数个数同接受该信号的槽的参数类型和参数个数相同。若信号和槽签名不一致,编译器会报错。 ②松散耦合。信号和槽机制减弱了Qt对象的耦合度。激发信号的Qt对象无需知道是那个对象的那个信号槽接收它发出的信号,它只需在适当的时间发送适当的信号即可,而不需要关心是否被接受和那个对象接受了。Qt就保证了适当的槽得到了调用,即使关联的对象在运行时被删除。程序也不会奔溃。 ...

编程菜鸟 4万+

贝叶斯网络

1、概念 贝叶斯网络(Bayesian network),或称有向无环图模型,是一种概率图模型。 贝叶斯网络的有向无环图中的节点表示随机变量, 它们可以是可观察到的变量,或隐变量、未知参数等。认为有因果关系(或非条件独立)的变量或命题则用箭头来连接。若两个节点间以一个单箭头连接在一起,表示其中一个节点是“因(parents)”,另一个是“果(children)”,两节点就会产生一个条件...

qq_32172681的博客 6962

Wireshark实战解析IEC 61850 GOOSE报文:智能变电站通信调试指南

网络协议分析是理解现代工业通信系统的基础,其核心原理在于对数据包的捕获、解码与解析。在电力自动化领域,IEC 61850标准定义了智能变电站内设备间高效、可靠的通信框架,其中GOOSE(通用面向对象变电站事件)协议因其基于以太网多播和快速重传机制,成为保护跳闸、联锁等关键信号传输的基石,其技术价值在于实现了微秒级延迟的高可靠性通信。掌握GOOSE报文的分析能力,对于现场调试、故障定位及系统验证至关重要。本文聚焦于使用Wireshark这一网络分析工具,深入解析GOOSE报文结构,涵盖从以太网帧头、协议标识到

weixin_34401479的博客 376

概率图模型在机器学习中的应用:贝叶斯网络与马尔可夫随机场

概率图模型在机器学习中的应用:贝叶斯网络与马尔可夫随机场。概率图模型通过图结构来描述变量之间的概率关系,其中节点代表随机变量,边则代表变量之间的概率依赖关系。这种图形化的表示方式不仅有助于我们直观地理解复杂系统的结构,还为我们提供了强大的推理机制。通过概率图模型,我们可以对系统中的不确定性进行建模和量化,进而进行概率推理和决策。

科技改变人类,技术成就未来 4万+

[附源码]计算机毕业设计-Steam游戏平台系统论文Springboot程序

项目运行环境配置:(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。项目技术:等等组成,B/S模式 + Maven管理等等。环境需要1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可4.

JSP、ssm毕设程序源码 1494

python中frida的安装+frida-server(雷电模拟器)保姆级安装教程

frida的安装,安卓逆向,adb

2301_80224944的博客 4582

贝叶斯网络(概率图模型)

概率图模型分为贝叶斯网络和马尔可夫两大类。其中贝叶斯网络是一个有向无环图结构,而马尔可夫是一个无向图结构。本文只讲解贝叶斯网络,马尔可夫会在后面的博客进行讲解。 在开始之前需要复习下概率论的一些公式: 乘法法则: 链式法则: 放个例子帮助理解链式法则,当n=4时,上面的例子为: 证明,根据乘法法则有: 所以由上面3个式子,可推出: 另外,还有一个有向...

CharlesOyfz的博客 6028

奇安信 2025 年护网蓝队初选笔试题(附答案解析)

熬夜为大家整理了 奇安信 2025 年护网蓝队初选笔试题,(关注我我会持续更新)涵盖 SQL 注入、Web 安全、渗透测试、二进制安全 等核心知识点,并附上详细答案解析,助力大家高效备考!12.下列关于虚表指针描述正确的是(1.5分)✅ B. 虚表指针存储的是虚表的首地址❌ A. 任何类对象都存在虚表指针(仅含虚函数的类有)❌ C. 虚表指针位于对象内存空间的起始处(由编译器决定)❌ D. 虚表指针是否存在不影响对象所占内存空间的大小(存在时会增加指针大小)📌 解析:虚表指针(vptr)用于实现多态,指向

Aishenyanying33的博客 4697

概率图模型基础(2)——贝叶斯网络中的因果关系

贝叶斯网络中各个节点之间影响关系

Mortal's blog 7143

反无人机作战体系全解析:从低慢小探测到分层拦截

随着小型无人机在军事和民用领域的广泛使用,低慢小目标探测与拦截成为低空安全的核心挑战。传统防空体系面对成本低廉、飞行高度低、雷达特征小的无人机集群时,暴露出探测难、识别难、处置成本失衡等问题。为应对威胁,反无人机体系采用分层闭环设计,融合雷达、光电、声学与无线电侦测实现多源感知,通过电子战软杀伤与导弹、高炮、激光等硬杀伤手段协同配合,并借助自动化指控系统缩短“传感器到射手”的响应时延。该体系既可支撑战场要地防护,也能为民用低空安防提供参考。围绕分层反制逻辑,梳理探测、软硬杀伤、指控布防及实战短板,提供理解反

weixin_42533120的博客 333

封神台靶场,为了小芳,冲之——cookie注入

第二个靶场 打开网站 找一下注入点 一般在新闻这种里面点开看看 先判断是否存在注入 有waf 尝试了很多方法绕过都没成功,/and/,aandnd,AnD等一系列都没绕过去,乌鸡鲅鱼 删掉id=169 发现 然后判断cookie注入 在搜索框输入 Javascript:alert(document.cookie=”id=”+escape(‘169’)); 然后弹窗了(其中 “id=” 取决URL中的id= escape中的数值也是URL中id=的值)返回刚刚的页面,把ID删除后一样能正常显示。说明服务器能

Wubuqing的博客 653

贝叶斯网络: 概率图模型的强大工具

1.背景介绍 贝叶斯网络(Bayesian Network),也被称为贝叶斯条件依赖网络(Bayesian Causal Network)或简称为有向无环图(DAG),是一种概率图模型,用于表示和推理随机事件之间的概率关系。贝叶斯网络是基于贝叶斯定理的一种推理方法,它可以用来表示和推理随机事件之间的概率关系。贝叶斯网络的主要优势在于它可以有效地处理不完全观测数据和不确定性,并在许多领域得到广泛应...

AI天才研究院 1983

Arcgis中的模型构建器(ModelBuilder)技术之批量图层转KML

这段时间全省各地都在开展耕地流出图斑整改恢复工作,期间或多或少都需要村委会协助摸排举证,除了举证软件外,奥维、外业精灵等软件想必大家接触得也很多。这就经常需要我们转kmz文件给业主或者摸排人员,那么有没有什么方法在arcgis下快速批量转kmz文件呢,今天就介绍一下如何在模型构建器(ModelBuilder)构建批量图层转KML的模型。

weixin_44671081的博客 1325

概率图模型 python_概率图模型之:贝叶斯网络

1、贝叶斯定理P(A∣B)=P(A)P(B∣A)P(B)P(A|B)是已知B发生后A的条件概率,也由于得自B的取值而被称作A的后验概率。P(B|A)是已知A发生后B的条件概率,也由于得自A的取值而被称作B的后验概率。P(A)是A的先验概率或边缘概率。之所以称为”先验”是因为它不考虑任何B方面的因素。P(B)是B的先验概率或边缘概率。贝叶斯定理可表述为:后验概率 = (相似度 * 先验概率) / 标...

weixin_39802969的博客 749

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

贝叶斯网络:概率图模型的强大工具

1.背景介绍 贝叶斯网络(Bayesian Network),也被称为贝叶斯有向无环图(Bayesian Directed Acyclic Graph,BDAG)或概率依赖网络(Probabilistic Dependence Network),是一种表示随机变量之间关系的图形模型。它是基于贝叶斯定理的一种概率图模型,可以用于描述和推理随机事件之间的条件依赖关系。贝叶斯网络是一种强大的工具,可以...

AI天才研究院 1947

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

上一篇: 深度学习之自编码器和多层神经网络
下一篇: 推荐系统概述1
相国大人
博客等级 码龄10年 1009粉丝 132原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值