When train my linear chain CRF with annotated observations, I feed it with a number of sequences containing observation values and a "ground-truth" label for each observation. I'm currently using the hCRF Matlab interface. (see 1)

In my case I have 4 continuous observation values (some in the interval [-1,1], some around [140, 200]; none outside [-10, 250] though). The label is an integer between 1 and 17, giving a total of 17 possible labels.


After training, my model consists of 17*17 = 289 edge weights and 17*4 = 68 window weights. Can I understand the edge weights as some sort of probabilities for state transitions (even though they are not actual probabilities in the range [0,1])? And what exactly do the edge weights tell me?


For reference, the CRF produces conditional probabilities of the form

$$p(y|x) = \frac{1}{Z(x)} \exp{ \left\{ \sum_{k=1}^{K} \lambda_k f_k(y, x) \right\}}$$

where to my understanding, the $\lambda_k$ are my edge weights and the $Z(x)$ are the window weights I get.

I read some tutorials about CRFs but I still do not quite understand, how the feature functions $f_k(y, x)$ are looking if I simply put in sequences of 4 tuples (the 4 observation values).

Thanks in advance for any pointers.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.