I recently took Stanford’s CS229: Machine Learning course by Andrew Ng. The course was meant as an introduction to machine learning. In the following posts, I shall be reviewing the entire course. The CS229 course has been designed to cover a lot of material. Because of this reason, neither the course nor the official notes go though the complete derivation of all the theorems and algorithms presented therein. In the following posts, however, I shall be presenting the complete derivation of most of the topics covered in those notes.

The reason for doing so was a story that I heard about Richard Feynman. Feynman used to boast of his ability to be able to derive all the fundamental equations of physics using only his brain and a chalk. Inspired by this, I tried to do the same. After studying and completely understanding a particular topic, I used to close all of my books and notes, and tried to derive everything from scratch on my laptop. Markdown and mathjax allowed me to type equations efficiently, quickly and most importantly neatly. The posts below are these derivations that I did from scratch usually without looking at any supporting material (I did get stuck at times after all).