I have a custom potential function for a Conditional Random Field (CRF) very similar to Fei Fei Li's work. In this work, the parameter learning is done by Maximum Likelihood Estimation. I would like to ask if there are any MLE solvers for general CRFs ?
Similar to this work, my three nodes stands for human pose, action and object. And unfortunately, I could not find any CRF implementation which could account for non-homogeneity in the feature space.
I had a brief conversation with Andreas from PyStruct (link skipped due to lack of reputation) and currently it does not support non-homogeneous nodes. For my code to work, it has to be all action, all hands or all object features.
Also, I went through the documentation provided in UGM and went through the TrainMRF and TrainCRF implementation in details. The same issue persists there as I found that all the nodes were homogeneous and hence all features are from the same feature space.
I tried an odd example where I concatenated all my features and used the GraphCRF in PyStruct. As expected, it works, but at the expense of the lost CRF structure.
So, (1) Can you please suggest MLE solvers which allow for custom potential functions similar to those used in Fei Fei Li's work ?
(2) Are there any C++, Python or Matlab implementation that allow for general CRF (not chain CRF - its a special case) ?