本文主要是介绍条件随机场(CRF)笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Filed, Random Field, Conditional Random Field
场(field)是一个关于位置的函数。这个概念来自物理学,一个典例是引力场:一个有质量的物体 A 会对其它有质量的物体产生引力,可用一个函数来描述在各位置受到来自 A 的引力。记 A 质量为 M、位于 x A x_A xA,由引力公式 F = G M m / r 2 F=GMm \big/ r^2 F=GMm/r2 知,另一质量为 m、位于 x 的物体受 A 引力为 G M m / ∥ x − x A ∥ 2 2 GMm \big/ \| x - x_A \|^2_2 GMm/∥x−xA∥22,于是 A 引力场可以表示为 f ( x ; G , M , x A ) = G M ∥ x − x A ∥ 2 2 f(x;G,M,x_A)=\frac{GM}{ \| x - x_A \|^2_2} f(x;G,M,xA)=∥x−xA∥22GM 表示位于 x 时每 kg 质量受到 A 的引力大小。
随机场(random field)是场引入概率论中衍生的概念,就是个概率(密度)函数,自变量「位置」换成随机变量,即随机场是定义在一组随机变量 { X 1 , … , X n } \{X_1,\dots,X_n\} {X1,…,Xn} 上的概率(密度)函数,一个随机变量 X i X_i Xi 就是一个「位置」。
条件随机场(conditional random field,CRF)在 [1] 提出,用于 NLP,[2] 举有词性标记的例。就是把随机场的场函数(概率函数)改成条件概率函数([1] 在定义中加了 Markov 性质的约束)。
CRF in Segmentation
CRF 可以用作语义分割的后处理,refine 分割网络的 prediction,源头是 [3] 的 fully connected CRF / dense CRF,用例可参考 [4] 的代码 eval_segmentation.py,流程是:
- 网络预测 logit(PyTorch 形状 [c, h, w]);
- 将 logit、image 一同输入 dense_crf,输出就是 refine 过的 logit;
- argmax
Dence CRF 无需预训练。
References
- (ICML’01) Conditional Random Fields: Probabilistic Models for Segmenting and Labeling Sequence Data - paper
- Introduction to Conditional Random Fields
- (NIPS’11) Efficient Inference in Fully Connected CRFs with Gaussian Edge Potentials - paper
- (NIPS’23) SmooSeg: Smoothness Prior for Unsupervised Semantic Segmentation - paper, code
这篇关于条件随机场(CRF)笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!