RSSAmplifier

Blog

Rohan Varma

Software Engineer @ Facebook

rohanvarma.meRSS feed ↗10 posts

Latest posts

Efficient Matrix Operations through Diagonalizability

In this blog post, I’ll talk about diagonalizability, what it is, and why it may be useful to diagonalize matrices (when they can be) to efficiently compute operations on matrices. I won’t go into detail when a matrix is diagonalizable, but it will be briefly mentioned in an example.

Hessians - A tool for debugging neural network optimization

Optimizing deep neural networks has long followed a general tried-and-true template. Generally, we randomly initialize our weights, which can be thought of as randomly picking a place on the “hill” which is the optimization landscape. There are some tricks we can do to achieve better initialization schemes, such as the He or Xavier initialization.

ResNets

These are some notes that I took while reading the paper Deep Residual Learning for Image Recognition , the paper that introduced modern ResNets. A mock implementation of the network described for the CIFAR-10 portion of the paper is available here . 1. Introduction Main motivation: very deep neural networks are harder to fit Have higher training error on CIFAR 10 - so learning is not as simple as…

The Python GIL

A story

How Much do I use my Phone?

Towards the end of 2017, I started using an iOS app called Moment, which tracks how much time you spent on your phone each day and how many times you pick it up. Through using this application for the year of 2018 and poking around in the app for a way to export my day-by-day data, I was able to obtain a JSON file consisting of my phone usage time and number of pickups for every day of the year.

Training very deep networks with Batchnorm

Training very deep neural networks is hard. It turns out one significant issue with deep neural networks is that the activations of each layer tend to converge to 0 in the later layers, and therefore the gradients vanish as they backpropagate throughout the network. A lot of this has to do with the sheer size of the network - obviously as you multiply numbers less than zero together over and over,…

Picking Loss Functions - A comparison between MSE, Cross Entropy, and Hinge Loss

Loss functions are a key part of any machine learning model: they define an objective against which the performance of your model is measured, and the setting of weight parameters learned by the model is determined by minimizing a chosen loss function. There are several different common loss functions to choose from: the cross-entropy loss, the mean-squared error, the huber loss, and the hinge…

Paper Analysis - Sequence to Sequence Learning

Link to paper Link to example implementation Abstract Traditional DNNs have achieved good performance whenever large labelled training datasets are available, but cannot map sequences to sequences Main approach of the paper is to use a multilayer LSTM to map input sequence to a fixed-length vector, and then another deep LSTM to decode the fixed length vector into a sequence The LSTM model also…

Interpreting Regularization as a Bayesian Prior

Introduction/Background In machine learning, we often start off by writing down a probabalistic model that defines our data. We then go on to write down a likelihood or some type of loss function, which we then optimize over to get the optimal settings for the parameters that we seek to estimate. Along the way, techniques such as regularization, hyperparameter tuning, and cross-validation can be…

Language Models, Word2Vec, and Efficient Softmax Approximations

Introduction The Word2Vec model has become a standard method for representing words as dense vectors. This is typically done as a preprocessing step, after which the learned vectors are fed into a discriminative model (typically an RNN) to generate predictions such as movie review sentiment, do machine translation, or even generate text, character by character . Previous Language Models…