Due Date: 2/9 (Thu) 11:59 PM PST.
Hard deadline: 2/12 (Sun) 11:59 PM PST with 3 late days. Assignments turned in past this date will be penalized (see the grading page).

In this assignment you will learn the fundamentals of TensorFlow, use TensorFlow to implemented a feed-forward neural network for transition-based dependency parsing, and delve into backpropagation through time by computing the gradients for a recurrent neural network language model.

Setup

Note: Please be sure you have Python 2.7.x installed on your system. The following instructions should work on Mac or Linux. If you have any trouble getting set up, please come to office hours and the TAs will be happy to help.

Get the code: Download the starter code here and the assignment handout here.

Written solutions: here. We do not plan to release code solutions online. Come to office hours if you have questions about your code.

Python package requirements: The core requirements for this assignment are

  • tensorflow
  • numpy

If you have a recent linux (Ubuntu 14.04 and later) install or Mac OS X, the default TensorFlow installation directions will work well for you. If not, we recommed that you work on the corn clusters. TensorFlow is already installed for the system default python on corn.

Submitting your work

Do not code outside of the "# YOUR CODE HERE" blocks, modify the list of imports, change function names, etc. (tuning parameters is fine). Make sure your code runs before submitting. Crashing due to undefined variables, missing imports, hard-coded dimensions, and bad indentation will lead to significant deductions.

For the written component, please upload a PDF file of your solutions to Gradescope. When asked to map question parts to your PDF, please map the parts accordingly as courtesy to your TAs. This is crucial so that we can provide accurate feedback. If a question has no written component (completely programming), map it on the same page as the previous section or next section.

See Piazza for instructions for submitting your code.

Assignment Overview (Tasks)

There will be three parts to this assignment. Coding the neural dependency parsing (Q2 part (h)) is designed to be completed in after Part 1. The rest of the assignment can be done independently. We recommend reading the assignment carefully and starting early as some parts may take significant time.

Q1: Tensorflow Softmax (25 points, coding)

Q2: Neural Transition-Based Dependency Parsing (50 points, mostly coding with a bit of theory)

Q3: Recurrent Neural Networks: Language Modeling (25 points, theory)