After many years of wondering how machine learning works on a fundamental level I have decided to take the plunge. This blog will serve to document my progress through understanding machine learning from fundamental mathematics to higher level concepts.
While there are many courses out there for diving into this field I have decided to take a different approach. Using Gemini 2.5 Pro I have constructed a project based course that will take me on a tour of from math fundamentals to neural networks and a few things in between.
Each project in each module is split up into sub-projects, beginning with a Principal Component Analysis in module 1. As I work through these modules I will document my progress on this weblog. Occasionally I will document how a module has grown as I have worked through it and asked Gemini if there is anything else that I should know.
I expect this course to change and grow from the initial layout of modules as I dive into each one and explore the concepts within. This has already happened with module 1. The first section on Principal Component Analysis has grown to include creating a Scree Plot, understanding and computing Cumulative Variance, and non-linear Principal Component Analysis using a kernel function and other methods. I will detail how this module has changed in a future post.
For now I like the four module structure because it feels like I can actually complete it. I like the project based structure because it allows me to learn how I learn best; by getting my hands dirty.
The initial prompt I used to setup this course is as follows:
I would like to design a project based machine learning course for myself. I would like this course to be a complete tour of the field focusing on depth and understanding from first principles. I would like the projects to be novel and not the standard projects used for learning machine learning. I would like this tour to include understanding of the math involved, but focused into practical applications of the relevant statistics, calculus, linear algebra, etc. The math sections of the course should also be project based. My programming language of choice is Python.
This resulted in the following course structure:
Module 1: The Mathematical Bedrock – A Project-Based Introduction
Gemini 2.5 Pro
Project: “The Geometric Interpreter” – Visualizing High-Dimensional Data
We will create a Python tool that ingests a dataset with many features (e.g., a dataset on wine quality with 12 chemical attributes) and uses linear algebra and calculus to create an interactive 2D or 3D “map” of the data’s structure.
Module 2: The Art of Prediction – Supervised Learning
Project: “The Sentimental Forecaster” – Predicting Market Reactions to News
We will build a model that attempts to predict the daily directional movement (up or down) of a stock index (like the S&P 500) based on the sentiment of financial news headlines from the previous day.
Module 3: Finding the Hidden Structure – Unsupervised Learning
Project: “The Genomic Cartographer” – Clustering Gene Expression Data to Identify Disease Subtypes
We will work with anonymized gene expression data from cancer patients. The goal is to see if we can identify distinct patient subgroups based on their genetic profiles, which could have implications for personalized medicine.
Module 4: The Pinnacle of Complexity – Neural Networks and Deep Learning
Project: “The Audio Alchemist” – Generating Novel Musical Rhythms
We will build a Recurrent Neural Network (RNN), specifically an LSTM (Long Short-Term Memory) network, to learn the patterns in a dataset of MIDI drum patterns. The final goal will be to have your model generate new, original drum beats.

Leave a comment