## Covering all birthdays

Quantifying how likely each birthday is present (covered) in some large group of people.

Welcome to my website. Please have a look at any of my blog posts below.
## Covering all birthdays

## Generative transformer from first principles in Julia

## Radix Tree in Julia

## The Weiler-Atherton polygon clipping algorithm

## Implementing the GZip-kNN Classification paper

## How (not) to compare 2D scatter plots

## Dobble probabilities

## Guided denoising diffusion

## Image generation with MNIST

## Denoising diffusion probabilistic models from first principles

Quantifying how likely each birthday is present (covered) in some large group of people.

A transformer for generating text in Julia, trained on Shakespeare’s plays. This model can be used as a Generative Pre-trained Transformer (GPT) with further work. This post was inspired by Andrej Karpathy’s Zero to Hero course.

A radix tree in Julia, built following Test Driven Development (TDD).

Description of the Weiler-Atherton polygon clipping algorithm.

A recent paper caused a stir in the machine learning world. It claimed that a combination of GZip and k-Nearest Neighbours could beat transformers in classification tasks. Here I implement that method in Julia and explore results for two datasets,...

How to calculate the statistical distance between two 2D distributions of points. But first a lesson in bad statistics, the pitfalls of visual solutions and over-complicating a solved problem.

Calculating probabilities for matching games like Dobble.

Classifier-free guidance for denoising diffusion probabilistic model in Julia.

A denoising diffusion probabilistic model for generating numbers based on the MNIST dataset. The underlying machine learning model is a U-Net model, which is a convolutional autoencoder with skip connections. A large part of this post is dedicated to implementing...

Denoising diffusion probabilistic models for AI art generation from first principles in Julia. This is part 1 of a 3 part series on these models.