Skip to content

Latest commit

 

History

History
36 lines (29 loc) · 1.62 KB

File metadata and controls

36 lines (29 loc) · 1.62 KB

Latent Optimal Transport

This is the implementation of the low-rank alignment method LOT - https://arxiv.org/abs/2012.11589

Overview

Latent optimal transport is a low-rank distributional alignment technique that is suitable for data exhibiting clustered structure. LOT leverages clustering to make transport more robust to noise and outliers.

Users can customize their cost matrix to fit their clustering strategies. The algorithm requires two numbers of anchors to be specified. The numbers naturally correspond to the numbers of clusters for the source and target.

Citation

If you find the code useful for your research, please consider citing our work:

@InProceedings{lin2021,
  title = 	 {Making transport more robust and interpretable by moving data through a small number of anchor points},
  author =       {Lin, Chi-Heng and Azabou, Mehdi and Dyer, Eva},
  booktitle = 	 {Proceedings of the 38th International Conference on Machine Learning},
  pages = 	 {6631--6641},
  year = 	 {2021},
  editor = 	 {Meila, Marina and Zhang, Tong},
  volume = 	 {139},
  series = 	 {Proceedings of Machine Learning Research},
  month = 	 {18--24 Jul},
  publisher =    {PMLR},
}

Code

The code contains a Python implementation of LOT. lot.py contains the code for aligning and estimating the transport plan for given source and target sets.

lot_mnist_demo.ipynb showcases how LOT can be used in a domain adaptation application where the goal is to align the features of MNIST train samples with those of test samples that are both perturbed (by applying Dropout/Random masking) and that only contain a subsets of digits classes.