Practicals

Practical 1: Learning Distributed Word Representations with word2vec

Due: March 16, 2018 (23:59:59)

The main goal of this practical is to make you understand the basics of neural network design and training, and you will also get familiar with Google’s TensorFlow deep learning framework. In this practical, you will use the word2vec implementation included in the Tensorflow code repository and train a multi-layer perceptron to learn distributed representations of words on two different corpora, TED (link) and Wikipedia (link) datasets. After training, you will analyze and visualize the learned embeddings t-SNE. Utilize these embeddings to implement the DAN approach in [3] for sentiment classifications. For this last part, you can download Stanford Sentiment Treebank dataset from this link.

[1] Tomas Mikolov, Ilya Sutskever, Kai Chen, Greg S. Corrado, and Jeff Dean, “Distributed representations of words and phrases and their compositionality.,” in NIPS, 2013.
[2] Laurens van der Maaten and Geoffrey E. Hinton, “Visualizing high-dimensional data using t-sne,” Journal of Machine Learning Research, vol. 9, pp. 2579–2605, 2008.
[3] Mohit Iyyer, Varun Manjunatha, Jordan Boyd-Graber, and Hal Daume III, "Deep Unordered Composition Rivals Syntactic Methods for Text Classification", in ACL, 2015.

For a detailed description of the practical, please read this document.

Practical 2: Convolutional Neural Networks

Due: April 6, 2018 (23:59:59)

In Practical 2, you will learn all about the convolutional neural networks. In particular, you will gain a first-hand experience of the training process, understand the architectural details, and familiarize with transfer learning with deep networks. You are allowed to do this assignment in pairs. If you wish, you may also do it individually. The practical has two parts. In Part 1, you will experiment with a convolutional neural network implementation to perform artist classification from painting images. And in Part 2, you will learn about transfer learning with deep network, in which you will fine-tune AlexNet model pretrained on ImageNet to recognize faces.

For Part 1, you will use the starter code provided here.

For a detailed description of the practical, please read this document.

Practical 3: RNNs for Language Modeling

Due: April 27, 2018 (23:59:59)

In Practical 3, you will work on extending Andrej Karpathy’s min-char-rnn.py, a character-level vanilla recurrent neural network for language modelling [1]. Basically, you will gain an understanding of RNN architecture and how specific weights affect the generation results. Moreover, you will train RNNs to generate text using Shakespeare plays and Harry Potter and the Goblet of Fire as the training sets.

[1] Andrej Karpathy, The Unreasonable Effectiveness of Recurrent Neural Networks

For a detailed description of the practical, please read this document.