Projects

Teaching a Robot to Follow You with Reinforcement Learning

How do you teach a robot to follow a person without programming its every move? You let it learn. This article chronicles the journey of Teresa, a simulated robot we taught to autonomously track a person using only its camera and the power of reinforcement learning. We break down everything from the core AI principles to the open-source tools you’ll need, showing how a simple reward system can create intelligent behavior and providing a roadmap to building your own autonomous agent.

Face recognition using Multi-Patch networks and Triplet Loss

What if the key to better face recognition is to stop looking at the whole picture and start focusing on the details? Dive into our student project where we implemented a powerful system that feeds a neural network not just the full face, but also individual patches like the eyes and mouth. We’ll break down the secret sauce—a technique called ‘Triplet Loss’ that teaches the AI to see similarities like never before. Read on to discover how this multi-patch approach dramatically boosts accuracy and what we learned along the way.

From ‘Paris’ to ‘Paris_(mythology)’: Building a Wikipedia Entity Disambiguator from Scratch

How does a computer know if ‘Paris’ refers to the city of love or the hero of Greek mythology? The answer is context. This post is a step-by-step guide on building an Entity Disambiguation system from scratch in Python. Dive in to see how we can teach a machine to read between the lines by extracting meaningful context with NLTK, leveraging a knowledge base like YAGO, and implementing a simple yet powerful scoring model to resolve ambiguity in text.

Solving the Unsolvable: A Heuristic Approach to MAX-SAT in Python

Faced with an ‘unsolvable’ NP-hard problem, how do you find a great answer when the perfect one is out of reach? This post details the journey of building a Weighted MAX-SAT solver from scratch in Python. I explore why brute-force solutions fail spectacularly and break down the design of a greedy, iterative heuristic that quickly hones in on high-quality solutions under tight time constraints. Dive into the strategy, the results, and the lessons learned from tackling a classic combinatorial nightmare.

Beyond a Single Input: How I Built a Multi-Network Model to Predict Professions from Biographies

Can a machine guess a person’s profession just by reading their bio? This post details how I tackled this complex multi-label classification challenge. I designed a unique multi-input neural network in Keras that combines the general knowledge of pre-trained GloVe embeddings with the specific insights from trainable embeddings. Discover the architecture that achieved an impressive 0.79 F1 score and see how a simple probability threshold made all the difference.

Mastering ML at Scale: A Practical Guide to Classification, Regression, and Clustering with PySpark

Master machine learning at scale with this practical guide to PySpark. We dive deep into three real-world projects, showing you how to build a perfect-scoring classification tree, find the optimal number of clusters with K-Means, and run a model showdown to pick the best regression algorithm. Learn the essential steps to transform your code into a clear, actionable workflow for handling massive datasets, from data preparation with VectorAssembler to robust tuning with CrossValidator.

A Deep Dive into Parallelizing Clustering Algorithms with PySpark

Go beyond scikit-learn and discover how to scale your clustering algorithms for massive datasets. This deep dive walks you through building K-Means, GMM, and DBSCAN from scratch using PySpark. Explore the specific parallelization strategies—from the classic MapReduce pattern in K-Means to the complex neighborhood problem in DBSCAN—with full code implementations and detailed explanations of the underlying theory. A developer’s guide to building truly scalable machine learning.