Conditional random field Learning

- 15.36

photo src: blog.videovibe.co

Conditional random fields (CRFs) are a class of statistical modelling method often applied in pattern recognition and machine learning, where they are used for structured prediction. Whereas an ordinary classifier predicts a label for a single sample without regard to "neighboring" samples, a CRF can take context into account; e.g., the linear chain CRF (which is popular in natural language processing) predicts sequences of labels for sequences of input samples.

CRFs are a type of discriminative undirected probabilistic graphical model. It is used to encode known relationships between observations and construct consistent interpretations. It is often used for labeling or parsing of sequential data, such as natural language text or biological sequences and in computer vision. Specifically, CRFs find applications in shallow parsing, named entity recognition, gene finding and peptide critical functional region finding, among other tasks, being an alternative to the related hidden Markov models (HMMs). In computer vision, CRFs are often used for object recognition and image segmentation.


Improving Automated Citations with Machine Learning - RefME | Free ...
photo src: www.refme.com


Maps, Directions, and Place Reviews



Description

Lafferty, McCallum and Pereira define a CRF on observations X {\displaystyle {\boldsymbol {X}}} and random variables Y {\displaystyle {\boldsymbol {Y}}} as follows:

Let G = ( V , E ) {\displaystyle G=(V,E)} be a graph such that

Y = ( Y v ) v ? V {\displaystyle {\boldsymbol {Y}}=({\boldsymbol {Y}}_{v})_{v\in V}} , so that Y {\displaystyle {\boldsymbol {Y}}} is indexed by the vertices of G {\displaystyle G} . Then ( X , Y ) {\displaystyle ({\boldsymbol {X}},{\boldsymbol {Y}})} is a conditional random field when the random variables Y v {\displaystyle {\boldsymbol {Y}}_{v}} , conditioned on X {\displaystyle {\boldsymbol {X}}} , obey the Markov property with respect to the graph: p ( Y v | X , Y w , w ? v ) = p ( Y v | X , Y w , w ~ v ) {\displaystyle p({\boldsymbol {Y}}_{v}|{\boldsymbol {X}},{\boldsymbol {Y}}_{w},w\neq v)=p({\boldsymbol {Y}}_{v}|{\boldsymbol {X}},{\boldsymbol {Y}}_{w},w\sim v)} , where w ~ v {\displaystyle {\mathit {w}}\sim v} means that w {\displaystyle w} and v {\displaystyle v} are neighbors in G {\displaystyle G} .

What this means is that a CRF is an undirected graphical model whose nodes can be divided into exactly two disjoint sets X {\displaystyle {\boldsymbol {X}}} and Y {\displaystyle {\boldsymbol {Y}}} , the observed and output variables, respectively; the conditional distribution p ( Y | X ) {\displaystyle p({\boldsymbol {Y}}|{\boldsymbol {X}})} is then modeled.

Inference

For general graphs, the problem of exact inference in CRFs is intractable. The inference problem for a CRF is basically the same as for an MRF and the same arguments hold. However, there exist special cases for which exact inference is feasible:

  • If the graph is a chain or a tree, message passing algorithms yield exact solutions. The algorithms used in these cases are analogous to the forward-backward and Viterbi algorithm for the case of HMMs.
  • If the CRF only contains pair-wise potentials and the energy is submodular, combinatorial min cut/max flow algorithms yield exact solutions.

If exact inference is impossible, several algorithms can be used to obtain approximate solutions. These include:

  • Loopy belief propagation
  • Alpha expansion
  • Mean field inference
  • Linear programming relaxations

Parameter Learning

Learning the parameters ? {\displaystyle \theta } is usually done by maximum likelihood learning for p ( Y i | X i ; ? ) {\displaystyle p(Y_{i}|X_{i};\theta )} . If all nodes have exponential family distributions and all nodes are observed during training, this optimization is convex. It can be solved for example using gradient descent algorithms, or Quasi-Newton methods such as the L-BFGS algorithm. On the other hand, if some variables are unobserved, the inference problem has to be solved for these variables. Exact inference is intractable in general graphs, so approximations have to be used.

Examples

In sequence modeling, the graph of interest is usually a chain graph. An input sequence of observed variables X {\displaystyle X} represents a sequence of observations and Y {\displaystyle Y} represents a hidden (or unknown) state variable that needs to be inferred given the observations. The Y i {\displaystyle Y_{i}} are structured to form a chain, with an edge between each Y i - 1 {\displaystyle Y_{i-1}} and Y i {\displaystyle Y_{i}} . As well as having a simple interpretation of the Y i {\displaystyle Y_{i}} as "labels" for each element in the input sequence, this layout admits efficient algorithms for:

  • model training, learning the conditional distributions between the Y i {\displaystyle Y_{i}} and feature functions from some corpus of training data.
  • decoding, determining the probability of a given label sequence Y {\displaystyle Y} given X {\displaystyle X} .
  • inference, determining the most likely label sequence Y {\displaystyle Y} given X {\displaystyle X} .

The conditional dependency of each Y i {\displaystyle Y_{i}} on X {\displaystyle X} is defined through a fixed set of feature functions of the form f ( i , Y i - 1 , Y i , X ) {\displaystyle f(i,Y_{i-1},Y_{i},X)} , which can informally be thought of as measurements on the input sequence that partially determine the likelihood of each possible value for Y i {\displaystyle Y_{i}} . The model assigns each feature a numerical weight and combines them to determine the probability of a certain value for Y i {\displaystyle Y_{i}} .

Linear-chain CRFs have many of the same applications as conceptually simpler hidden Markov models (HMMs), but relax certain assumptions about the input and output sequence distributions. An HMM can loosely be understood as a CRF with very specific feature functions that use constant probabilities to model state transitions and emissions. Conversely, a CRF can loosely be understood as a generalization of an HMM that makes the constant transition probabilities into arbitrary functions that vary across the positions in the sequence of hidden states, depending on the input sequence.

Notably in contrast to HMMs, CRFs can contain any number of feature functions, the feature functions can inspect the entire input sequence X {\displaystyle X} at any point during inference, and the range of the feature functions need not have a probabilistic interpretation.


photo src: blog.videovibe.co


Variants

Higher-order CRFs and semi-Markov CRFs

CRFs can be extended into higher order models by making each Y i {\displaystyle Y_{i}} dependent on a fixed number o {\displaystyle o} of previous variables Y i - o , . . . , Y i - 1 {\displaystyle Y_{i-o},...,Y_{i-1}} . Training and inference are only practical for small values of o {\displaystyle o} (such as o <= 5), since their computational cost increases exponentially with o {\displaystyle o} . Large-margin models for structured prediction, such as the structured Support Vector Machine can be seen as an alternative training procedure to CRFs.

There exists another generalization of CRFs, the semi-Markov conditional random field (semi-CRF), which models variable-length segmentations of the label sequence Y {\displaystyle Y} . This provides much of the power of higher-order CRFs to model long-range dependencies of the Y i {\displaystyle Y_{i}} , at a reasonable computational cost.

Latent-dynamic conditional random field

Latent-dynamic conditional random fields (LDCRF) or discriminative probabilistic latent variable models (DPLVM) are a type of CRFs for sequence tagging tasks. They are latent variable models that are trained discriminatively.

In an LDCRF, like in any sequence tagging task, given a sequence of observations x = x 1 , ... , x n {\displaystyle x_{1},\dots ,x_{n}} , the main problem the model must solve is how to assign a sequence of labels y = y 1 , ... , y n {\displaystyle y_{1},\dots ,y_{n}} from one finite set of labels Y. Instead of directly modeling P(y|x) as an ordinary linear-chain CRF would do, a set of latent variables h is "inserted" between x and y using the chain rule of probability:

This allows capturing latent structure between the observations and labels. While LDCRFs can be trained using quasi-Newton methods, a specialized version of the perceptron algorithm called the latent-variable perceptron has been developed for them as well, based on Collins' structured perceptron algorithm. These models find applications in computer vision, specifically gesture recognition from video streams and shallow parsing.


JMI-Clinical Data Miner: An Electronic Case Report Form System ...
photo src: medinform.jmir.org


Software

This is a partial list of software that implement generic CRF tools.

  • RNNSharp CRFs based on recurrent neural networks (C#, .NET)
  • CRF-ADF Linear-chain CRFs with fast online ADF training (C#, .NET)
  • CRFSharp Linear-chain CRFs (C#, .NET)
  • GCO CRFs with submodular energy functions (C++, Matlab)
  • DGM General CRFs (C++)
  • GRMM General CRFs (Java)
  • factorie General CRFs (Scala)
  • CRFall General CRFs (Matlab)
  • Sarawagi's CRF Linear-chain CRFs (Java)
  • HCRF library Hidden-state CRFs (C++, Matlab)
  • Accord.NET Linear-chain CRF, HCRF and HMMs (C#, .NET)
  • Wapiti Fast linear-chain CRFs (C)
  • CRFSuite Fast restricted linear-chain CRFs (C)
  • CRF++ Linear-chain CRFs (C++)
  • FlexCRFs First-order and second-order Markov CRFs (C++)
  • crf-chain1 First-order, linear-chain CRFs (Haskell)
  • imageCRF CRF for segmenting images and image volumes (C++)
  • MALLET Linear-chain for sequence tagging (Java)
  • PyStruct Structured Learning in Python (Python)
  • Figaro Probabilistic programming language capable of defining CRFs and other graphical models (Scala)
  • CRF Modeling and computational tools for CRFs and other undirected graphical models (R)

This is a partial list of software that implement CRF related tools.

  • Conrad CRF based gene predictor (Java)
  • Stanford NER Named Entity Recognizer (Java)
  • BANNER Named Entity Recognizer (Java)

Source of the article : Wikipedia



EmoticonEmoticon

 

Start typing and press Enter to search