Blog

## Bayesian Optimization using Gaussian Processes: an introduction

##### July 31, 2023

This blogpost is an adaptation of Chap. 3 in my dissertation. Check it out if you’re interested! Bayesian Optimization (BO) is a tool for black-box optimization. By black-box, we mean functions to which we only have access by querying: expensive simulations of the interaction between a molecule and a folded protein, users interacting with our websites, or the accuracy of a Machine Learning algorithm with a given configuration of hyperparameters. ...

## Training a VAE on Super Mario Bros and playing its levels

##### May 23, 2022

We recently open sourced an implementation of a categorical VAE trained on levels from the classic game Super Mario Bros. In this blogpost I expand on how it works, and how it can be used to play content directly from latent space. This blogpost covers how the model is defined and how the simulator we provide can be used to automatically extract things like how many jumps were performed, or whether the level is solvable by an artificial agent. ...

## On Stuttering

##### December 24, 2020

At the beginning of this year I was visiting a research group at another university to present my PhD thesis project. I already knew a couple members of the group, because they had already visited us here in Copenhagen. I went to their university, I met with them and we went to a meeting room to introduce me to the rest of the group. They introduced me, and things went on normally. ...

## Translating measure theory into probability

##### December 15, 2020

Translating measure theory into probability # This post discusses how measure theory formalizes the operations that we usually do in probability (computing the probability of an event, getting the distributions of random variables…). With it, I hope to establish a translation table between abstract concepts (like measurable spaces and $$\sigma$$ -additive measures) and their respective notions in probability. I hope to make these concepts more tangible by using a running example: counting cars and the Poisson distribution. ...

## Creating Priors using Normal Noise

##### January 15, 2020

When modeling processes in a Bayesian framework, you start with a prior distribution $$\pi(x)$$ and you update it when new information, $$b$$ , arrives. This blogpost focuses on the creation of priors. These topics where taught to me on a PhD course at DTU in December, 2019. Many thanks to Daniela Calvetti and Erkki Somersalo for their lectures. It all starts with a function we’re trying to create, call it $$X: [0, 1] \to \mathbb{R}$$ . ...

## Creating a random graph from a string

##### October 25, 2019

I have been toying around with the idea of creating art using pseudorandom number generators. In this post, I talk about a script that takes as input a string and outputs a random graph. Here are some examples: In summary, I transform the string to ASCII character by character, add up all these values to get an integer, I plug it as a seed for numpy’s pseudorandom generator, and I construct a graph by sampling normal distributions and joining nearby neighbors. ...

## A Link to my MSc Thesis

##### October 6, 2019

The title of this post is the title of my M.Sc. thesis, which I defended on Friday 27th, 2019. In this thesis I explore a method deviced by Niels Justesen, Sebastian Risi and I, called Behavioral Repertoires Imitation Learning. This method extends Imitation Learning by adding behavioral features to state-action pairs. The policies that are trained with this method are able to express more than one behavior (e.g. bio-oriented, mech-oriented) on command. ...

## A tutorial on sc2reader: events and units

##### September 3, 2018

I want to construct a database for macro learning in StarCraft 2. One way to study replays and mine information from them is using pysc2, an API developed by DeepMind that is specially designed for Reinforced Learning. Nahren and Justesen developed a tool for mining replays using this API, but unfortunately the DeepMind’s API can only play replays that match the binary version of the game, and StarCraft 2 is being patched regularly, thus many “old” replays render unparsable. ...

## Latin Squares and Finite Groups

##### January 24, 2018

Last semester, for an algebra homework, I was trying to prove that there exist only 2 groups of order 6 (namely $$\mathbb{Z}_6$$ and $$S_3$$ ). The usual argument uses the classification of groups with order $$pq$$ (with $$p$$ and $$q$$ prime), which itself uses Sylow theorems, but I wondered if I could prove it computationally. Here’s my attempt. Definition: a magma is a pair $$(G,\ast)$$ where $$G$$ is a non-empty set and $$\ast$$ is a binary operation on $$G$$ . ...

## A couple of metrics in generalrepytivity

##### January 18, 2018

A couple of metrics in generalrepytivity # As a small tutorial on generalrepytivity1, this blogpost explains how to create a metric tensor in generalrepytivity and, with it, how to get all the usual geometric invariants one is interested in (such as the Riemann tensor, the Ricci tensor and the scalar curvature). You can find all the code in this article in this jupyter notebook. Installing the library # generalrepytivity is now on pypi, so installing it is easy using pip: ...