Laurens van der Maaten bio photo

Laurens van der Maaten

Research scientist in artificial intelligence.

Email Twitter Google Scholar LinkedIn Github

Software

Overview

This page gives an overview of all the software I have released as open-source or have substantially contributed to over the years. Unless stated otherwise, the software on this webpage is free and open source software, distributed under the FreeBSD License.


t-SNE

My t-SNE software is available in a wide variety of programming languages here. The code corresponds to the following papers:

  • L.J.P. van der Maaten. Accelerating t-SNE using Tree-Based Algorithms. Journal of Machine Learning Research 15(Oct):3221-3245, 2014. PDF [Supplemental material]
  • L.J.P. van der Maaten and G.E. Hinton. Visualizing Non-Metric Similarities in Multiple Maps. Machine Learning 87(1):33-55, 2012. PDF
  • L.J.P. van der Maaten. Learning a Parametric Embedding by Preserving Local Structure. In Proceedings of the Twelfth International Conference on Artificial Intelligence & Statistics (AI-STATS), JMLR W&CP 5:384-391, 2009. PDF
  • L.J.P. van der Maaten and G.E. Hinton. Visualizing High-Dimensional Data Using t-SNE. Journal of Machine Learning Research 9(Nov):2579-2605, 2008. PDF [Supplemental material] [Talk]

CrypTen

CrypTen is a research tool for secure machine learning in PyTorch. CrypTen is developed by Brian Knott, Awni Hannun, Shobha Venkataraman, Mark Ibrahim, Xing Zhou, Shubho Sengupta, and me. CrypTen has its own website.


PHYRE

PHYRE is a benchmark for physical reasoning that contains a set of simple classical mechanics puzzles in a 2D environment. The benchmark is designed to encourage development of sample-efficient learning algorithms that generalize well across puzzles. PHYRE was developed by Anton Bakhtin, Justin Johnson, Laura Gustafson, Ross Girshick, and me. PHYRE has its own website.


Classy Vision

Classy Vision is a framework for image and video classification in PyTorch with a modular API that makes computer-vision research easy, and with excellent support for large distributed training jobs. Classy Vision is developed by Aaron Adcock, Vinicius Reis, Mannat Singh, Zhicheng Yan, Kai Zhang, Simran Motwani, Jon Guerin, Naman Goyal, Ishan Misra, Laura Gustafson, Changhan Wang, Priya Goyal, and me. Classy Vision has its own website.


Visdom

Visdom is a visualization tool for (Py)Torch and Numpy that allows the user to generate visualization from processes that run remotely on your workstation. It was developed by Allan Jabri, Jack Urbanek, and me. The project is available on Github.


Torchnet

Torchnet is a framework for Torch 7 which provides a set of abstractions aiming at encouraging code re-use as well as encouraging modular programming. Torchnet was developed by Ronan Collobert, Laurens van der Maaten, and Armand Joulin. See this paper for more information.


Dimensionality reduction

The Matlab Toolbox for Dimensionality Reduction is available here. It contains Matlab implementations of a lot of techniques for dimensionality reduction, intrinsic dimensionality estimators, and additional techniques for data generation, out-of-sample extension, and prewhitening. The download is available here. The code corresponds to the following paper:

  • L.J.P. van der Maaten, E.O. Postma, and H.J. van den Herik. Dimensionality Reduction: A Comparative Review. Tilburg University Technical Report, TiCC-TR 2009-005, 2009. PDF

Please note I am no longer maintaining this toolbox.


Divvy

Divvy is a a tool for exploratory data analysis with unsupervised machine learning. Divvy was developed by Joshua Lewis, me, and Virginia de Sa, and is available here. The code corresponds to the following paper:

  • J.M. Lewis, V.R. de Sa, and L.J.P. van der Maaten. Divvy: Fast and Intuitive Exploratory Data Analysis. Journal of Machine Learning Research 14(Oct):3159-5163, 2013. PDF

Metric learning

My Torch package for metric learning is available on Github.


Model-free tracking

Code for our structure-preserving object tracker is available here. This code corresponds to the papers:

  • L. Zhang and L.J.P. van der Maaten. Preserving Structure in Model-Free Tracking. IEEE Transactions on Pattern Analysis and Machine Intelligence 36(4):756-769, 2014. PDF
  • L. Zhang, H. Dibeklioglu, and L.J.P. van der Maaten. Speeding Up Tracking by Ignoring Features. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pages 1266-1273, 2014. PDF

Marginalized corrupted features

Code for training classifiers with marginalized corrupted features is available from a separate page. This code corresponds to the following paper:

  • L.J.P. van der Maaten, M. Chen, S. Tyree, and K.Q. Weinberger. Learning with Marginalized Corrupted Features. In Proceedings of the International Conference on Machine Learning (ICML), JMLR W&CP 28:410-418, 2013. PDF [Talk]

Multiple maps t-SNE

If you want to visualize non-metric similarities such as semantic similarities, you can use multiple maps t-SNE. Matlab code for multiple maps t-SNE is available here. This code corresponds to the paper:

  • L.J.P. van der Maaten and G.E. Hinton. Visualizing Non-Metric Similarities in Multiple Maps. Machine Learning 87(1):33-55, 2012. PDF

An R port of this code (by Benjamin Radford) is available here.


Structured prediction

My Matlab code for structured prediction using linear CRFs and hidden-unit CRFs is available here. This code corresponds to the paper:

  • L.J.P. van der Maaten, M. Welling, and L.K. Saul. Hidden-Unit Conditional Random Fields. In Proceedings of the International Conference on Artificial Intelligence & Statistics (AI-STATS), JMLR W&CP 15:479-488, 2011. PDF

Fisher kernel learning

My implementation of Fisher kernels and Fisher kernel learning are available here. Fisher kernel learning is described in detail in the following paper:

  • L.J.P. van der Maaten. Learning Discriminative Fisher Kernels. In Proceedings of the International Conference on Machine Learning (ICML), pages 217-224, 2011. PDF

Matrix relational embedding

I wrote a simple Matlab implementation of Matrix Relational Embedding, that can be obtained from here. MRE is described in this paper by Ilya Sutskever and Geoffrey Hinton.


Fields of experts

I wrote a Matlab implementation to train Fields of Experts models, and to use them for image inpainting and denoising. The implementation uses a product of Student-t distribution as clique potentials, and performs the trainin using persistent contrastive divergence. The implementation can be obtained from here (have a look at the experiment.m function). The model is described in this paper by Stefan Roth and Michael Black.


Writer identification

WRIDE is a simple Matlab implementation of a system for automatic WRIter IDEntification. It employs multi-scale edge-hinge features and multi-scale grapheme features. For more information on the system, we refer to this publication:

  • L.J.P. van der Maaten and E.O. Postma. Improving Automatic Writer Identification. In Proceedings of the BNAIC, pages 260-266. Brussels, Belgium, 2005. PDF

The system is available for download here. Make sure to read the Readme.txt before using the system.


I also created a handwritten characters dataset with over 40,000 labeled character images, which is available here (42 MB).


Questions?

Found a bug or aren’t quite sure how something works? Send me an email!


License

Unless specified otherwise, all software on this webpage is free and open source software, distributed under the FreeBSD License.