从贝叶斯定理到模糊贝叶斯动态网络

贝叶斯定理公式:

Python 动态贝叶斯网络 动态贝叶斯网络推理_条件概率


p(c)为类先验概率

p(x|c)为样本x相对于类别c的条件概率

p(x)用于归一化的证据因子,对给定样本x,与类别无关

p(c|x)即后验概率,我们想要求得的概率从贝叶斯定理到朴素贝叶斯分类器:

由上面贝叶斯定理公式来估计后验概率的主要困难在于:类条件概率 是所有属性上的联合概率,难以从有限的训练样本中直接估计而得,为避开这个障碍,假设属性之间独立,即为朴素贝叶斯。

基于属性条件独立性假设,由贝叶斯定理可得下式:

Python 动态贝叶斯网络 动态贝叶斯网络推理_先验概率_02


其中 d为属性数目, xi 为第i个属性的取值,对于所有类别来说 相同,因此上式可改写为下式,即为朴素贝叶斯分类器表达式:

Python 动态贝叶斯网络 动态贝叶斯网络推理_先验概率_03


朴素贝叶斯分类器的例子就不举了,推荐看周志华老师的西瓜书贝叶斯的例子,很通俗易懂从朴素贝叶斯分类器到静态贝叶斯网

贝叶斯网是一种有向无环图,来刻画属性之间的依赖关系,并使用条件概率表来描述属性的联合概率分布,给定父结点集,贝叶斯网假设每个属性与他的非后裔属性独立,如下图所示。

Python 动态贝叶斯网络 动态贝叶斯网络推理_条件概率_04


贝叶斯网中包含隐含节点(好瓜、甜度),观测节点(敲声、色泽、根蒂),确定好贝叶斯网结构后,需要确定先验概率,条件概率表,代入公式计算所有节点的联合概率。公式与朴素贝叶斯分类器公式相像。贝叶斯网中父结点可以是多个的。贝叶斯网计算公式:

Python 动态贝叶斯网络 动态贝叶斯网络推理_机器学习_05


π代表x的父结点集合西瓜网络的计算公式为:

Python 动态贝叶斯网络 动态贝叶斯网络推理_条件概率_06


从静态贝叶斯网到动态贝叶斯网:

动态贝叶斯实质上是在静态网络中加入了时间因素,动态指的是时间的变化,而不是网络结构的动态,这里举一个空战中威胁评估的例子。在防空威胁评估中,一个检测目标的威胁等级往往取决于该目标的速度、高度、距离、类型、航路捷径等因素。建立静态贝叶斯网如下图。

Python 动态贝叶斯网络 动态贝叶斯网络推理_机器学习_07


动态网络,两个时间片:

Python 动态贝叶斯网络 动态贝叶斯网络推理_条件概率_08


动态贝叶斯网络求解所需要的条件:

先验网络:即静态贝叶斯网络,确定网络拓扑结构;

先验概率:相当于求好瓜里面的 p©值,一般由专家知识给出,取值一般较折衷;

条件概率表:表内存储例如在威胁等级为高的情况下目标速度为高的概率,一般由专家知识给出。

状态转移概率表:计算出t时刻的威胁等级后,乘状态转移概率表所得作为下一时刻的先验概率。

监测目标的状态值:一般为离散的,可通过观测,仪器检测得到。

在进行防空威胁评估时,往往无法确定某检测目标属于高、中、低的准确值,于是引入模糊数学的概念,在西瓜例子中先验概率 p©为一个具体值,引入模糊概念后,先验概率变为了一个模糊集合,如监测目标威胁度对高中低的隶属度分别为(0.3,0.3,0.4),在计算过程中也有所不同,多了一个累加的过程。

*模糊动态贝叶斯网计算步骤:

具备先验概率、条件概率表、状态转移概率表、监测目标观测值四个前提后,按照下式计算:

Python 动态贝叶斯网络 动态贝叶斯网络推理_贝叶斯分类器_09


Python 动态贝叶斯网络 动态贝叶斯网络推理_机器学习_10


Python 动态贝叶斯网络 动态贝叶斯网络推理_贝叶斯分类器_11


上式还需要乘对应等级的先验概率,最后对,高、中、低三种概率值做归一化处理。得到是当前时刻的威胁模糊集合,乘状态转移矩阵,即可作为下一时刻的先验概率,以此类推