Quality-Diversity Algorithms

An Introduction

Creating hundreds or thousands of solutions for a problem might sometimes sound like an overkill but what if a method inherently creates thousands of diverse solutions while looking for the best performing ones on the way? Not only could we find the one solution we might have been looking for all along, but we find hundreds of solutions that solve a problem in different ways. 

Imagine using this for creating different Reinforcement Learning Agents, Robotics Controllers, or even to create different neural networks while each solution is the best it could be for its specific behaviour. This is exactly where Quality-Diversity algorithms come into play and this blog will try to introduce you to them.

To start with Quality-Diversity Algorithms, it might be good to draw similarities with nature and evolution. Personally, I tend to understand things better when I have something real to compare it with and in this case it’s our evolution. In no case is evolution the only use-case for Quality-Diversity algorithms but it provides a good motivation on why it works well. If you would like to learn directly about the algorithms (or feel comfortable with evolutionary algorithms) then feel free to skip to the part about Behavioural Descriptors as they play a key role in this kind of algorithms.

Continue reading “Quality-Diversity Algorithms”

Hello World.

This is a short introduction about me.

I decided to start this blog to share my thoughts with everybody. I will be mainly posting about Machine Learning and related stuff (since I do this every day).

Currently I split my time between my PhD lab and IBM which probably influences my writing in the future. I plan to write about interesting research I encounter but I will also try to put more complex concepts into a business setting and do my best at explaining it.

Anyways, Thanks a lot for reading this!

Introduction to semi-supervised learning and adversarial training

What is semi-supervised learning?

Every machine learning algorithm needs data to learn from. But even with tons of data in the world, including texts, images, time-series, and more, only a small fraction is actually labeled, whether algorithmically or by hand.

Most of the time, we need labeled data to do supervised machine learning. I particular, we use it to predict the label of each data point with the model. Since the data tells us what the label should be, we can calculate the difference between the prediction and the label, and then minimize that difference.

Continue reading “Introduction to semi-supervised learning and adversarial training”

What is a Transformer?

An Introduction to Transformers and Sequence-to-Sequence Learning for Machine Learning

New deep learning models are introduced at an increasing rate and sometimes it’s hard to keep track of all the novelties. That said, one particular neural network model has proven to be especially effective for common natural language processing tasks. The model is called a Transformer and it makes use of several methods and mechanisms that I’ll introduce here. The papers I refer to in the post offer a more detailed and quantitative description.Continue reading “What is a Transformer?”

Leveraging Watson’s Machine Learning GPUs to accelerate your Deep Learning project in Python

Everyone who’s done a Deep Learning project knows how long it takes to train a single model not to mention optimizing it.

As a current student, I don’t have access to any GPUs which sometimes leads to frustration because I can spend most of my time waiting for the model to see all the training batches.Continue reading “Leveraging Watson’s Machine Learning GPUs to accelerate your Deep Learning project in Python”