Theoretical Machine Learning From Scratch - Linear Models