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.
...
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.
...
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.
...
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.
...
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}\) .
...
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.
...
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.
...
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.
...
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\) .
...
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:
...