Structured SVM with probably submodular constraints.
For use, please cite:
Berman, Maxim, & Blaschko, Matthew B. (2016, December). Efficient optimization for probably submodular constraints in CRFs. In Proceedings of the NIPS workshop on constructive machine learning.
See also prior reference on the probably submodular framework
Zaremba, Wojciech, & Blaschko, Matthew B. (2016, March). Discriminative training of CRF models with probably submodular constraints. In 2016 IEEE Winter Conference on Applications of Computer Vision (WACV). IEEE.
The package relies on PyStruct
Müller, Andreas C., and Sven Behnke. "PyStruct: learning structured prediction in python." Journal of Machine Learning Research 15.1 (2014): 2055-2060.
Create environment and install requirements
conda create --name probsubenv python=2.7 numpy cvxopt scikit-image conda install -c https://conda.binstar.org/menpo opencv source activate probsubenv pip install git+https://github.com/bermanmaxim/pystruct.git@hardconstraints
Note As indicated pystruct has to be fetched from the
weightedlossbranch of my fork of pystruct.
install opengm with
graph-cutsextensions and and make the python module available in the environment (for graph-cut inference)
one_slack_ssvm_hard.pyconstains one-slack SSVM learner class for
pystructwith additional hard constraints <w, a> >= b, either specified or generated with
probsub.pyprovides an interface to learners with probably submodular constraints, provided by
Additional information can be found on the project webpage http://homes.esat.kuleuven.be/~mblaschk/projects/learnConstraints/