View on GitHub


Final projects suggestions

Expected output:

3D reconstruction via neural nets

Something like or

Rendering improvement via neural nets

Goal: render scene via ray tracing with low sample count and improve via neural net. See:

Adversarial examples generation for text

Do adversarial attack for some text classifier like

Notautoregressive text generation

Most of the time we are generating text by producing one token after another (and new token probability depends on previous generated tokens). But maybe some other method is better (like Goal here is to implement and test some either language translation, generation or speech recognition, which does not generates text one by one.

GAN and natural langauge

Implement some GAN which generates text (choice is up to you).

Optimizing nondifferential metrics

In many cases we care about one metric, which is non diffirentiable but optimize some other differentiable metrics. Typical case is machine translation where we evaluate BLEU score but optimize crossentropy (see Your goal is to pick a simple example task, where you can demonstrate that finetuning relevant metric can lead to better result, then only training on surrogate metric.

Conditional computation

Take a paper about conditional computation (,,, and do following things:

The goal is to have much better accuracy of M2 model than M1. Also they should be quite similar in other architecture considerations (like both should be convnets, or fully connected nets, …). It might help to have custom implemention of prediction outside of the tradional frameworks.


Apply sparsification techniques from some paper ( and demostrate that it can lead into faster models with comparable accuracy. It might help to have custom implemention of prediction outside of the tradional frameworks.

Dark knowledge (for 35 points out of 50)

Implement and test effect of using dark knowledge (, in other words:

There is a less risk here, so less points :)

Bayesian neural nets

Take a very simple dataset (simpler than MNIST). Use PyMC3 to estimate distribution of neural network parameters (see here Demostrate, than this distrubution gives you something useful, for example:

Learning with unlabeled data

Take a dataset for sentiment, take only small amount of labeled samples (like 100 or 1000) and delete labels from other samples. Compare:

Your own idea

Send me an email and we will see.