CBLL HOME
VLG Group
News/Events
Seminars
People
Research
Publications
Talks
Demos
Datasets
Software
Courses
Links
Group Meetings
Join CBLL
Y. LeCun's website
CS at Courant
Courant Institute
NYU
Lush
Lush

Machine Learning and Pattern Recognition: Final Projects


[ Course Homepage | Schedule and Course Material | Mailing List ]

This is the list of final project topics.

Projects can be done individually, in groups of 2, or (with permission) in groups of 3.

You can propose your own project topic, subject to approval by the instructor.

You must send a .tar or .tgz file to the TA with your code and a PDF file describing your project and the results you obtained.

Implement Standard Learning Algorithms with Eblearn

Eblearn is a C++ library that implements classes and functionalities similar to Lush's gblearn2 package for gradient-based and energy-based learning.

This series of projects consists in implementing a number of standard algorithms and applications using eblearn. Suggested algorithms include Adaboost, PCA, K-Means, Mixtures of Gaussians.

Analyzing Trajectory Data from Surgeons

We have a dataset of collected from a surgical telemanipulator (surgical robot) composed of trajectories from highly-skilled surgeons, as well as from rookie surgeons.

The project consists in assessing the "quality" of a trajectory by comparing it with the model trajectory from expert surgeons.

Methods such as elastic matching, metric learning, or hidden markov models can be used

Contact the instructor to obtain the dataset.

Predicting Financial Data

We have a dataset consisting of description vectors of various companies, together with a variable that indicated whether the company defaulted on their loans.

The project consists in predicting whether the company will default using various methods, including neural nets, logistic regression, SVM, and perhaps other methods (each project team should pick a good subset).

The complication resides in the fact that some variables are missing, hence a latent variable inference model should be used.

Contact the instructor to obtain the dataset.

Implementing Convolutional Nets on NVidia GPUs with CUDA

The main module of a convolutional network computes multiple convolutions on image planes (or feature maps) using small convolution kernels.

The project consists in implementing the convolutional module (c-layer class in Lush's gblearn2 or c_layer class in the Eblearn C++ library) using the CUDA language running on NVidia graphical processing units.

People at Microsoft and other institutions have reported speedups of 100 or more over software implementations on Intel CPUs.

You need to have access to a 9xxx class NVidia graphic card for this.

Learning Sparse and Overcomplete Representations for Music and Speech

Learning algorithms to produce sparse and overcomplete representations have been popular for image recognition, image denoising, and other visual tasks. The project consists in applying these methods to musical signal analysis and speech.

The method can be used as a first step in a "blind source separation" system that could separate instrument tracks from a monophonic recording.

This would consist in adapting existing code (in Lush and/or C++) and run it on audio datasets.

Some information on this class of algorithms is available here.

Belief Propagation for Music Composition

The purpose of the project is to build a factor graph model that implements the rules of simple counterpoint.

Given a few notes, the model can be used to "fill in the blanks" by finding melodies that satisfy all the rules.

Each rule can be seen as a factor in a factor graph.

The best note sequence will be obtained with Belief Propagation or some other efficient inference procedure.

Field of Experts

Implement the so-called "Field of Experts model" in Lush (see reference below).

Reference: Stefan Roth and Michael J. Black: Fields of Experts: A Framework for Learning Image Priors. In Proc. of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), vol. 2, pp. 860-867, June 2005. Link to paper.

This model can be used for image restoration, denoising etc.

Text/Image Segmenter for DjVuLibre

Implement a foreground/background segmenter for DjVuLibre. DjVuLibre is the open source version of the DjVu system. It currently lacks a good segmenter that can separate the text and drawings from the backgrounds and continous-tone images in a scanned document.

The project will consist in building a foreground/background segmenter by using various clustering methods.

Train a Full-Page OCR

Train the convolutional net implementated in Lush on snippet of images extracted from scanned pages. The snippets should include neighboring characters, so that the network output will be robust to "distracting" characters on each side of the character to be recognized.

The purpose is to demonstrate a segmentation-free "brute force" OCR by sweeping the convolutional network over an entire page of text.

Students can use the convolutional network implementations from the gblearn2 library in Lush (in lush/packages/gblearn2) or from the eblearn C++ library Eblearn.

Learning with Conjugate Gradient in Eblearn

Implement and test Polak-Ribiere and Fletcher-Reeves Conjugate Gradient optimizations within the Eblearn C++ library.

Compare it with stochastic gradient on regression problems.

This comes down to implementing a new subclass of the "parameter" class in which the "update" method will be redefined.

Optional: implement quasi-Newton methods such as limited-memory BFGS.

References:

.