If you had to write a script to check whether a person had registered for an event, what Python data structure would you use? It turns out that looking up items in a Python dictionary is much faster than looking up items in a Python list. How much faster? Suppose you want to check if 1000 items (needles) are in … Read More

## Remembering which way Jacobians go – Taking derivatives of vectors with respect to vectors

Matrices of the derivative of vectors with respect to vectors (Jacobians) take a specific form: Here, note that each column is the partial of f with respect to one component , whereas each row is the partial of with respect to the . That is, the rows ‘cover’ the range of f. You can then easily remember that C: the columns … Read More

## RNNs as State-space Systems

It’s fantastic how you can often use concepts from one field to investigate ideas in another area and improve your understanding of both areas. That’s one of the things I enjoy most. We’ve just started studying state-space models in 3F2 Systems and Control (a third-year Engineering course at Cambridge). It’s reminded me strongly of recurrent neural networks (RNNs). Look at … Read More

## Effective Deep Learning Resources: A Shortlist

A lot of people ask me how to get started with deep learning. In this post I’ve listed a few resources I recommend for getting started. I’ve only chosen a few because I’ve found precise recommendations to be more helpful. Let me know if you have any comments or suggestions! Prelude: If you’re new to machine learning Deep learning is … Read More

## AlphaGo Zero: An overview of the algorithm

In this post I go through the algorithms presented in the groundbreaking AlphaGo Zero paper using pseudocode. The objective is to provide a high-level idea of what the model does. Why AlphaGo Zero matters Last week, Google DeepMind published their final iteration of AlphaGo, AlphaGo Zero. To say its performance is remarkable is an understatement. AlphaGo Zero made two breakthroughs: … Read More

## Counterintuitive Probabilities: Typical Sets from Information Theory

Suppose we have a coin that has a 3/4 chance of landing on heads (call this 0) and a 1/4 chance of landing on tails (1). Which of the 16-toss sequences below is most likely? 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 … Read More

## How I completed Udacity’s Machine Learning ND in just over one month

How can we learn more effectively in a short amount of time? In this post, I describe how I went about finishing Udacity’s Machine Learning Nanodegree in about a month when it usually takes 6-12 months. I hope this will give you some insight and ideas as to how you might work more effectively to accomplish your own learning goals. Sections in … Read More

## Self-Driving Car Engineer Nanodegree Term 1 Review

Many people have asked me what I think about Udacity’s Self-Driving Car Engineer Nanodegree (SDCND). This review aims to help you make a decision as to whether or not to enrol in the first term of Udacity’s SDCND. In short, I think that if you are considering it because you want to work in the self-driving car industry and you … Read More

## Explaining Tensorflow Code for a Convolutional Neural Network

In this post, we will go through the code for a convolutional neural network. We will use Aymeric Damien’s implementation. I recommend you have a skim before you read this post. I have included the key portions of the code below. If you’re not familiar with TensorFlow or neural networks, you may find it useful to read my post on multilayer … Read More

## Getting Started with Kaggle #1: Text Data (Quora question pairs, Spam SMSes)

Kaggle is a platform for data science competitions and has great people and resources. But how do you get started? It can be overwhelming with so many competitions, data sets and kernels (notebooks where people share their code). One kernel may contain over ten new concepts, so if you’re new to machine learning (or even if you’re not), you may … Read More