Student projects

Please note that the list below is not exhaustive. Other projects are possible, upon discussion.
A more generic description of the current research directions in my lab can be found here.
Some of the completed student projects are available here.

Depending on the specific topic,  it is possible to apply for:

The projects are mainly meant for Master's students from the Department of Information Engineering and Computer Science (DISI) at the University of Trento.
Bachelor students from DISI with a broad interest in AI and optimization can also apply for Bachelor Thesis Projects with/without internships (6 ECTS + 9ECTS ).

Occasionally, students from other departments and universities can apply.

Robust Influence Maximization

Influence Maximization (IM) is a combinatorial NP-Hard problem that aims at finding the smallest (minimize) set S of elements in a network (i.e., users on social media) able to ‘influence’ as many elements (maximize) as possible inside it. In order to simulate the propagation, there are several stochastic models available in the literature. The most important ones are Independent Cascade (IC), Weighted Cascade (WC), and Linear Threshold (LT).

Usually, every propagation model is handled independently. However, in several real-world applications, it could be useful to find unique seed sets that maximize all the different propagation models at once. This would lead to a robust optimization that can discover results that could be applied to different domains of propagation.

The project will focus on implementing a new formulation for the maximization of the robustness of the evolutionary algorithm, along with the Python implementation and testing phases.

30% theory, 50% software, 20% testing

Requirements: Python

Contacts: Elia Cunegatti, Giovanni Iacca

Influence Maximization over dynamic social networks

Influence maximization has been extensively studied over static social networks. Several research questions are still open in the case of temporal (dynamic) networks (see https://arxiv.org/abs/2307.00181). In particular, three main directions must be explored, namely:  (1) using Graph Neural Networks for this problem, and comparing it against alternative approaches, particularly addressing the scalability aspect (training on small networks, testing on larger networks learning from regional/local structures); (2) estimating the uncertainty of seed nodes (which can be linked to quality diversity evolutionary algorithms, which inherently look for multiple good solutions); (3) finding robust seed nodes that work well for more than one diffusion model. Depending on the student's preference and background, one or more of these directions will be explored in this thesis.

This project will be carried out in collaboration with Prof. Doina Bucur from the University of Twente.

30% theory, 50% software, 20% testing

Requirements: Python

Contacts: Elia Cunegatti, Giovanni Iacca

Influence Maximization’s Interpretability

Influence Maximization (IM) is a combinatorial NP-Hard problem that aims at finding the smallest (minimize) set S of elements in a network (i.e., users on social media) able to ‘influence’ as many elements (maximize) as possible inside it.

The IM optimization problem is usually computer over graphs. In graph theory, every node in the network has some proprieties that can indicate its importance/centrality in the network. Different propagation models can be used for the IM problem, and each of them selects the starting nodes with different policies.

This project aims to analyze the importance/centrality of the nodes selected as starting nodes from the evolutionary computational algorithms. The project will be conducted on several graphs with different topological properties.

The final purpose of this project is to discover patterns in the results, obtained on distinct datasets, for different propagation models.

20% theory, 60% software, 10% testing

Requirements: Python

Contacts: Elia Cunegatti, Giovanni Iacca

Learning skip connections in sparse neural networks

Artificial Neural networks simulate the real brain with a simper structure and functionality.

Regarding the structure, artificial neurons are grouped in separate layers, which are then hierarchically arranged to compose the network. The main idea of the standard and well-known Deep Learning Architecture (as VGG and ResNet) is to have connections ONLY between consecutive layers, mainly for hardware constraints (matrices multiplication on GPU). However, neurons can activate each other even if they are not connected layer-by-layer. In the field of AI, these are called skip connections. A skip connection is a connection that goes from node x in layer N to node y in layer N+k (where k > 1), such that the connection skips a layer. For example, ResNet proposes a similar idea. They devise a skip-block, which skips a whole layer. Nevertheless, not many works explore in detail the benefits that could derive from a model implemented with skip connections.

Regarding functionality, we consider two of them: Pruning and Plasticity. Pruning refers to the process by which the brain eliminates redundant synapses, reducing their number during the growth process. In the last five years, the community produced different pruning algorithms aiming to solve the over-parameterization problem of Deep Neural Networks and consequently reduce the number of parameters and the computational time required for the training process. If pruning is the capability to cut connections, plasticity is the capability of neurons to create and reinforce their links with other neurons. In the ANN, to simulate a connection between neurons we use a number, the weight, which in absolute value indicates the strength, while the sign indicates the nature of the connection, inhibitory or excitatory. The value of the connection usually is decided during the optimization process. Namely, it remains fixed during the task. However, if the model has to solve a control task, it is possible to operate an online learning technique (such as Reinforcement learning or Hebbian learning) to update the weights during the task.

Working with these concepts, we are interested in two main research questions:

1) In a fixed sparse setting, namely a percentage of weights have been removed, can a model improve its performance thanks to the ’skip connections, or is it better to keep connection only by consecutive layers? Why?

2) Starting with a dense model and using plasticity and pruning, do the skipping connections emerge? Is the task complexity a factor that facilitates the emergence of skip connections, or does this depend on the pruning method?

20% theory, 60% software, 20% testing

Requirements: Python

Subject(s): machine learning, numerical optimization

Contacts: Elia Cunegatti, Giovanni Iacca

Optimization of deep neural network architectures via pruning at initialization

Various deep neural network models have been presented in recent literature, however, these are in most cases handcrafted and their performance depends on various network parameters, usually set empirically. In particular,  a neural architecture design comprises many combinatorial parameters, but exploring such a parameter space can be time-consuming and computationally expensive. To this end, Neural Architecture Search (NAS) is quickly becoming the standard methodology for designing neural network models. However, NAS is typically compute-intensive because multiple models in a large search space need to be trained and evaluated before choosing the best one. To reduce the computational power and time needed, a value driven by pruning-at-initialization metrics can be used as a performance prediction of each model.

This project evaluates different pruning-at-initialization metrics w.r.t. how well they preserve ranking between neural network models during search when compared with the rankings produced by final trained accuracy. A selected metric is adapted to optimize the architecture of a deep neural network that achieves state-of-the-art performance on ImageNet.

20% theory, 60% software, 20% testing

Requirements: Python (PyTorch)

Subject(s): machine learning, numerical optimization

Contacts: Elia Cunegatti, Giovanni Iacca

Meta-learning continuous Q-learning algorithms

Reinforcement learning algorithms demonstrated that they are able to solve a wide range of problems.

While there are several general methodologies to perform Q-learning in discrete-action domains, most continuous-action reinforcement learning methodologies are bound to be used with neural networks.

The goal of this work is to use meta-learning techniques to learn continuous reinforcement learning algorithms that are general and can be used even with classical approaches such as lookup tables.

20% theory, 60% software, 20% testing

Requirements: Java and/or Python

Subject(s): meta-learning, reinforcement learning, evolutionary algorithms

Contacts: Leonardo Custode, Giovanni Iacca

Evolution of communication using interpretable agents

The evolution of communication is a theme that interests many researchers across different research fields, including biology and artificial intelligence.

While previous work addressed the evolution of communication using neural networks, understanding the reasoning of the agents is not an easy task.

The goal of this project is to evolve a communication system between agents that is inherently understandable by humans so that the "reasoning" performed by the agents can give insights into the evolution of communication.

10% theory, 70% software, 20% testing

Requirements: Java and/or Python

Subject(s): evolutionary algorithms, communication systems

Contacts: Leonardo Custode, Giovanni Iacca

Backpropagation-based reinforcement learning for decision trees

In the last decade, neural networks achieved a good number of breakthroughs, creating a new wave of hype for artificial intelligence.

However, neural networks cannot be easily understood by humans.

The goal of this work is to leverage optimization techniques created for neural networks (namely backpropagation), together with evolutionary computation, to optimize interpretable machine learning models, such as decision trees.

10% theory, 70% software, 20% testing

Requirements: Java and/or Python

Subject(s): evolutionary algorithms, machine learning, reinforcement learning

Contacts: Leonardo Custode, Giovanni Iacca

Reinforcement learning with online evolutionary algorithms

Reinforcement learning (RL) techniques proved to be powerful enough to tackle a wide variety of problems.

However, classic RL techniques such as Q-learning aim to learn static models for the actions.

Moreover, other techniques such as policy gradient algorithms require that there is a "critic" that defines the goodness of an action, increasing the computational cost of the training process.

In this project, the goal is to use online evolutionary algorithms (EAs) to decrease the computational cost of training agents that have dynamic actions by using online EAs.

10% theory, 70% software, 20% testing

Requirements: Java and/or Python

Subject(s): evolutionary algorithms, machine learning, reinforcement learning

Contacts: Leonardo Custode, Giovanni Iacca

Implementation of a parallel reinforcement learning environment

Usually, reinforcement learning (RL) environments are built in such a way that they can perform a simulation at a time. While this approach is simple and natural, in some cases it may be not efficient. In fact, when using RL methodologies that require the optimization of "populations" of individuals, this paradigm leads to high simulation times. Even if the simulations can be naively "parallelized", there may be more efficient ways to achieve lower simulation times. One of these consists of using simulators that natively support the simultaneous simulation of N agents (N being a parameter). This way, the simulator can vectorize the computation (either on CPU or GPU) and reduce the simulation time. The goal of this project is to parallelize, as described above, two environments from the OpenAI Gym framework: CarRacing and BipedalWalker. Finally, an evaluation of the gain in performance under varying hardware and N will be performed.

10% theory, 60% software, 30% testing

Requirements: Python, Numpy, OpenCL or CUDA

Subject(s): parallel computing, software development

Contacts: Leonardo Custode, Giovanni Iacca

Data augmentation techniques perform better in different Music Information Retrieval tasks

In deep learning, as models grow in the number of parameters (which is the current trend) a large amount of data is needed. For Music Information Retrieval (MIR) tasks (such as music genre classification, chord recognition, etc.) we usually do not have very large datasets, therefore data augmentation can help provide artificial samples that can be used during the training. Discovering which data augmentation technique(s) should be preferred for a specific task can therefore be extremely useful. See this master thesis for reference. The main objective of this project is to explore which data augmentation techniques perform better in different MIR tasks. This work will be developed into four phases:

1) Defining the augmentation techniques. Examples include time shifting, time stretching, noise addition, pitch scaling, and low-pass filters (see e.g. this playlist).

2) Defining the deep learning models, such as Convolutional Neural Networks (CNNs) with the mel power spectrogram as input representation. The CNN models can be based e.g. on LeNet, ResNet, or other CNN architectures.

3) Defining three different tasks. These can be music genre classification, instrument recognition, chord recognition, emotion recognition, etc. For each task, one dataset will be used.

4) Testing the models and evaluating them e.g. in terms of accuracy and F1-score.

10% theory, 70% software, 20% testing

Requirements: Python, Tensorflow/Keras or Pytoch

Subjects: deep learning, data augmentation

Contacts: Michele Rossi, Giovanni Iacca

Industrial internships at Aida Innovazione (Rovereto)

Various topics available:

10% theory, 70% software, 20% testing

Requirements: Python

Subjects: machine learning, optimization

Contacts: Luca Cornali, Giovanni Iacca