RNN: Recurrent Neural Networks

In normal feed-forward neural networks the activation flows only in one direction, from the input layer to the output layer, eventually passing through a set of hidden layers. Conversely, recurrent neural networks (RNN) have also connections pointing backward, thus allowing them to take also the temporal dimension into account. This novel architecture enables them to take as their input not just the current input xi … Continue reading RNN: Recurrent Neural Networks

Analysis of parallel version of PageRank algorithm

In this post we are going to analyze a simplified parallel version of the famous algorithm PageRank, the algorithm used by Google Search to rank web pages in their search engine results. The code of the algorithm has been written in C++ exploiting the library OpenMP to parallelize the code. Finally it has been tested over different number of threads as well as different scheduling policies in order to compare … Continue reading Analysis of parallel version of PageRank algorithm

Generating new Anime faces with DCGAN

If I ask you the question “do you like anime characters?”, then it’s very likely that most of you would answer “yes” and that some of you would even admit that anime has been part of their childhood. Although most people, regardless their age, enjoy watching them, only a few people can actually draw them from scratch and even less people have mastered this skill … Continue reading Generating new Anime faces with DCGAN

The hacker, the photographer and the rival: Path Traversal

Artbit is an online social network where users can register for free and upload their own digital pictures in order to share them with the world and get popularity. To attract more visitors, the creators of the social network have launched a challenge on their platform which will reward the user who will upload the best picture. Any user can join the competition by simply … Continue reading The hacker, the photographer and the rival: Path Traversal

Playing Pacman with Multi-Agents Adversarial Search

In this post we are going to design various artificial intelligence agents to play the classic version of Pacman, including ghosts and capsules. Pacman is a famous Atari game developed back in 1979 by a nine-persons team and then released in 1980 by the former Japanese developer and publisher of arcade video games Namco. The great success the game had at the time, made it … Continue reading Playing Pacman with Multi-Agents Adversarial Search

AIs Battle Royale: The ultimate snake

In a previous post, we developed two AIs to play the game of Snake, of which, the first one implements a heuristic algorithm to select its moves while the second one consists of a deep neural network trained with a reinforcement learning algorithm (Deep Q-Learning). Afterward, in a second post, we used a genetic algorithm to create different generations of snakes where the best individuals … Continue reading AIs Battle Royale: The ultimate snake

Teaching AI to play Snake with Genetic Algorithm

Supervised learning, unsupervised learning and reinforcement learning are commonly recognized as the three main ways to train machine learning models. We can have a fourth one if we include the union of the first two, that is, semi-supervised learning. However, in this post we are going to introduce an alternative algorithm that can be used to both train and optimize neural network models: Genetic Algorithm. … Continue reading Teaching AI to play Snake with Genetic Algorithm