/diffseg

Differentiable Segmentation of Sequences

Primary LanguageJupyter NotebookMIT LicenseMIT

diffseg

An implementation of the relaxed segmented model with TSP-based warping functions. The methodology is described and analysed in detail in the paper:

Erik Scharwächter, Jonathan Lennartz and Emmanuel Müller: Differentiable Segmentation of Sequences. In: Proceedings of the International Conference on Learning Representations (ICLR), 2021. [OpenReview] [arXiv]

We provide a simple Python module nwarp.py that contains PyTorch modules for all required components. The Jupyter notebooks demonstrate how to use the components for a large variety of tasks: Poisson regression on COVID-19 data (eval-covid19.ipynb), change point detection (eval-gaussiancp.ipynb), classification under concept drift (eval-conceptdrift.ipynb), and phoneme segmentation (eval-timit.ipynb).

Contact and Citation

  • Corresponding author: Erik Scharwächter
  • Please cite our paper if you use or modify our code for your own work. Here's a bibtex snippet:
@inproceedings{Scharwachter2021,
    author = {Scharw{\"{a}}chter, Erik and Lennartz, Jonathan and M{\"{u}}ller, Emmanuel},
    booktitle = {Proceedings of the International Conference on Learning Representations (ICLR)},
    title = {{Differentiable Segmentation of Sequences}},
    year = {2021}
}

Requirements

The nwarp module itself requires torch and libcpab (for the CPA-based warping functions). The Jupyter notebooks have additional dependencies that can be checked in the respective files.

License

The source codes are released under the MIT license. The data in RKI_COVID19.csv are published with the title "Fallzahlen in Deutschland" by Robert Koch Institute (RKI) under the Data licence Germany – attribution – Version 2.0 (dl-de/by-2-0)