# Blog

Posts below are sorted by date published. Alternatively, explore posts by tags.

• ## Simplified DistFlow Equations

Recently, I worked on the voltage control problem for radial distribution grids (see here). More simply, the problem is to keep voltages in an electric grid within a fixed range at all locations in the grid, under the assumption that the grid is radial, meaning tree-structured. Like most other voltage control algorithms, I used the linear “Simplified DistFlow” model. It took me a while to understand the math behind this model, and I hope this post demystifies some of that complexity.

In July 2020, GitHub announced that in “Mid-2021 - Personal access or OAuth tokens will be required for all authenticated Git operations.” In December 2020, GitHub set that date for August 13, 2021–i.e., today. Effectively, GitHub users can no longer access their existing GitHub repos with their username and password using the git command line. Instead, users must use either SSH or a personal access token. This post describes how to set up personal access tokens and use them with Git.

• ## Schur Complements and the Matrix Inversion Lemma

I prove key properties of Schur Complements and use them to derive the matrix inversion lemma.

• ## Linear Quadratic Regulator (LQR)

While trying to learn about the linear quadratic regulator (LQR) controller, I came across UC Berkeley’s course on deep reinforcement learning. Sadly, their lecture slides on model-based planning (Lec. 10 in the 2020 offering of CS285) are riddled with typos, equations cutoff from the slides, and dense notation. This post presents my own derivations of the LQR controller for discrete-time finite-horizon time-varying systems.

• ## An Overview of k-way Spectral Clustering

Given an undirected graph $$G = (V, E)$$, a common task is to identify clusters among the nodes. It is a well-known fact that the sign of entries in the second eigenvector of the normalized Graph Laplacian matrix provides a convenient way to partition the graph into two clusters; this “spectral clustering” method has strong theoretical foundations. In this post, I highlight several theoretical works that generalize the technique for $$k$$-way clustering.

• ## Painful Upgrade to MathJax 3

The upgrade experience to MathJax 3 was far from smooth.

• ## Terminal Colors

In this post, I explore how terminals display color, a two-stage process involving ANSI escape codes and user-defined color schemes.

• ## Bias-Variance Decomposition of Mean Squared Error

I derive the bias-variance decomposition of mean squared error for both estimators and predictors, and I show how they are related for linear models.

• ## Binary vs. Multi-Class Logistic Regression

I’ve been taught binary logistic regression using the sigmoid function, and multi-class logistic regression using a softmax. However, I have never quite understood how the two are related. In this post, I show exactly how multi-class logistic regression generalizes the binary case.

• ## My .vimrc

This blog post about my .vimrc settings is mainly for personal reference, but I thought I’d make it public in case anyone else was interested. I plan on keeping this post updated if I ever change my .vimrc configuration.

• ## Getting MathJax to Work

Re-formatting a LaTeX document for use as a blog post took more work than expected. MathJax only supports the LaTeX math-mode commands, and there are additional formatting considerations as well. Here are some tools that I found to make the transition easier.

• ## Deriving Batch-Norm Backprop Equations

I present a derivation of efficient backpropagation equations for batch-normalization layers.

• ## The Definitive Guide to Python import Statements

I’ve almost never been able to write correct Python import statements on the first go. Behavior is inconsistent between Python 2.7 and Python 3.6 (the two versions that I test here), and there is no single method for guaranteeing that imports will always work. This post is my dive into how to resolve common importing problems. Unless otherwise stated, all examples here work with both Python 2.7 and 3.6.

• ## How I Setup Jekyll on GitHub Pages

Here is a brief summary of how I set up this blog / website using Jekyll on GitHub Pages.

• ## HTML and CSS References

This post is meant to be a running-list of useful web resources related to HTML and CSS.