栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

条件随机场的肤浅理解

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

条件随机场的肤浅理解

条件随机场(Conditional Random Field,CRF)是自然语言处理的基础模型,是一个无向图概率模型。经过长期的发展目前已经广泛应用于词性标注、图像分类等众多场景。

一、基本概念

随机场 : 给定一组随机变量: X = { X 1 , X 2 , X 3 . . . , X n } X = {X_1,X_2,X_3...,X_n} X={X1​,X2​,X3​...,Xn​}, 每一个随机变量 X i X_i Xi​ 又可以在另一个集合 Y = { Y 1 , Y 2 , Y 3 . . . , Y m } Y = {Y_1,Y_2,Y_3...,Y_m} Y={Y1​,Y2​,Y3​...,Ym​}中随机取值。举个图像分类的例子:可以将图像的所有像素作为随机变量: I = { I 1 , I 2 , I 3 . . . , I n } I = {I_1,I_2,I_3...,I_n} I={I1​,I2​,I3​...,In​} ,所有的类别为: C = { C 1 , C 2 , C 3 . . . , C m } C = {C_1,C_2,C_3...,C_m} C={C1​,C2​,C3​...,Cm​},那么图像分类实际就是给每个像素一个类别,因此可看做一个随机场。

马尔科夫随机场:随机场的特例,它假设随机场中某一个位置的取值只跟它相邻的位置的取值有关,与其他位置无关。比如上述图像分类的例子,某一个像素的分类,只跟周围的8邻域像素的分类有关而与其他像素无关。

条件随机场: 给定随机变量 X X X 的取值,若随机变量 Y Y Y 构成的是一个马尔科夫随机场,则称条件概率分布 P ( Y ∣ X ) P(Y|X) P(Y∣X) 是条件随机场。即条件随机场是给定一组输入序列条件下另一组输出序列的条件概率分布模型。如上述图像分类的例子中,一般给定图像的像素颜色信息 I I I , 预测每个像素 I i I_i Ii​ 的类别就可看做一个条随机场。

二、势函数

给定如下的随机场:

图 1 . 概率无向图

图中的边表示节点之间具有相互关系,这种关系是双向的、对称的。如: x 3 x_3 x3​和 x 5 x_5 x5​之间有边相连,则 x 3 x_3 x3​和 x 5 x_5 x5​具有相关关系,这种相关关系采用势函数进行度量。例如,可以定义如下势函数:
ψ ( x 3 , x 5 ) = { 2 x 3 = x 5 0.1 o t h e r w i s e psi(x_3,x_5) = begin{cases} 2 & x_3 = x_5 \ 0.1 & otherwise end{cases} ψ(x3​,x5​)={20.1​x3​=x5​otherwise​

则说明该模型偏好变量 x 3 x_3 x3​和 x 5 x_5 x5​拥有相同的取值,势函数刻画了局部变量之间的相关关系,也可以理解为模型的局部软约束条件。为了满足非负性,指数函数常被用于定义势函数:
ψ ( x ) = e − H ( x ) psi(x) =e^{-H(x)} ψ(x)=e−H(x)

三、主要目标

我们的目标是计算最大后验概率 P ( Y ∣ X ) P(Y|X) P(Y∣X),即给定 X X X 后,最正确的分类结果 Y Y Y, 使得 P ( Y ∣ X ) P(Y|X) P(Y∣X) 取得最大值。

那么如何求解这样一个概率问题呢?

为了求解给定的概率无向图模型,我们希望将整体的联合概率写成若干个子联合概率的乘积形式,也就是将概率图进行因子分解,这样便于模型的学习与计算。而事实上,概率无向图模型的最大特点就是便于因子分解。实际计算过程中,一般将无向图分成一个一个的团(团(clique)就是一个无向图的完全子图,既然是完全图,当然每对顶点之间都必须要有边相连。如图1中的 { x 2 , x 3 , x 5 } {x_2,x_3,x_5} {x2​,x3​,x5​}, { x 3 , x 4 , x 5 } {x_3,x_4,x_5} {x3​,x4​,x5​},以及所有的相邻两个顶点构成的子图),并在每一个团上定义势函数来计算这个最大概率。

这里引入论文中的文字:

图 2 . 条件随机场的最大后验概率形式化

具体如何计算就不展开,可以参看论文:Efficient inference in fully connected crfs with gaussian edge potentials.

四、DenseCRF

论文:Efficient inference in fully connected crfs with gaussian edge potentials[J]. .
代码:https://github.com/heiwang1997/DenseCRF
DenseCRF就是上节末尾的论文,在图像分类上效果非常好而且很高效。大致分类效果如下图3所示,需要说明的是这里的输入已经包含初始像素的分类,CRF对像素点进行了重新精确地分类。可以看到第4列的DenseCRF分类非常精确。

图 3 . DenseCRF分类效果

基本的CRF模型是由一阶势函数(单个变量的分类趋势)和相邻元素构成的势函数所组成的图模型,很显然,在图像任务上,该模型一个劣势就是它只考虑了相邻的邻域元素,没有对整体进行考虑。
DenseCRF提出将每一个像素点和其他所有像素点连接,达到稠密的全连接模型,以实现更精确的分类。但与此同时,将会导致边数过多,因此本文也提供了高效的求解算法,但本文不做进一步介绍,只是单纯介绍DenseCRF的设计。

注意看图2的英文原文部分,实际上要求的最大的后验概率 P ( Y ∣ X ) P(Y|X) P(Y∣X) 等价于求 E ( X ) E(X) E(X)的最小值,因此实际还是转换为一个能量最小化的问题。而DenseCRF的能量函数表示为:
E ( x ) = ∑ i ψ u ( x i ) + ∑ i < j ψ p ( x i , x j ) E(x) = sum_{i}psi_u(x_i) + sum_{i 该能量函数包括两项:前者称为一元势函数(unary potential function), 后者称为二元势函数(pairwise potential function).

Unary potential function: 每个像素都关联一个nary potential, 表示每个像素本身的分类损失。若某个像素 I i I_i Ii​ 取得正确的分类,那么该像素的unary损失 ψ u ( x i ) psi_u(x_i) ψu​(xi​) 较小。这一项主要惩罚错误的像素分类。

Pairwise potential function: 任意两个像素均会关联一个pairwise potential,用于惩罚具有不同标签的两个像素。1)如果两个标签不同的像素,他们的纹理、形状、颜色、位置等都差异较大,那么惩罚较小,希望这种分类得以保持;2)反之,如果这些属性都很接近,那么惩罚较大,实际上希望他们能够重新分类到同一类。

Pairwise potential function的定义和解释直接贴原文:

图 4 . DenseCRF对pairwise potential的解释

参考资料

[1] 知乎:CRF条件随机场的原理、例子、公式推导和应用
[2] 知乎:如何轻松愉快地理解条件随机场(CRF)?
[3] 知乎:全方位理解条件随机场(CRF):原理、应用举例、CRF++实现
[4] CSDN:概率图之马尔可夫随机场(Markov Random Field,MRF)
[5] CSDN:马尔可夫随机场 MRF
[6] 知乎:FCN(3)—DenseCRF
[7] 知乎:FCN(5)—DenseCRF推导

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/744610.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号