In this (short) homework, we'll implement Recurrent Neural Networks for character-level language modeling in Python.

We've provided the Linux kernel dataset (data/input.txt) but you're free to run experiments on a different dataset.

Download the starter code here.

Q1: Vanilla RNN (30 points)

Go through rnn.ipynb and implement the forward and backward pass for a 'vanilla' RNN. Code to check gradients and sample from the softmax distribution have already been provided. Implement beam search.

Deliverables

  • Completed IPython notebook rnn.ipynb
    • Forward pass (10 points)
    • Backward pass (10 points)
    • Beam search (10 points)