博客
关于我
图模型初识
阅读量:417 次
发布时间:2019-03-06

本文共 1438 字,大约阅读时间需要 4 分钟。

图模型初识

有向图模型

有向图模型是一种常见的图模型,其核心在于通过定义变量间的关系(如因果关系)来表达业务场景。这种模型通常基于已知的变量关系进行建模,例如:

  • a → c
  • b → c
  • c → d
  • d → e

这种结构不仅表达了变量间的因果关系,还体现了一种先后顺序。基于有向图模型,计算联合概率较为直接。假设我们有以下关系:

  • a → c
  • b → c
  • c → e
  • d → e

则其联合概率可以表示为:

[ p(a, b, c, d, e) = p(a) \cdot p(b) \cdot p(c|a, b) \cdot p(d|c) \cdot p(e|d) ]

这里的条件概率形式符合常识,即左侧为结论,右侧为条件。这一表达方式简洁明了,易于理解和应用。

无向图模型

无向图模型的核心在于变量间的关系并无明确方向性。常见的无向图模型可以通过能量函数或其他 scoring 函数来建模变量间的关联性。例如,图像分割任务可以通过无向图来进行聚类,形成若干簇(模块)。

假设我们有以下无向图结构:

  • a --- c
  • a ---- b ---- d ---- e
  • f --- d
  • f --- e

为了计算联合概率,我们需要定义一个能量函数或 scoring 函数,来衡量变量间的紧密度。例如,可以将图分为以下三个簇:

-簇1:a, b, c

-簇2:b, d
-簇3:d, e, f

则联合概率可以表示为:

[ p(a, b, c, d, e, f) = \frac{1}{z} \cdot \phi_1(a, b, c) \cdot \phi_2(b, d) \cdot \phi_3(d, e, f) ]

其中,( z ) 是归一化常数,计算方法根据变量类型而异(如离散型可用动态规划,连续型可用近似方法)。归一化过程至关重要,因为它将 scoring 函数转换为概率。

无向图模型的核心在于如何定义 scoring 函数。例如:

  • Naive Bayes 是一种有向图模型,当转为无向图时,变为 Logistic Regression。
  • 隐马尔可夫模型(HMM)是有向图模型,当转为无向图时,变为线性链的 CRF。

无向图模型的分割块并非固有,而是基于对变量关系的假设。例如,可以将以下结构分解为:

  • [ p(a, b, c, d, e) = \frac{1}{z} \cdot \phi_1(a, c) \cdot \phi_2(b, c) \cdot \phi_3(a, b) \cdot \phi_4(b, d) \cdot \phi_5(a, c) \cdot \phi_6(f, d) \cdot \phi_7(f, e) ]

无向图模型的应用依赖于对变量关系的深刻理解,通过定义合适的 scoring 函数,可以将复杂的变量关系建模到模型中。

有向图 vs 无向图

有向图模型采用局部归一化(Local Normalization),因为其概率计算依赖于局部的条件概率。而无向图模型则采用全局归一化(Global Normalization),因为其概率计算涉及所有变量的联合分布。

从模型应用的角度来看,有向图模型更类似于贪心算法,每次只寻求局部最优解。而无向图模型则更全面,考虑了全局关系。

通过初步认识这些图模型,我们可以为后续学习 HMM 和 CRF 模型打下基础。无向图模型的理解尤为重要,因为它与 Logistic Regression 等常见模型密切相关。

转载地址:http://utokz.baihongyu.com/

你可能感兴趣的文章
Python 中只有一个 True 和一个 False 对象吗?
查看>>
python读取mtcars数据集并实现以下操作_关于数据处理。。,Python交流,技术交流区,鱼C论坛 - Powered by Discuz!...
查看>>
Python 中多线程与多处理之间的区别
查看>>
Python 中如何使用 lambda 函数
查看>>
Python 中如何创建多行字符串?
查看>>
Python 中如何处理异常?
查看>>
Python 中如何实现列表的切片?
查看>>
Python 中如何实现字典的排序?
查看>>
Python 中常用的数据类型及相关操作详解
查看>>
Python 中的离线语音转文本
查看>>
Python 中的线程
查看>>
Python 中的继承机制是什么样的?
查看>>
Python 中的装饰器是什么?
查看>>
Python 中的装饰器是如何工作的,有哪些实际应用场景?
查看>>
python读excel
查看>>
Python 中读取 CSV 文件-ChatGPT4o作答
查看>>
python请求html_使用Python请求获取HTML?
查看>>
Python 之匿名函数和偏函数
查看>>
python 之栈的实现
查看>>
python语音播放
查看>>