Hyperparticle Recursion is Recursive

Erasmus Mundus Retrospective:
Extracurricular Projects


  1. Introduction
  2. Living in Prague
  3. Coursework in Computational Linguistics
  4. Extracurricular Projects « You are here
  5. Exploring Europe
  6. Closing Thoughts

To keep myself busy, I also tried my hand at a few personal projects when I wasn’t doing any assignments or traveling about. Click the links in the section titles to view more information about each project.


Nodulus Gameplay

Prior to the program, I had been working on a small puzzle game in my spare time using the Unity3D game engine. Based on the mathematical theory behind plank puzzles, the game consists of a grid of cubes and rods which can be rotated with a swipe. Turn the activated cubes to reach the end cube and win the level.

Nodulus has been released for Android and iOS.

One Pixel Attack Keras

One Pixel Prediction

How simple is it to cause a deep neural network to misclassify an image if an attacker is only allowed to modify the color of one pixel and only see the prediction probability? Turns out it is very simple. In many cases, an attacker can even cause the network to return any answer they want. By using an Evolutionary Algorithm called Differential Evolution, an attacker can iteratively generate adversarial images to try to minimize the confidence (probability) of the neural network’s classification. See the animated image at the top of this page for a visualization. This project uses Keras to create a neural network and demonstrates the attack on the Cifar10 dataset.

I completed the project from start to finish in about a week during the February break period between semesters. The intent was to gain experience with a deep learning framework while also reimplementing a recent deep learning paper that didn’t provide source code. What surprised me the most is that the project amassed over 800 GitHub stars in just a few days. I suppose it’s mainly due to the nice visualizations and the simple and intuitive explanations provided in both the README and the tutorial Jupyter notebook.


Studentska Candy Wrapper

As indicated earlier, one of my favorite experiences in the LCT program at Charles University was the Deep Learning class. Each week, all students were entered in a new competition. A student would gain extra credit and a candy bar (see pictured above) if their neural network model accuracy ranked in the top three compared to other students. Two of those tasks were very much open-ended: one task had us try to beat state-of-the-art in Czech tagging, and the next week’s task had us try to beat state-of-the-art in Czech lemmatization. For the uninitiated, part-of-speech tagging is the process of classifying each word in a sentence as a noun, verb, etc., and lemmatization is the process of finding the dictionary or root form of a word (eat is the root form of ate).

Tag Components

After some crazy head scratching and heavy model tweaking, I not only managed to win candy bars in both tasks, but I was among the 3-4 students who managed to beat the best-published accuracy for Czech at that time. I notified the professor to try and collaborate on a paper together, and he pointed me to another enthusiastic Czech student who was willing to help. In less than 10 days in May, we whipped up a short paper for the EMNLP 2018 Conference, which was recently accepted. I look forward to presenting a poster on the research project in Brussels, Belgium. For more technical information, see the GitHub repo.

LemmaTag Model

But aside from coursework and projects, I got to travel around a bit to see some incredible cities.

Part 5: Exploring Europe