Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Pystruct - Structured Prediction in Python

Pystruct - Structured Prediction in Python

Andreas Mueller

August 16, 2015
Tweet

More Decks by Andreas Mueller

Other Decks in Technology

Transcript

  1. PyStruct Architecture Estimator = Learner + Model + Inference model

    = ChainCRF(inference="max_product") ssvm = OneSlackSSVM(model=model, C=.1, inference_cache=50,, tol=0.1, verbose=3) ssvm.fit(X_train, y_train)
  2. Sequence Tagging example model = ChainCRF(inference="max_product") ssvm = OneSlackSSVM(model=model, C=.1,

    inference_cache=50,, tol=0.1, verbose=3) ssvm.fit(X_train, y_train)
  3. Sequence Tagging example model = ChainCRF(inference="max_product") ssvm = OneSlackSSVM(model=model, C=.1,

    inference_cache=50,, tol=0.1, verbose=3) ssvm.fit(X_train, y_train)
  4. The Devil is in the Inference y 1 y 2

    y 3 y 4 Easy: Dynamic Programming
  5. Grid Graphs: Snakes crf = EdgeFeatureGraphCRF(inference_method='qpbo') ssvm = OneSlackSSVM(crf, inference_cache=50,

    C=.1, tol=.1, switch_to='ad3', n_jobs=1) ssvm.fit(X_train_edge_features, Y_train_flat)
  6. Implemented Methods Estimator = Learner + Model + Inference •

    Learner: SubgradientSSVM, StructuredPerceptron, OneSlackSSVM, LatentSSVM • Model: BinaryClf, MultiLabelClf, ChainCRF, GraphCRF, EdgeFeatureGraphCRF • Inference: Linear Programming, QPBO (PyQPBO), Dual Decomposition (AD3), Message Passing, everything (OpenGM)
  7. Classes of Inference Algorithms Exact Algorithms Max-Product (Chains, Trees) 'max-product'

    Exhaustive (usually too expensive) Relaxed algorithms + branch & bound ('ad3', {'branch_and_bound': True}) Relaxed Linear Programming (slooow) 'lp' Dual Decomposition 'ad3' Approximate / heuristics Loopy message passing 'max-product' QPBO 'qpbo'
  8. Classes of Inference Algorithms Exact Algorithms Max-Product (Chains, Trees) 'max-product'

    Exhaustive (usually too expensive) Relaxed algorithms + branch & bound ('ad3', {'branch_and_bound': True}) Relaxed Linear Programming (slooow) 'lp' Dual Decomposition 'ad3' Approximate / heuristics Loopy message passing 'max-product' QPBO 'qpbo' Install OpenGM for many more!