贝氏网路

贝氏网路（Bayesian network），又称信念网络（belief network）或是有向无环图模型（directed acyclic graphical model），是一种机率图型模型，借由有向无环图（directed acyclic graphs, or DAGs）中得知一组随机变数formula_1及其"n"组条件机率分配（conditional probability distributions, or CPDs）的性质。举例而言，贝氏网路可用来表示疾病和其相关症状间的机率关系；倘若已知某种症状下，贝氏网路就可用来计算各种可能罹患疾病之发生机率。
一般而言，贝氏网路的有向无环图中的节点表示随机变数，它们可以是可观察到的变量，抑或是潜在变量、未知参数等。连接两个节点的箭头代表此两个随机变数是具有因果关系或是非条件独立的；而两个节点间若没有箭头相互连接一起的情况就称其随机变数彼此间为条件独立。若两个节点间以一个单箭头连接在一起，表示其中一个节点是「因（parents）」，另一个是「果（descendants or children）」，两节点就会产生一个条件机率值。比方说，我们以formula_2表示第i个节点，而formula_2的「因」以formula_4表示，formula_2的「果」以formula_6表示；图一就是一种典型的贝氏网路结构图，依照先前的定义，我们就可以轻易的从图一可以得知：
大部分的情况下，贝氏网路适用在节点的性质是属于离散型的情况下，且依照formula_9此条件机率写出，此条件机率表的每一-{zh:列;zh-hant:列;zh-tw:列;zh-hans:行;zh-cn:行;}-（row）列出所有可能发生的formula_4，每一-{zh:行;zh-hant:行;zh-tw:行;zh-hans:列;zh-cn:列;}-（column）列出所有可能发生的formula_2，且任一-{zh:列;zh-hant:列;zh-tw:列;zh-hans:行;zh-cn:行;}-的机率总和必为1。写出条件机率表后就很容易将事情给条理化，且轻易地得知此贝氏网路结构图中各节点间之因果关系；但是条件机率表也有其缺点：若是节点formula_2是由很多的「因」所造成的「果」，如此条件机率表就会变得在计算上既复杂又使用不便。下图为图一贝氏网路中某部分结构图之条件机率表。
数学定义.
令 "G" = ("I","E") 表示一个有向无环图（DAG），其中 "I" 代表图中所有的节点的集合，而 "E" 代表有向连接线段的集合，且令 "X" = ("X""i")"i"∈"I" 为其有向无环图中的某一节点 "i" 所代表之随机变数，若节点 "X" 的联合机率分配可以表示成：
则称 X 为相对于一有向无环图 G 的贝氏网路，其中formula_14表示节点 i 之「因」。
对任意的随机变数，其联合分配可由各自的局部条件机率分配相乘而得出：
依照上式，我们可以将一贝氏网路的联合机率分配写成：
上面两个表示式之差别在于条件机率的部分，在贝氏网路中，若已知其「因」变数下，某些节点会与其「因」变数条件独立，只有与「因」变数有关的节点才会有条件机率的存在。
如果联合分配的相依数目很稀少时，使用贝氏函数的方法可以节省相当大的记忆体容量。举例而言，若想将10个变数其值皆为0或1储存成一条件机率表型式，一个直观的想法可知我们总共必须要计算formula_17个值；但若这10个变数中无任何变数之相关「因」变数是超过三个以上的话，则贝氏网路的条件机率表最多只需计算formula_18个值即可。另一个贝式网路优点在于：对人类而言，它更能轻易地得知各变数间是否条件独立或相依与其局部分配（local distribution）的型态来求得所有随机变数之联合分配。
马可夫毯（Markov blanket）.
定义一个节点之马可夫毯为此节点的因节点、果节点与果节点的因节点所成之集合。一旦给定其马可夫毯的值后，若网路内之任一节点"X"皆会与其他的节点条件独立的话，就称"X"为相对于一有向无环图"G"的贝氏网路。
举例说明.
假设有两个伺服器formula_19，会传送封包到使用者端（以"U"表示之），但是第二个伺服器的封包传送成功率会与第一个伺服器传送成功与否有关，因此此贝氏网路的结构图可以表示成如图二的型式。就每个封包传送而言，只有两种可能值："T"（成功）或 "F"（失败）。则此贝氏网路之联合机率分配可以表示成：
此模型亦可回答如：「假设已知使用者端成功接受到封包，求第一伺服器成功发送封包的机率?」诸如此类的问题，而此类型问题皆可用条件机率的方法来算出其所求之发生机率：
求解方法.
以上例子是一个很简单的贝氏网路模型，但是如果当模型很复杂时，这时使用列举式的方法来求解机率就会变得非常复杂且难以计算，因此必须使用其他的替代方法。一般来说，贝氏机率有以下几种求法：
随机推论（蒙地卡罗方法）.
在此，以马可夫链蒙地卡罗演算法为例，又马可夫链蒙地卡罗演算法的类型很多，故在这里只说明其中一种吉布斯采样的操作步骤：
首先将已给定数值的变数固定，然后将未给定数值的其他变数随意给定一个初始值，接著进入以下迭代步骤：
当迭代结束后，删除前面若干笔尚未稳定的数值，就可以求出的近似条件机率分配。马可夫链蒙地卡罗演算法的优点是在计算很大的网路时效率很好，但缺点是所抽取出的样本并不具独立性。
当贝氏网路上的结构跟参数皆已知时，我们可以透过以上方法来求得特定情况的机率，不过，如果当网路的结构或参数未知时，我们必须借由所观测到的资料去推估网路的结构或参数，一般而言，推估网路的结构会比推估节点上的参数来的困难。依照对贝氏网路结构的了解和观测值的完整与否，我们可以分成下列四种情形：
以下就结构已知的部分，作进一步的说明。
1.结构已知，观测值完整：.
此时我们可以用最大概似估计法（MLE）来求得参数。其对数概似函数为
其中formula_29代表formula_2的因变数，formula_31代表第formula_32个观测值，"N"代表观测值资料的总数。
以图二当例子，我们可以求出节点"U"的最大概似估计式为
由上式就可以借由观测值来估计出节点"U"的条件分配。如果当模型很复杂时，这时可能就要利用数值分析或其它最佳化技巧来求出参数。
2.结构已知，观测值不完整（有遗漏资料）：.
如果有些节点观测不到的话，可以使用EM演算法（"Expectation-Maximization algorithm"）来决定出参数的区域最佳概似估计式。而EM演算法的主要精神在于如果所有节点的值都已知下，在M阶段就会很简单，如同最大概似估计法。而EM演算法的步骤如下：
其中formula_35代表在目前的估计参数下，事件x的条件机率期望值为
补充例子（列举推理法）.
让我们考虑一个应用在医药上的机率推论例子，在此病人会被诊断出是否有呼吸困难的症状。表一代表一个我们所观测到的资料集合，包含10笔观测值，"S"代表的是吸烟与否（Smoker），"C"代表是否为罹癌者（Cancer），"B"代表是否罹患支气管炎（bronchitis），"D"代表是否有呼吸困难及咳嗽（dyspnea and asthma）的症状。『1』和『0』分别代表『是』和『否』。此医药网路结构显示于图三。
表二代表的是整个网路的经验联合机率分配，是由所收集到的资料所建构而成，利用此表可建构出节点的联合机率分配。见图四。此贝氏公式formula_37可利用节点的边际机率和联合机率去计算节点的条件机率，待会会应用在建立条件机率表格（Conditional probability Table; CPT）上。见图五。贝氏网路的联合机率可由下列式子计算：
其值见表三。
使用整个网路经验联合机率分配所计算出来的值会与使用CPT所计算出来的值不同，其差异可由表二和表三得知。其中差异不只是值的不同，也出现了新事件的机率（原本所没观察到的事件）。
建立在观测资料上的机率推论演算法：
使用表一的观测值和图一的贝氏网路结构，并且已知范例点（instantiated node）为formula_47，也就是病人为非吸烟者和罹癌者：formula_48
问题：
1.病人患有支气管炎的机率formula_49
2.病人会有呼吸困难的机率formula_50
解答：
1. formula_51
2. formula_53
应用.
贝氏网路目前应用在类比计算生物学与生物资讯学、蛋白质结构、基因表达分析、医学、文档分类、资讯检索、决策支援系统、工程学、、图像处理等。