博客
关于我
图模型初识
阅读量: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卸载所有包
查看>>
python单线程下实现多个socket并发
查看>>
Python单元测试框架介绍(超详细~)
查看>>
Python单元测试框架
查看>>
python单元测试之unittest
查看>>
Python单元测试unittest实战
查看>>
Python单元测试-模拟VS补丁
查看>>
python协程实时输出_Python 协程以及事件循环的问题,怎么知道 IO 读取结束了呢?...
查看>>
Python十进制&;包提供错误的结果
查看>>
Python化身“安全老中医”:一键搞定工控系统漏洞,从零基础到精通,收藏这篇就够了!
查看>>
Python加速运行技巧
查看>>
python办公自动化基础遍历文件夹
查看>>
python办公自动化基础输出文件和文件夹
查看>>
python办公自动化基础搜索文件
查看>>
python知识:@classmethod和@staticmethod的异同
查看>>
python前端之css
查看>>
Python制作进度条,原来有这么多方法
查看>>
Python制作简单的学生成绩管理系统
查看>>
python制作甘特图的基本知识(附Demo)
查看>>
python制作一个简单的服务器,【Python】 做一个简单的 http 服务器
查看>>