Deep Learning with Differential Privacy (DP-SGD Explained)
Many of the world's greatest machine learning problems require access to sensitive data, such as patient records for cancer detection. The…
Mukul Rathi's personal website and blog
Many of the world's greatest machine learning problems require access to sensitive data, such as patient records for cancer detection. The…
I joined the Messenger Privacy Experiences team as an iOS engineer about two months ago. New team, completely new stack. I'd never written…
I've had a couple of comments on my YouTube videos asking about advice on applying to Cambridge, so here's a snippet with some of my…
Disclaimer : these are my personal opinions: I'm not speaking on behalf of Facebook, nor am I discussing anything remotely confidential, nor…
Today I saw this video by a YouTuber called ForrestKnight on how many programming languages to learn, and whilst it is well-meaning, I…
New tech stack, new language I've decided to learn some iOS programming at Facebook during my Bootcamp. Because well, it's just another tech…
Keys help identify React Components Traditionally when we are taught about keys in React, it is in the context of rendering a list of…
That's right, Google Translate is biased. When it comes to assigning gender from a gender-neutral language like Hungarian, it defaults to…
I started a YouTube channel 3 weeks ago. I probably should've written this post then but hey ho! I've posted 4 videos so far, and I've…
Welcome back to part 11 of the series! We've got concurrency and generics in our language, but we're still missing a key component…
Onward with more features that any "proper" programming language needs. Today we're implementing generics . Generics allow you to reuse…
At the start of the year, I set myself a goal . Not "reach 1000 Twitter followers". Not "get 100,000 page views". Not to "rank #1 on Google…
The Role of a Runtime Library Up till now, we've translated constructs in our language Bolt directly into LLVM IR instructions. The biggest…
Update : this post has now taken off on Hacker News and Reddit . Thank you all! Who's this tutorial for? This series of compiler…
Prefer this in video form? I ran a React workshop for Hackers at Cambridge last month that covered React hooks in the context of a web…
I've been fortunate enough to get some great advice about Part II dissertations throughout the course of the last year, which culminated in…
React is a JavaScript library for creating interactive UIs that is all the rage right now. However too often beginners dive straight into…
Technical mechanisms for building trust do help people trust systems - the rise of e-commerce sites and in particular sharing economies is…
I wrote this as part of an assignment for my Tech Law and Society module for my Master's at the University of Cambridge. I'll probably flesh…
Throughout my university degree, I've completed 3 internships: one at a cybersecurity startup, and two internships at Facebook. I believe…
Now that we've desugared our language into a simple "Bolt IR" that is close to LLVM IR, we want to generate LLVM IR. One problem though, our…
Just give me the code! All the illustrative code snippets in this blog post link to the respective file in the Bolt repository . There's…
Dataflow Analysis - the big picture In the previous post in the series, we looked at how type-checking the core language worked. This…
This post is split into 2 halves: the first half explains the theory behind type-checkers, and the second half gives you a detailed deep…
We can't directly reason about our Bolt program, as it is just an unstructured stream of characters. Lexing and parsing pre-processes them…
Writing a compiler is like any other software engineering project in that it involves a lot of key design decisions: what language do you…
The diagram above is the compiler for the language Bolt we'll be building. What do all the stages mean? I have to learn OCaml and C++? Wait…
Overview If you're reading this post, you probably have heard of Reason and want to try it out. If you haven't, go read this or this to…
Whilst OCaml's amazing type system might prevent a lot of common programmer errors, it certainly doesn't mean you should not test your code…
Why have a build system? When working on a larger OCaml project, you'll eventually end up working on programs spread across multiple files…
Disclaimer : these are my personal opinions: I'm not speaking on behalf of Facebook, nor am I discussing anything remotely confidential, nor…
Website v1.0 - Humble beginnings From the start, my personal website has had two main purposes: A testbed to learn the latest and greatest…
Bug-free code is a myth when working at scale You know the deal, you just change one little feature, and that causes another part of your…
Overview of the tutorial In this tutorial we'll set up a database with a REST endpoint that other applications can send requests in order to…
What is Git and why should I care? Git is a distributed version-control system - i.e. it records the changes made to files in a repository…
Introduction So far in this series, we have looked at the general principle of gradient descent , and how we computed backpropagation for…
We move onto the next neural network architecture - the recurrent neural network , used for tasks where the input is a sequence. Motivation…
Introduction In this post, we will derive the backprop equations for Convolutional Neural Networks. Again there is a Jupyter notebook…
Introduction In this blog post, we'll look at our first specialised neural network architecture - the convolutional neural network . There…
Introduction We've talked a lot about training our model, and improving our optimisation algorithms to really get the best out of it, but we…
Improving Gradient Descent Gradient descent is a good learning algorithm for neural networks, however we can do better to improve learning…
This may be the most important post in the series, and also the most overlooked, both for the same reason - this is where the maths gets…
Now to introduce our first deep learning algorithm - the feedforward neural network! Reminder: the code for this series of tutorials can be…
Having looked at linear and logistic regression, we will look at how these algorithms "learn". Loss Functions: For a machine algorithm to…
Introduction: Today, we get our hands dirty with our first machine learning algorithms! Whilst we are starting out simple, these algorithms…
Introduction In this series of blog posts I aim to demystify the main types of neural networks, and delve into the maths behind these deep…
Why bother with the maths behind deep learning? Deep learning has been getting more powerful with the advent of more data and computational…